Obsah:
- Zásoby
- Krok 1: Zmerajte teplotu a vlhkosť
- Krok 2: Vytvorte a nakonfigurujte projekt
- Krok 3: Nainštalujte si knižnice
- Krok 4: Pripojte snímač DHT11
- Krok 5: Odosielanie údajov do cloudu
- Krok 6: Diagnostika
- Krok 7: Spustite a ladte projekt
- Krok 8: Konfigurácia panela
- Krok 9: Záver
Video: Pripojenie senzora DHT11/DHT22 k cloudu s doskou založenou na ESP8266: 9 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
V predchádzajúcom článku som svoju dosku NodeMCU založenú na ESP8266 pripojil k službe Cloud4RPi. Teraz je čas na skutočný projekt!
Zásoby
Hardvérové požiadavky:
- Akákoľvek doska založená na čipe ESP8266 (napríklad NodeMCU)
- Snímač DHT11 alebo DHT22
Softvér a služby:
- Knižnica senzorov DHT od spoločnosti Adafruit - v1.3.7
- Jednotný senzor Adafruit - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Ovládací panel v cloude pre zariadenia IoT
- PlatformIO IDE pre VSCode
Krok 1: Zmerajte teplotu a vlhkosť
Senzor DHT11 som už mal, a tak som sa rozhodol použiť ho na meranie teploty a vlhkosti. Vyberme si knižnicu Arduino na čítanie údajov zo senzorov.
Register Arduino obsahuje niekoľko knižníc, z ktorých som vybral najobľúbenejšiu.
Podľa ich úložiska GitHub sme tiež povinní pridať balík Adafruit Unified Sensor.
Krok 2: Vytvorte a nakonfigurujte projekt
V prvej časti som už popísal, ako vytvoriť projekt PlatformIO a nainštalovať knižnice. Môj projekt sa nazýva „MyNodeMCU“. Štruktúra je zobrazená vyššie.
Tento projekt je mierne upraveným príkladom Cloud4RPi. Rozhodol som sa uložiť token zariadenia a poverenia Wi-Fi do konfiguračného súboru namiesto kódu.
Súbor platform.io vyzerá nasledovne:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2
Krok 3: Nainštalujte si knižnice
Inštalácia knižníc je veľmi jednoduchá. Môžete to urobiť z grafického rozhrania IDE alebo pridaním požadovaných názvov knižníc do sekcie lib_deps súboru platform.io:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor, knižnica build_flags = -D MQTT_MAX_PACKET_SIZE = D CLOUD4RPI_TOKEN = / "_ VAŠE_DEVICE_TOKEN _ \"
Pridané knižnice sa automaticky nainštalujú do podpriečinka projektu.
Hlavička main.cpp vyzerá nasledovne:
#include #include #include #include "DHT.h"
Krok 4: Pripojte snímač DHT11
Adafruit poskytuje príklad pripojenia snímača DHTtester.ino.
Tento kód inicializuje senzor a definuje štruktúru na uloženie výsledku merania (v prípade, že bol úspešný):
#define DHTPIN 2 // Digitálny pin pripojený k senzoru DHT#definovať DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; plávať t; }; DHT_Výsledok dhtVýsledok;
Nasledujúca funkcia ukazuje, ako čítať údaje zo senzorov a ukladať ich do vyššie popísanej dátovej štruktúry
void readSensors () {float h = dht.readHumidity (); // Čítanie teploty ako Celzia (predvolené) float t = dht.readTemperature ();
// Skontrolujte, či niektoré čítanie zlyhalo, a ukončite program
if (isnan (h) || isnan (t)) {Serial.println (F ("Zlyhalo čítanie zo senzora DHT!")); návrat; } dhtResult.h = h; dhtResult.t = t; }
Krok 5: Odosielanie údajov do cloudu
Keď máme tieto údaje k dispozícii, ďalším krokom je ich odoslanie do služby Cloud4RPi.
Stránka Cloud4RPi pre Arduino popisuje API knižnice, čo je sada metód používaných na:
- vytvárať, čítať a aktualizovať premenné,
- odosielať hodnoty premenných do cloudu pomocou protokolu MQTT.
Knižnica podporuje tri typy premenných: Bool, Numeric a String.
Pracovný postup knižnice začína vytvorením inštancie API pomocou Tokenu zariadenia z webu cloud4rpi.io (podrobnosti nájdete v časti 1 článku).
#ak je definovaný (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #koniec Ak
Potom deklarujte premenné pre hodnoty DHT11:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Potom získajte údaje zo senzora, uložte ich do premenných a zverejnite údaje v službe Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Teplota a vlhkosť sa nemenia rýchlo, takže odosielanie viac ako jednej hodnoty za 5 minút nie je potrebné.
Krok 6: Diagnostika
Cloud4RPi podporuje diagnostické údaje spolu s hodnotami premenných. Ako diagnostické údaje som použil dobu prevádzky, silu signálu Wi-Fi a adresu IP:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // sila signálu WiFi c4r.declareDiagVariable ("Uptime");
Poznámka: Funkcia millis, ktorú používam na získanie resetovania prevádzkyschopnosti na nulu každých ~ 50 dní. Čo je pre môj projekt viac ako dosť.
Nasledujúci kód nastavuje hodnoty diagnostických premenných:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Funkcia uptimeHumanReadable prevádza milisekundy do vhodnej formy:
Reťazec uptimeHumanReadable (dlhé znamienka bez znamienka) {static char uptimeStr [32]; bez znamienka dlhé sekundy = milisekundy / 1000; bez znamienka dlhé minúty = s / 60; nepodpísané int hodiny = min / 60; nepodpísané int dni = hodiny / 24; s -= minúty * 60; min -= hodiny * 60; hodiny -= dni * 24; sprintf (uptimeStr, "%d dní%2,2d:%2,2d:%2,2d", (bajty) dni, (bajty) hodiny, (bajty) minúty, (bajty) sekundy); return String (uptimeStr); }
Funkcia namiesto podivného veľkého čísla vygeneruje reťazec takto 5 dní 10:23:14.
Krok 7: Spustite a ladte projekt
Po skompilovaní vytvoreného kódu a jeho vložení do NodeMCU sa zariadenie pripojí k cloudovej službe a začne odosielať údaje.
Podrobnosť protokolovania môžete zvýšiť nastavením premennej preprocesora CLOUD4RPI_DEBUG na 1 (pridajte -D CLOUD4RPI_DEBUG = 1 do sekcie build_flags v súbore platform.io).
Potom otvorte webovú stránku cloud4rpi.io a všimnite si nové zariadenie online. Otvorte ho a zobrazte všetky hodnoty premenných prijaté zo zariadenia: senzor a diagnostiku.
Krok 8: Konfigurácia panela
V tomto kroku je dátové pripojenie do cloudu funkčné. Teraz nakonfigurujme vizuálnu reprezentáciu údajov.
Na vytvorenie nasledujúceho panela som použil používateľské rozhranie konfigurácie panela.
Palubná doska je zdieľateľná, takže ju okamžite zdieľam so svojim priateľom.
Krok 9: Záver
Úplný kód projektu je k dispozícii v jadre.
To je zatiaľ všetko!
Otázky a návrhy sú vítané v komentároch.
Odporúča:
Snímač teploty a vlhkosti (DHT22) s doskou Dexter: 7 krokov
Snímač teploty a vlhkosti (DHT22) s doskou Dexter: Dexter board je súprava vzdelávacích trénerov, vďaka ktorým je učenie elektroniky zábavné a jednoduché. Doska združuje všetky potrebné súčasti, ktoré potrebuje začiatočník na zmenu myšlienky na úspešný prototyp. Vďaka Arduinu v srdci je obrovské množstvo
Pripojenie Arduino WiFi k cloudu pomocou ESP8266: 7 krokov
Pripojenie Arduino WiFi k cloudu pomocou ESP8266: V tomto návode vám vysvetlíme, ako pripojiť Arduino k cloudu IoT prostredníctvom WiFi. Konfigurujeme nastavenie zložené z modulu Arduino a WiFi modulu ESP8266 ako vec IoT a pripravíme ho komunikovať s cloudom AskSensors. L
Základy IoT: Pripojenie IoT k cloudu pomocou systému Mongoose OS: 5 krokov
Základy IoT: Pripojenie IoT k cloudu pomocou systému Mongoose OS: Ak ste človek, ktorý sa zaoberá drotárstvom a elektronikou, častejšie sa stretnete s pojmom internet vecí, ktorý sa zvyčajne označuje skratkou IoT, a že označuje skupinu zariadení, ktoré sa môžu pripojiť k internetu! Byť takým človekom
Hra Flappy Bird s vývojovou radou M5stick C založenou na M5stack Esp32: 5 krokov
Hráme hru Flappy Bird s vývojovou radou M5stick C založenou na M5stack Esp32: Ahoj, chlapci, dnes sa naučíme nahrať kód hry flappy bird do vývojovej dosky m5stick c, ktorú poskytuje m5stack. Na tento malý projekt budete potrebovať nasledujúce dve veci: m5stick-c vývojová rada: https://www.utsource.net/itm/p/8663561.h
Pripojenie systému environmentálneho senzora pre UAV: 18 krokov
Príloha k systému environmentálnych senzorov pre UAV: Účelom tohto návodu je popísať, ako skonštruovať, pripevniť a ovládať environmentálny senzorový systém spoločnosti Integrated Solutions Technology v spojení s dronom DJI Phantom 4. Tieto balíky senzorov využívajú dron na prenos