Përmbajtje:
- Furnizimet
- Hapi 1: Matni Temperaturën dhe Lagështinë
- Hapi 2: Krijoni dhe Konfiguroni Projektin
- Hapi 3: Instaloni Bibliotekat
- Hapi 4: Lidhni një sensor DHT11
- Hapi 5: Dërgimi i të dhënave në re
- Hapi 6: Diagnostifikimi
- Hapi 7: Filloni dhe korrigjoni projektin
- Hapi 8: Konfigurimi i pultit
- Hapi 9: Përfundim
Video: Lidhja e një sensori DHT11/DHT22 me renë me një bord të bazuar në ESP8266: 9 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Në artikullin e mëparshëm, unë lidha bordin tim NodeMCU të bazuar në ESP8266 me një shërbim Cloud4RPi. Tani, është koha për një projekt të vërtetë!
Furnizimet
Kërkesat për harduerin:
- Çdo bord i bazuar në një çip ESP8266 (për shembull, NodeMCU)
- Një sensor DHT11 ose DHT22
Softuer dhe shërbime:
- Biblioteka e sensorit DHT nga Adafruit - v1.3.7
- Sensori i Unifikuar i Adafruit - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Paneli i kontrollit të reve për pajisjet IoT
- PlatformIO IDE për VSCode
Hapi 1: Matni Temperaturën dhe Lagështinë
Unë tashmë kisha një sensor DHT11, kështu që vendosa ta përdor atë për matjet e temperaturës dhe lagështisë. Le të zgjedhim një bibliotekë Arduino për të lexuar të dhënat e sensorit.
Regjistri Arduino përmban disa biblioteka, nga të cilat zgjodha atë më të popullarizuara.
Sipas depove të tyre GitHub, na kërkohet gjithashtu të shtojmë një paketë Adafruit Unified Sensor.
Hapi 2: Krijoni dhe Konfiguroni Projektin
Unë tashmë kam përshkruar se si të krijoj një projekt PlatformIO dhe të instaloj biblioteka në pjesën e parë. Projekti im quhet "MyNodeMCU". Struktura është treguar më lart.
Ky projekt është një shembull i modifikuar pak i Cloud4RPi. Vendosa të ruaj shenjën e pajisjes dhe kredencialet Wi-Fi në skedarin e konfigurimit në vend të kodit.
Skedari platform.io duket si më poshtë:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2
Hapi 3: Instaloni Bibliotekat
Instalimi i bibliotekave është mjaft i thjeshtë. Ju mund ta bëni atë nga ndërfaqja grafike e IDE, ose duke shtuar emrat e kërkuar të bibliotekës në seksionin lib_deps të skedarit platform.io:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Sensor i Unifikuar DHT biblioteka e sensorit DHT build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DURIDE_G_0W_IDWID_GIF_YURD_BURG = 0 '' D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Bibliotekat e shtuara do të instalohen automatikisht në nën -dosjen e një projekti.
Koka kryesore.cpp duket si më poshtë:
#përfshi #përfshi #përfshi #përfshi "DHT.h"
Hapi 4: Lidhni një sensor DHT11
Adafruit ofron një shembull DHTtester.ino të lidhjes së sensorit.
Ky kod inicializon një sensor dhe përcakton një strukturë për të ruajtur rezultatin e matjes (në rast se ishte i suksesshëm):
#define DHTPIN 2 // Pina digjitale e lidhur me sensorin DHT#përcakto DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.filloj (); //… struct DHT_Result {float h; noton t; }; DHT_Result dhtResult;
Funksioni tjetër tregon se si të lexoni të dhënat e sensorit dhe t'i ruani ato në strukturën e të dhënave të përshkruara më sipër
void readSensors () {noton h = dht.readHumidity (); // Lexoni temperaturën si Celsius (parazgjedhja) noton t = dht.readTemperature ();
// Kontrolloni nëse leximet dështuan dhe dilni
if (isnan (h) || isnan (t)) {Serial.println (F ("Leximi nuk u lexua nga sensori DHT!")); kthim; } dhtResult.h = h; dhtResult.t = t; }
Hapi 5: Dërgimi i të dhënave në re
Pasi t'i kemi ato të dhëna, hapi tjetër është t'i dërgojmë ato në shërbimin Cloud4RPi.
Faqja Cloud4RPi për Arduino përshkruan API -në e bibliotekës, e cila është një grup metodash të përdorura për:
- krijoni, lexoni dhe azhurnoni variablat,
- dërgoni vlera të ndryshueshme në cloud duke përdorur protokollin MQTT.
Biblioteka mbështet tre lloje të ndryshueshme: Bool, Numerike dhe String.
Rrjedha e punës në bibliotekë fillon me krijimin e një shembulli API duke përdorur Device Token nga faqja e internetit cloud4rpi.io (referojuni pjesës 1 të artikullit për detaje).
#nëse është përcaktuar (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #ndryshe Cloud4RPi c4r ("!!! _ JO_DEVICE_TOKEN _ !!!"); #endif
Pastaj, deklaroni variablat për leximet DHT11:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Pastaj, merrni të dhëna nga sensori, ruajini ato në variabla dhe publikoni të dhënat në Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Temperatura dhe lagështia nuk ndryshojnë shpejt, kështu që dërgimi i më shumë se një vlere për 5 minuta nuk kërkohet.
Hapi 6: Diagnostifikimi
Cloud4RPi mbështet të dhënat diagnostikuese së bashku me vlerat e ndryshueshme. Kam përdorur kohën e funksionimit, fuqinë e sinjalit Wi-Fi dhe adresën IP si të dhëna diagnostikuese:
c4r.declareDiagVariable ("IP_Adresa"); c4r.declareDiagVariable ("RSSI"); // Fuqia e sinjalit WiFi c4r.declareDiagVariable ("Uptime");
Shënim: Funksioni millis që përdor për të marrë rivendosjen në kohë të punës në zero çdo 50 ditë. E cila është më se e mjaftueshme për projektin tim.
Kodi i mëposhtëm vendos vlera të ndryshueshme diagnostike:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Adresa", WiFi.localIP (). teString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Funksioni uptimeHumanReadable konverton milisekonda në një formë të përshtatshme:
String uptimeHumanReadable (milisekonda të gjata të panënshkruara) {statike char uptimeStr [32]; sekonda të gjata të panënshkruara = milisekonda / 1000; minuta të gjata të panënshkruara = sekonda / 60; orë pa shenjë int = mins / 60; ditë të panënshkruara int = orë / 24; sekonda -= mins * 60; mins -= orë * 60; orë -= ditë * 24; sprintf (uptimeStr, "%d ditë%2.2d:%2.2d:%2.2d", (bajt) ditë, (bajt) orë, (bajt) minuta, (bajt) sekonda); string String (uptimeStr); }
Funksioni nxjerr një varg si ky 5 ditë 10:23:14 në vend të një numri të madh të çuditshëm.
Hapi 7: Filloni dhe korrigjoni projektin
Pas përpilimit të kodit të krijuar dhe ndezjes në NodeMCU, pajisja lidhet me një shërbim cloud dhe fillon të dërgojë të dhëna.
Ju mund të rrisni verbozitetin e regjistrimit duke vendosur ndryshoren e paraprocesorit CLOUD4RPI_DEBUG në 1 (shtoni -D CLOUD4RPI_DEBUG = 1 në seksionin build_flags në skedarin platform.io).
Tjetra, hapni faqen cloud4rpi.io dhe vini re pajisjen e re në internet. Hapeni atë për të parë të gjitha vlerat e ndryshueshme të marra nga pajisja: sensori dhe diagnostifikimi.
Hapi 8: Konfigurimi i pultit
Në këtë hap, lidhja e të dhënave me cloud është funksionale. Tani, le të konfigurojmë paraqitjen vizuale të të dhënave.
Kam përdorur ndërfaqen e konfigurimit të Pultit për të krijuar pultin e mëposhtëm.
Pulti është i ndashëm, kështu që e ndaj menjëherë me mikun tim.
Hapi 9: Përfundim
Kodi i plotë i projektit është në dispozicion në thelb.
Kjo është e gjitha për tani!
Pyetjet dhe sugjerimet janë të mirëseardhura në komente.
Recommended:
Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)
Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): Përshëndetje, sot unë do t'ju shpjegoj se si ta bëni vetë gjeneratorin tuaj të vogël të Muzikës me bazë moti. Bazohet në një ESP8266, i cili është si një Arduino, dhe i përgjigjet temperaturës, shiut dhe intensiteti i dritës. Mos prisni që ajo të bëjë këngë të tëra ose progord të akordit
Monitorues i motit i bazuar në E532 M5Stack M5stick C Me DHT11 - Monitoroni Indeksin e Lagështisë dhe Nxehtësisë së Temperaturës në M5stick-C Me DHT11: 6 hapa
Monitorues i motit i bazuar në E532 M5Stack M5stick C Me DHT11 | Monitoroni Indeksin e Lagështisë dhe Nxehtësisë së Temperaturës në M5stick-C Me DHT11: Përshëndetje djema, në këtë udhëzues do të mësojmë se si të ndërlidhni sensorin e temperaturës DHT11 me m5stick-C (një tabelë zhvillimi nga m5stack) dhe ta shfaqni atë në ekranin e m5stick-C. Pra, në këtë tutorial ne do të lexojmë temperaturën, lagështinë & nxehtesi une
Ndërtoni një pajisje Apple HomeKit Temperatura Sensor (DHT22) duke përdorur një RaspberryPI dhe një DHT22: 11 hapa
Ndërtoni një pajisje Apple HomeKit Temperatura Sensor (DHT22) Duke përdorur një RaspberryPI dhe një DHT22: Po kërkoja një sensor të temperaturës / lagështisë me kosto të ulët që mund ta përdorja për të monitoruar atë që po ndodh në hapësirën time të zvarritjes, pasi zbulova se këtë pranverë ishte shumë e lagësht , dhe kishte shumë lagështirë. Kështu që unë po kërkoja një sensor me çmim të arsyeshëm që mund ta p
Si të programoni një bord AVR duke përdorur një bord Arduino: 6 hapa
Si të programoni një bord AVR duke përdorur një bord Arduino: A keni një bord AVR mikrokontrollues të vendosur përreth? A është e ndërlikuar ta programosh atë? Epo, ju jeni në vendin e duhur. Këtu, unë do t'ju tregoj se si të programoni një bord të mikrokontrolluesit Atmega8a duke përdorur një bord Arduino Uno si programues. Pra, pa më tej
Robot Brain: Ndërtoni një kompjuter me një bord në një mbrëmje: 11 hapa
Robot Brain: Ndërtoni një kompjuter me një bord të vetëm në mbrëmje: Ju mbaron kujtesa në Picaxe ose Arduino tuaj? Por një PC është i tepërt për punën? Hidhini një sy këtij kompjuteri me një bord me burim të hapur që mund të programohet në gjuhë si C, Basic, Forth, Pascal ose Fortran. Ky tabelë përdor IC të lira dhe del