Kazalo:
- Zaloge
- 1. korak: Izmerite temperaturo in vlažnost
- 2. korak: Ustvarite in konfigurirajte projekt
- 3. korak: Namestite knjižnice
- 4. korak: Priključite senzor DHT11
- 5. korak: pošiljanje podatkov v oblak
- 6. korak: Diagnostika
- 7. korak: Zaženite in odpravite napake projekta
- 8. korak: Konfiguracija nadzorne plošče
- 9. korak: Zaključek
Video: Priključitev senzorja DHT11/DHT22 v oblak s ploščo na osnovi ESP8266: 9 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V prejšnjem članku sem svojo ploščo NodeMCU, ki temelji na ESP8266, povezal s storitvijo Cloud4RPi. Zdaj je čas za pravi projekt!
Zaloge
Strojne zahteve:
- Katera koli plošča, ki temelji na čipu ESP8266 (na primer NodeMCU)
- Senzor DHT11 ali DHT22
Programska oprema in storitve:
- Knjižnica senzorjev DHT Adafruit - v1.3.7
- Adafruit Unified Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Nadzorna plošča v oblaku za naprave IoT
- PlatformIO IDE za VSCode
1. korak: Izmerite temperaturo in vlažnost
Senzor DHT11 sem že imel, zato sem se odločil, da ga uporabim za merjenje temperature in vlažnosti. Za branje podatkov senzorja izberite knjižnico Arduino.
Register Arduino vsebuje več knjižnic, med katerimi sem izbral najbolj priljubljeno.
Glede na njihovo skladišče GitHub moramo dodati tudi paket Adafruit Unified Sensor.
2. korak: Ustvarite in konfigurirajte projekt
V prvem delu sem že opisal, kako ustvariti projekt PlatformIO in namestiti knjižnice. Moj projekt se imenuje "MyNodeMCU". Struktura je prikazana zgoraj.
Ta projekt je nekoliko spremenjen primer Cloud4RPi. Odločil sem se, da namesto kode shranim žeton naprave in poverilnice Wi-Fi v konfiguracijsko datoteko.
Datoteka platform.io izgleda tako:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platforma = espressif8266 framework = arduino board = nodemcuv2
3. korak: Namestite knjižnice
Namestitev knjižnic je precej preprosta. To lahko storite iz grafičnega vmesnika IDE ali tako, da v razdelek lib_deps datoteke platform.io dodate zahtevana imena knjižnic:
; … Lib_deps = cloud4rpi -esp -arduino Adapruit Unified Sensor knjižnica senzorjev DHL build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SSID_NAME / "YIP D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Dodane knjižnice bodo samodejno nameščene v podmapo projekta.
Glava main.cpp izgleda tako:
#include #include #include #include "DHT.h"
4. korak: Priključite senzor DHT11
Adafruit ponuja DHTtester.ino primer povezave senzorja.
Ta koda inicializira senzor in definira strukturo za shranjevanje rezultata merjenja (če je bil uspešen):
#define DHTPIN 2 // Digitalni pin, povezan s tipalom DHT#define DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; float t; }; DHT_Result dhtResult;
Naslednja funkcija prikazuje, kako prebrati podatke senzorja in jih shraniti v zgoraj opisano podatkovno strukturo
void readSensors () {float h = dht.readHumidity (); // Temperatura se bere kot Celzius (privzeto) float t = dht.readTemperature ();
// Preverite, ali je katero koli branje neuspešno in zapustite
if (isnan (h) || isnan (t)) {Serial.println (F ("Ni bilo mogoče prebrati s senzorja DHT!")); vrnitev; } dhtResult.h = h; dhtResult.t = t; }
5. korak: pošiljanje podatkov v oblak
Ko imamo te podatke, je naslednji korak, da jih pošljemo v storitev Cloud4RPi.
Stran Cloud4RPi za Arduino opisuje API knjižnice, ki je niz metod, ki se uporabljajo za:
- ustvarjanje, branje in posodabljanje spremenljivk,
- pošiljanje spremenljivih vrednosti v oblak s protokolom MQTT.
Knjižnica podpira tri vrste spremenljivk: Bool, Numeric in String.
Delovni potek knjižnice se začne z ustvarjanjem primerka API -ja z uporabo žetona naprave s spletnega mesta cloud4rpi.io (za podrobnosti glejte 1. del članka).
#if definirano (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif
Nato razglasite spremenljivke za odčitke DHT11:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Nato iz senzorja vzemite podatke, jih shranite v spremenljivke in jih objavite v Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Temperatura in vlaga se ne spreminjata hitro, zato pošiljanje več kot ene vrednosti na 5 minut ni potrebno.
6. korak: Diagnostika
Cloud4RPi podpira diagnostične podatke skupaj s spremenljivimi vrednostmi. Kot diagnostične podatke sem uporabil čas delovanja, moč signala Wi-Fi in naslov IP:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // Moč signala WiFi c4r.declareDiagVariable ("Uptime");
Opomba: Funkcija millis, ki jo uporabljam za ponastavitev časa delovanja, se ponastavi na nič vsakih ~ 50 dni. Kar je več kot dovolj za moj projekt.
Naslednja koda nastavi vrednosti diagnostične spremenljivke:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Funkcija uptimeHumanReadable pretvori milisekunde v priročno obliko:
String uptimeHumanReadable (brez podpisa dolgih milisekund) {static char uptimeStr [32]; nepodpisane dolge sekunde = milisekunde / 1000; nepodpisane dolge minute = sekunde / 60; nepodpisane int ure = min / 60; nepodpisani int dnevi = ure / 24; sekunde -= min * 60; min -= ure * 60; ure -= dni * 24; sprintf (uptimeStr, "%d dni%2.2d:%2.2d:%2.2d", (bajt) dni, (bajt) ur, (bajt) min, (bajt) sekund); return String (uptimeStr); }
Funkcija prikaže tak niz 5 dni 10:23:14 namesto čudnega velikega števila.
7. korak: Zaženite in odpravite napake projekta
Po sestavljanju ustvarjene kode in vstavitvi v NodeMCU se naprava poveže s storitvijo v oblaku in začne pošiljati podatke.
Osebnost beleženja lahko povečate tako, da spremenljivko predprocesorja CLOUD4RPI_DEBUG nastavite na 1 (dodajte -D CLOUD4RPI_DEBUG = 1 v datoteko build_flags v datoteki platform.io).
Nato odprite spletno mesto cloud4rpi.io in na spletu opazite novo napravo. Odprite ga, če si želite ogledati vse spremenljive vrednosti, prejete iz naprave: senzor in diagnostiko.
8. korak: Konfiguracija nadzorne plošče
Na tem koraku deluje podatkovna povezava z oblakom. Zdaj pa nastavimo vizualno predstavitev podatkov.
Za izdelavo naslednje nadzorne plošče sem uporabil uporabniški vmesnik nadzorne plošče.
Armaturna plošča je skupna, zato jo takoj delim s prijateljem.
9. korak: Zaključek
Celotna koda projekta je na voljo v bistvu.
To je vse za zdaj!
Vprašanja in predlogi so dobrodošli v komentarjih.
Priporočena:
Gasilni aparat senzorja temperature in vlažnosti senzorja (Arduino UNO): 11 korakov
Samodejni gasilni aparat s senzorjem temperature in vlažnosti (Arduino UNO): Ta projekt je bil namenjen vsem v domovih ali podjetjih kot senzor temperature in vlažnosti, prikazan na LCD -prikazovalniku, ter senzor plamena, povezan z zvočnikom in vodno črpalko za gašenje. požar v nujnih primerih
Vremenski monitor na osnovi ESP32 M5Stack M5stick C z DHT11 - Spremljajte indeks temperature in vlažnosti ter toplote na M5stick-C z DHT11: 6 korakov
Vremenski monitor na osnovi ESP32 M5Stack M5stick C z DHT11 | Spremljajte indeks temperaturne vlažnosti in toplote na M5stick-C z DHT11: Pozdravljeni fantje, v tem navodilu se bomo naučili povezovati temperaturni senzor DHT11 z m5stick-C (razvojna plošča m5stack) in ga prikazati na zaslonu m5stick-C. Tako bomo v tem vodiču prebrali temperaturo, vlažnost & toploto
Igranje igre Flappy Bird z razvojno ploščo M5stack Esp32 na osnovi M5stick C: 5 korakov
Igranje igre Flappy Bird z razvojno ploščo M5stack Esp32 na osnovi M5stick C: Pozdravljeni, danes se bomo naučili, kako naložiti kodo igre flappy bird na razvojno ploščo m5stick c, ki jo ponuja m5stack. Za ta majhen projekt boste potrebovali dve stvari: m5stick-c razvojna plošča: https://www.utsource.net/itm/p/8663561.h
Kdo je pri mojih vratih? Projekt PIR senzorja gibanja/senzorja dosega: 5 korakov
Kdo je pri mojih vratih? Projekt senzorja gibanja PIR/senzorja dosega: Naš projekt je namenjen zaznavanju gibanja prek PIR in senzorjev razdalje. Koda Arduino bo oddajala vizualni in zvočni signal, ki bo uporabniku povedal, da je nekdo v bližini. Koda MATLAB bo poslala e -poštni signal, ki bo uporabnika opozoril, da je nekdo v bližini. Ta naprava
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: 4 koraki
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: V tem projektu vam bom pokazal, kako z dvema metodama ustvarite poceni detektor vode: 1. Ultrazvočni senzor (HC-SR04) .2. Senzor vode Funduino