Sisukord:
- Tarvikud
- Samm: mõõtke temperatuuri ja niiskust
- Samm: projekti loomine ja konfigureerimine
- Samm: installige teegid
- Samm: ühendage DHT11 andur
- Samm: andmete saatmine pilve
- 6. samm: diagnostika
- Samm: käivitage ja siluge projekt
- 8. samm: armatuurlaua konfigureerimine
- 9. samm: järeldus
Video: DHT11/DHT22 anduri ühendamine pilvega ESP8266-põhise plaadiga: 9 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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
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
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
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
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
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
Kogu projekti kood on sisuliselt saadaval.
Praeguseks kõik!
Küsimused ja ettepanekud on kommentaarides teretulnud.
Soovitan:
ESP8266 NodeMCU ühendamine Interneti -pilvega: 5 sammu
Kuidas ühendada ESP8266 NodeMCU IoT Cloudiga: see juhend annab teile lihtsa asjade Interneti demo, kasutades ESP8266 NodeMCU -d ja veebipõhist IoT -teenust nimega AskSensors. Näitame teile, kuidas kiiresti ESP8266 HTTPS kliendilt andmeid hankida ja need graafiliselt AskSensors Io -sse joonistada
ESP32 ühendamine Interneti -pilvega: 8 sammu
Kuidas ühendada ESP32 IoT pilvega: see juhend on saadaval artiklite seerias riistvara, näiteks Arduino ja ESP8266, ühendamiseks pilvega. Ma selgitan teile, kuidas oma ESP32 kiip AskSensors IoT teenusega pilvega ühendada. Miks ESP32? Pärast suurt edu
Arduino WiFi ühendamine pilvega, kasutades ESP8266: 7 sammu
Arduino WiFi ühendamine pilvega, kasutades ESP8266: Selles õpetuses selgitame teile, kuidas ühendada oma Arduino WiFi kaudu IoT pilvega. Seadistame Arduino ja ESP8266 WiFi moodulist koosneva seadistuse IoT asjaks ja valmistame selle valmis suhelda AskSensors pilvega. L
IoT põhitõed: IoT ühendamine pilvega Mongoose OS -i abil: 5 sammu
IoT põhitõed: oma IoT ühendamine pilvega Mongoose OS -i abil: Kui olete inimene, kes tegeleb nokitsemise ja elektroonikaga, siis satute sagedamini kui mõiste asjade Internet, tavaliselt lühendina IoT, ja viitab seadmete komplektile, millega saab Interneti -ühendust luua! Olles selline inimene
Mullaniiskuse anduri ja ESP8266 ühendamine AskSensors IoT Cloudiga: 10 sammu
Mullaniiskuse anduri ja ESP8266 ühendamine AskSensors IoT Cloudiga: see juhend näitab teile, kuidas ühendada oma mullaniiskuse andur ja ESP8266 IoT pilvega. Selle projekti jaoks kasutame sõlme MCU ESP8266 WiFi moodulit ja mulla niiskuseandurit mis mõõdab vee mahulist sisaldust nii