Sisukord:

DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadiga: 9 sammu
DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadiga: 9 sammu

Video: DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadiga: 9 sammu

Video: DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadiga: 9 sammu
Video: Temperatuuri niiskusanduri mooduli ESP8266 ESP01 DHT11 programmeerimine | RemoteXY | FLProg 2024, September
Anonim
DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadi abil
DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadi abil

Eelmises artiklis ühendasin oma ESP8266-põhise NodeMCU plaadi Cloud4RPi teenusega. Nüüd on aeg tõeliseks projektiks!

Tarvikud

Riistvara nõuded:

  • Kõik ESP8266 kiibil põhinevad plaadid (näiteks NodeMCU)
  • DHT11 või DHT22 andur

Tarkvara ja teenused:

  • Adafruit'i DHT -andurite kogu - v1.3.7
  • Adafruit Unified Sensor - v1.0.3
  • cloud4rpi-esp-arduino-v0.1.0
  • Cloud4RPI - pilve juhtpaneel asjade Interneti seadmetele
  • PlatformIO IDE VSCode jaoks

Samm: mõõtke temperatuuri ja niiskust

Mõõtke temperatuuri ja niiskust
Mõõtke temperatuuri ja niiskust

Mul oli juba DHT11 andur, seega otsustasin seda kasutada temperatuuri ja niiskuse mõõtmiseks. Valime andurite andmete lugemiseks Arduino raamatukogu.

Arduino registris on mitu raamatukogu, millest valisin kõige populaarsema.

Vastavalt nende GitHubi hoidlale peame lisama ka Adafruit Unified Sensor paketi.

Samm: projekti loomine ja konfigureerimine

Projekti loomine ja seadistamine
Projekti loomine ja seadistamine

Esimeses osas kirjeldasin juba PlatformIO projekti loomist ja teekide installimist. Minu projekti nimi on “MyNodeMCU”. Struktuur on näidatud ülal.

See projekt on veidi muudetud Cloud4RPi näide. Otsustasin seadme asemel salvestada seadme märgi ja Wi-Fi mandaadi konfiguratsioonifaili.

Fail platform.io näeb välja järgmine:

[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platvorm = espressif8266 Framework = arduino board = nodemcuv2

Samm: installige teegid

Installige teegid
Installige teegid

Raamatukogude paigaldamine on üsna lihtne. Seda saate teha IDE graafilisest liidesest või lisades nõutavad teekide nimed faili platform.io jaotisesse lib_deps:

; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT -andmekogu build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -SSID_I / " -\" D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"

Lisatud teegid installitakse automaatselt projekti alamkausta.

Main.cpp päis näeb välja järgmine:

#kaasama #kaasama #kaasama #kaasama "DHT.h"

Samm: ühendage DHT11 andur

Adafruit pakub DHTtester.ino näidet anduriühendusest.

See kood lähtestab anduri ja määrab struktuuri mõõtmistulemuse salvestamiseks (juhul kui see õnnestus):

#define DHTPIN 2 // DHT -anduriga ühendatud digitaalne tihvt#define DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… structure DHT_Result {float h; ujuk t; }; DHT_Tulemus dhtResult;

Järgmine funktsioon näitab, kuidas sensori andmeid lugeda ja neid ülalkirjeldatud andmestruktuuri salvestada

void readSensors () {float h = dht.readHumidity (); // Temperatuuri lugemine Celsiuse järgi (vaikimisi) float t = dht.readTemperature ();

// Kontrollige, kas mõni lugemine ebaõnnestus, ja väljuge

if (isnan (h) || isnan (t)) {Serial.println (F ("DHT -andurilt ei õnnestunud lugeda!")); tagasipöördumine; } dhtTulemus.h = h; dhtTulemus.t = t; }

Samm: andmete saatmine pilve

Kui meil on need andmed olemas, on järgmine samm saata need teenusesse Cloud4RPi.

Arduino jaoks mõeldud Cloud4RPi leht kirjeldab teegi API -d, mis on meetodite komplekt, mida kasutatakse:

  • luua, lugeda ja värskendada muutujaid,
  • saata muutuvaid väärtusi pilve kasutades MQTT protokolli.

Raamatukogu toetab kolme muutujatüüpi: Bool, Numeric ja String.

Raamatukogu töövoog algab API -eksemplari loomisega, kasutades seadet, mis asub veebisaidil cloud4rpi.io (üksikasju leiate artikli 1. osast).

#if defineeritud (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif

Seejärel deklareerige DHT11 näitude muutujad:

c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");

Seejärel hankige andurilt andmed, salvestage need muutujateks ja avaldage andmed Cloud4RPi -s:

c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();

Temperatuur ja niiskus ei muutu kiiresti, seega ei ole vaja saata rohkem kui ühte väärtust 5 minuti jooksul.

6. samm: diagnostika

Cloud4RPi toetab diagnostilisi andmeid koos muutuvate väärtustega. Kasutasin diagnostikaandmetena tööaega, WiFi-signaali tugevust ja IP-aadressi:

c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi signaali tugevus c4r.declareDiagVariable ("Uptime");

Märkus: Millisfunktsioon, mida kasutan tööaja saavutamiseks, lähtestatakse nulli iga ~ 50 päeva tagant. Mis on minu projekti jaoks rohkem kui piisav.

Järgmine kood määrab diagnostiliste muutujate väärtused:

c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();

Funktsioon uptimeHumanReadable teisendab millisekundid mugavasse vormi:

String uptimeHumanReadable (allkirjastamata pikad millisekundid) {static char uptimeStr [32]; allkirjastamata pikad sekundid = millisekundid / 1000; allkirjastamata pikad minutid = sekundit / 60; allkirjastamata int tundi = min / 60; allkirjastamata int päeva = tundi / 24; sekundit -= min * 60; min -= tundi * 60; tundi -= päeva * 24; sprintf (uptimeStr, "%d päeva%2.2d:%2.2d:%2.2d", (bait) päeva, (bait) tundi, (bait) minutit, (bait) sekundit); return String (uptimeStr); }

Funktsioon väljastab kummalise suure arvu asemel sellise stringi 5 päeva 10:23:14.

Samm: käivitage ja siluge projekt

Alustage ja siluge projekti
Alustage ja siluge projekti

Pärast loodud koodi koostamist ja NodeMCU -sse vilkumist ühendab seade pilveteenusega ja hakkab andmeid saatma.

Logimise paljusõnalisust saate suurendada, määrates eeltöötleja CLOUD4RPI_DEBUG väärtuseks 1 (lisage -D CLOUD4RPI_DEBUG = 1 failile platform.io jaotis build_flags).

Seejärel avage sait cloud4rpi.io ja märkige uus seade võrgus. Avage see, et näha kõiki seadmelt saadud muutujaväärtusi: andurit ja diagnostikat.

8. samm: armatuurlaua konfigureerimine

Armatuurlaua konfiguratsioon
Armatuurlaua konfiguratsioon

Selles etapis töötab andmeühendus pilvega. Nüüd seadistame andmete visuaalse esituse.

Kasutasin armatuurlaua konfiguratsiooni kasutajaliidest järgmise armatuurlaua loomiseks.

Armatuurlaud on jagatav, nii et jagan seda koheselt oma sõbraga.

9. samm: järeldus

Järeldus
Järeldus

Kogu projekti kood on sisuliselt saadaval.

Praeguseks kõik!

Küsimused ja ettepanekud on kommentaarides teretulnud.

Soovitan: