Satura rādītājs:
- Piegādes
- 1. darbība. Izmēriet temperatūru un mitrumu
- 2. darbība: izveidojiet un konfigurējiet projektu
- 3. darbība: instalējiet bibliotēkas
- 4. solis: pievienojiet DHT11 sensoru
- 5. darbība: datu sūtīšana uz mākoni
- 6. darbība: diagnostika
- 7. darbība: sāciet un atkļūdojiet projektu
- 8. darbība. Informācijas paneļa konfigurēšana
- 9. solis. Secinājums
Video: DHT11/DHT22 sensora pievienošana mākonim, izmantojot ESP8266 bortu: 9 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Iepriekšējā rakstā es savienoju savu ESP8266 bāzes NodeMCU plati ar Cloud4RPi pakalpojumu. Tagad ir pienācis laiks īstenam projektam!
Piegādes
Aparatūras prasības:
- Jebkura tāfele, kuras pamatā ir mikroshēma ESP8266 (piemēram, NodeMCU)
- DHT11 vai DHT22 sensors
Programmatūra un pakalpojumi:
- Adafruit DHT sensoru bibliotēka - v1.3.7
- Adafruit Unified Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Mākonis vadības panelis IoT ierīcēm
- PlatformIO IDE VSCode
1. darbība. Izmēriet temperatūru un mitrumu
Man jau bija DHT11 sensors, tāpēc nolēmu to izmantot temperatūras un mitruma mērījumiem. Lai nolasītu sensora datus, izvēlēsimies Arduino bibliotēku.
Arduino reģistrā ir vairākas bibliotēkas, no kurām es izvēlējos populārāko.
Saskaņā ar viņu GitHub krātuvi mums ir jāpievieno arī Adafruit vienotā sensora pakotne.
2. darbība: izveidojiet un konfigurējiet projektu
Kā izveidot PlatformIO projektu un instalēt bibliotēkas, es jau aprakstīju pirmajā daļā. Mans projekts saucas “MyNodeMCU”. Struktūra ir parādīta iepriekš.
Šis projekts ir nedaudz pārveidots Cloud4RPi piemērs. Es nolēmu ierīces marķieri un Wi-Fi akreditācijas datus saglabāt koda vietā konfigurācijas failā.
Fails platform.io izskatās šādi:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 Framework = arduino board = nodemcuv2
3. darbība: instalējiet bibliotēkas
Bibliotēku uzstādīšana ir diezgan vienkārša. To var izdarīt no IDE grafiskā interfeisa vai pievienojot nepieciešamos bibliotēku nosaukumus faila platform.io faila sadaļai lib_deps:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT sensoru bibliotēkas build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -SSID_ / \ - D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Pievienotās bibliotēkas tiks automātiski instalētas projekta apakšmapē.
Main.cpp galvene izskatās šādi:
#iekļaut #iekļaut #iekļaut #iekļaut "DHT.h"
4. solis: pievienojiet DHT11 sensoru
Adafruit nodrošina DHTtester.ino sensora savienojuma piemēru.
Šis kods inicializē sensoru un nosaka struktūru, lai saglabātu mērījumu rezultātu (ja tas bija veiksmīgs):
#define DHTPIN 2 // Digitālā tapa, kas savienota ar DHT sensoru#define DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… structure DHT_Result {float h; pludiņš t; }; DHT_Result dhtResult;
Nākamā funkcija parāda, kā nolasīt sensoru datus un saglabāt tos iepriekš aprakstītajā datu struktūrā
void readSensors () {pludiņš h = dht.readHumidity (); // Temperatūras lasīšana pēc Celsija (noklusējuma) float t = dht.readTemperature ();
// Pārbaudiet, vai kāda nolasīšana neizdevās, un izejiet
if (isnan (h) || isnan (t)) {Serial.println (F ("Neizdevās nolasīt no DHT sensora!")); atgriešanās; } dhtResult.h = h; dhtResult.t = t; }
5. darbība: datu sūtīšana uz mākoni
Kad mums ir šie dati, nākamais solis ir nosūtīt tos pakalpojumam Cloud4RPi.
Lapā Cloud4RPi for Arduino ir aprakstīta bibliotēkas API, kas ir metožu kopums, ko izmanto, lai:
- izveidot, lasīt un atjaunināt mainīgos,
- nosūtīt mainīgās vērtības mākonī, izmantojot MQTT protokolu.
Bibliotēka atbalsta trīs mainīgos veidus: tukša, ciparu un virkne.
Bibliotēkas darbplūsma sākas ar API instances izveidi, izmantojot ierīces marķieri no vietnes cloud4rpi.io (sīkāku informāciju skatiet raksta 1. daļā).
#if definēts (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif
Pēc tam deklarējiet mainīgos DHT11 rādījumiem:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Pēc tam iegūstiet datus no sensora, saglabājiet tos mainīgajos un publicējiet datus Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Temperatūra un mitrums nemainās ātri, tāpēc nav jānosūta vairāk nekā viena vērtība 5 minūtēs.
6. darbība: diagnostika
Cloud4RPi atbalsta diagnostikas datus un mainīgās vērtības. Kā diagnostikas datus izmantoju darbības laiku, Wi-Fi signāla stiprumu un IP adresi:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi signāla stiprums c4r.declareDiagVariable ("Uptime");
Piezīme: milis funkcija, ko izmantoju, lai iegūtu darba laiku, tiek atiestatīta uz nulli ik pēc ~ 50 dienām. Kas ir vairāk nekā pietiekami manam projektam.
Šis kods nosaka diagnostikas mainīgo vērtības:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Funkcija uptimeHumanReadable pārvērš milisekundes ērtā formā:
String uptimeHumanReadable (neparakstītas garas milisekundes) {static char uptimeStr [32]; neparakstītas garās sekundes = milisekundes / 1000; neparakstītas garas minūtes = sekundes / 60; neparakstītas int stundas = min / 60; neparakstītas int dienas = stundas / 24; sekundes -= min * 60; min -= stundas * 60; stundas -= dienas * 24; sprintf (uptimeStr, "%d dienas%2.2d:%2.2d:%2.2d", (baits) dienas, (baits) stundas, (baits) min, (baits) sekundes); atgriešanās virkne (uptimeStr); }
Funkcija izvada šādu virkni 5 dienas 10:23:14 dīvaina liela skaitļa vietā.
7. darbība: sāciet un atkļūdojiet projektu
Pēc izveidotā koda apkopošanas un ievadīšanas NodeMCU ierīce izveido savienojumu ar mākoņa pakalpojumu un sāk sūtīt datus.
Jūs varat palielināt mežizstrādes daudzpusību, iestatot CLOUD4RPI_DEBUG priekšprocesora mainīgo uz 1 (pievienojiet -D CLOUD4RPI_DEBUG = 1 platformas.io faila sadaļai build_flags).
Pēc tam atveriet vietni cloud4rpi.io un pamaniet jauno ierīci tiešsaistē. Atveriet to, lai redzētu visas mainīgās vērtības, kas saņemtas no ierīces: sensoru un diagnostiku.
8. darbība. Informācijas paneļa konfigurēšana
Šajā posmā darbojas datu savienojums ar mākoni. Tagad konfigurēsim datu vizuālo attēlojumu.
Es izmantoju informācijas paneļa konfigurācijas lietotāja saskarni, lai izveidotu šādu informācijas paneli.
Informācijas panelis ir koplietojams, tāpēc es uzreiz to kopīgoju ar savu draugu.
9. solis. Secinājums
Pilns projekta kods ir pieejams būtībā.
Tas pagaidām ir viss!
Jautājumi un ieteikumi ir laipni gaidīti komentāros.
Ieteicams:
Kā pieslēgt Raspberry Pi mākonim, izmantojot Node.js: 7 soļi
Kā pieslēgt Raspberry Pi mākonim, izmantojot Node.js: šī apmācība ir noderīga ikvienam, kurš vēlas pieslēgt Raspberry Pi mākonim, īpaši ar AskSensors IoT platformu, izmantojot Node.js. Vai jums nav Raspberry Pi? Ja jums pašlaik nepieder Raspberry Pi, es ieteikšu jums iegādāties Raspberry
Izmēriet temperatūru un mitrumu, izmantojot DHT11 / DHT22 un Arduino: 4 soļi
Temperatūras un mitruma mērīšana, izmantojot DHT11 / DHT22 un Arduino: Šajā Arduino apmācībā mēs iemācīsimies izmantot DHT11 vai DHT22 sensoru temperatūras un mitruma mērīšanai ar Arduino plāksni
Pievienojiet savu augu mākonim: 10 soļi
Savienojiet savu augu ar mākoni: mūsu birojā ir kaktuss, kas nesaņēma pelnīto uzmanību. Tā kā es strādāju IT uzņēmumā un vēlējos eksperimentēt ar LoRa, risinājumiem bez serveriem un AWS, es nosaucu mūsu kaktusu par Stīvu un savienoju viņu ar mākoni. Tagad jūs varat uzraudzīt
Izveidojiet Apple HomeKit temperatūras sensora (DHT22) ierīci, izmantojot RaspberryPI un DHT22: 11 soļi
Izveidojiet Apple HomeKit temperatūras sensora (DHT22) ierīci, izmantojot RaspberryPI un DHT22: Es meklēju lētu temperatūras / mitruma sensoru, ko varētu izmantot, lai uzraudzītu, kas notiek manā pārmeklēšanas telpā, jo atklāju, ka šopavasar tas bija ļoti slapjš , un tajā bija daudz mitruma. Tāpēc es meklēju sensoru par saprātīgu cenu, ko es varētu
Kas ir pie Manām durvīm? PIR kustības sensora/diapazona sensora projekts: 5 soļi
Kas ir pie Manām durvīm? PIR kustības sensora/diapazona sensora projekts: Mūsu projekta mērķis ir uztvert kustību, izmantojot PIR un attāluma sensorus. Arduino kods izvadīs vizuālu un audio signālu, lai informētu lietotāju, ka kāds atrodas tuvumā. MATLAB kods nosūtīs e -pasta signālu, lai brīdinātu lietotāju, ka kāds atrodas tuvumā. Šī ierīce