Sadržaj:
- Supplies
- Korak 1: Izmjerite temperaturu i vlažnost
- Korak 2: Kreirajte i konfigurirajte projekt
- Korak 3: Instalirajte biblioteke
- Korak 4: Povežite DHT11 senzor
- Korak 5: Slanje podataka u oblak
- Korak 6: Dijagnostika
- Korak 7: Pokrenite i otklonite greške u projektu
- Korak 8: Konfiguracija nadzorne ploče
- Korak 9: Zaključak
Video: Spajanje senzora DHT11/DHT22 na oblak sa pločom zasnovanom na ESP8266: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
U prethodnom članku sam povezao svoju ploču NodeMCU zasnovanu na ESP8266 sa uslugom Cloud4RPi. Sada je vrijeme za pravi projekt!
Supplies
Hardverski zahtjevi:
- Bilo koja ploča zasnovana na čipu ESP8266 (na primjer, NodeMCU)
- Senzor DHT11 ili DHT22
Softver i usluge:
- Biblioteka DHT senzora Adafruit - v1.3.7
- Adafruit Unified Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Cloud kontrolna ploča za IoT uređaje
- PlatformIO IDE za VSCode
Korak 1: Izmjerite temperaturu i vlažnost
Već sam imao senzor DHT11, pa sam odlučio koristiti ga za mjerenje temperature i vlažnosti. Odaberemo Arduino biblioteku za čitanje podataka senzora.
Arduino registar sadrži nekoliko biblioteka, od kojih sam odabrao najpopularniju.
Prema njihovom spremištu GitHub, od nas se traži i dodavanje Adafruit Unified Sensor paketa.
Korak 2: Kreirajte i konfigurirajte projekt
Već sam opisao kako stvoriti PlatformIO projekt i instalirati biblioteke u prvom dijelu. Moj projekt se zove “MyNodeMCU”. Struktura je prikazana gore.
Ovaj projekt je malo izmijenjeni primjer Cloud4RPi-a. Odlučio sam umjesto koda pohraniti token uređaja i vjerodajnice za Wi-Fi u konfiguracijsku datoteku.
Datoteka platform.io izgleda ovako:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platforma = espressif8266 framework = arduino ploča = nodemcuv2
Korak 3: Instalirajte biblioteke
Instalacija biblioteka je vrlo jednostavna. To možete učiniti iz IDE -ovog grafičkog sučelja ili dodavanjem potrebnih naziva biblioteka u odjeljak lib_deps datoteke platform.io:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT biblioteka = -D MQTT_MAX_PACKET_SIZE = 128 D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Dodane biblioteke će se automatski instalirati u podmapu projekta.
Zaglavlje main.cpp izgleda ovako:
#include #include #include #include "DHT.h"
Korak 4: Povežite DHT11 senzor
Adafruit pruža DHTtester.ino primjer povezivanja senzora.
Ovaj kôd inicijalizira senzor i definira strukturu za pohranu rezultata mjerenja (u slučaju da je bio uspješan):
#define DHTPIN 2 // Digitalni pin spojen na DHT senzor#define DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… struct DHT_Result {float h; float t; }; DHT_Result dhtResult;
Sljedeća funkcija pokazuje kako očitati podatke senzora i pohraniti ih u gore opisanu strukturu podataka
void readSensors () {float h = dht.readHumidity (); // Očitavanje temperature kao Celsius (zadano) float t = dht.readTemperature ();
// Provjerite da li neko čitanje nije uspjelo i izađite
if (isnan (h) || isnan (t)) {Serial.println (F ("Nije uspjelo čitanje sa DHT senzora!")); return; } dhtResult.h = h; dhtResult.t = t; }
Korak 5: Slanje podataka u oblak
Nakon što dobijemo te podatke, sljedeći korak je slanje na uslugu Cloud4RPi.
Stranica Cloud4RPi za Arduino opisuje API biblioteke, što je skup metoda koje se koriste za:
- kreiranje, čitanje i ažuriranje varijabli,
- šalje varijabilne vrijednosti u oblak koristeći MQTT protokol.
Biblioteka podržava tri varijable: Bool, Numeric i String.
Tijek rada biblioteke započinje stvaranjem API instance pomoću Token uređaja sa web lokacije cloud4rpi.io (detalje potražite u 1. dijelu članka).
#if definirano (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif
Zatim deklarirajte varijable za očitanja DHT11:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Zatim nabavite podatke sa senzora, spremite ih u varijable i objavite podatke u Cloud4RPi:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Temperatura i vlažnost se ne mijenjaju brzo, pa slanje više od jedne vrijednosti u 5 minuta nije potrebno.
Korak 6: Dijagnostika
Cloud4RPi podržava dijagnostičke podatke zajedno s promjenjivim vrijednostima. Koristio sam produženje rada, jačinu Wi-Fi signala i IP adresu kao dijagnostičke podatke:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // Jačina WiFi signala c4r.declareDiagVariable ("Uptime");
Napomena: Milis funkcija koju koristim za vraćanje vremena rada na nulu svakih ~ 50 dana. Što je više nego dovoljno za moj projekat.
Sljedeći kod postavlja vrijednosti dijagnostičke varijable:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Funkcija uptimeHumanReadable pretvara milisekunde u prikladan oblik:
String uptimeHumanReadable (nepotpisane duge milisekunde) {static char uptimeStr [32]; nepotpisane duge sekunde = milisekunde / 1000; nepotpisani dugi min = sek / 60; nepotpisani int sati = min / 60; nepotpisani int dani = sati / 24; sekunde -= min * 60; min -= sati * 60; sati -= dana * 24; sprintf (uptimeStr, "%d dana%2.2d:%2.2d:%2.2d", (bajt) dana, (bajt) sati, (bajt) min, (bajt) sekundi); return String (uptimeStr); }
Ova funkcija prikazuje ovakav niz 5 dana 10:23:14 umjesto čudnog velikog broja.
Korak 7: Pokrenite i otklonite greške u projektu
Nakon sastavljanja kreiranog koda i prebacivanja u NodeMCU, uređaj se povezuje na uslugu u oblaku i počinje slati podatke.
Opširnost evidentiranja možete povećati postavljanjem varijable predprocesora CLOUD4RPI_DEBUG na 1 (dodajte -D CLOUD4RPI_DEBUG = 1 u odjeljak build_flags u datoteci platform.io).
Zatim otvorite web lokaciju cloud4rpi.io i primijetite novi uređaj na mreži. Otvorite ga da vidite sve promjenjive vrijednosti primljene s uređaja: senzor i dijagnostiku.
Korak 8: Konfiguracija nadzorne ploče
U ovom koraku, podatkovna veza s oblakom je operativna. Sada, konfigurirajmo vizualni prikaz podataka.
Korisničko sučelje za konfiguraciju nadzorne ploče upotrijebio sam za stvaranje sljedeće nadzorne ploče.
Kontrolna ploča se može dijeliti, pa je odmah dijelim sa svojim prijateljem.
Korak 9: Zaključak
Potpuni kôd projekta dostupan je u srži.
To je sve za sada!
Pitanja i prijedlozi dobrodošli su u komentarima.
Preporučuje se:
Senzor temperature i vlažnosti (DHT22) s Dexter pločom: 7 koraka
Senzor temperature i vlažnosti (DHT22) sa Dexter pločom: Dexter ploča je obrazovni komplet za trenere koji učenje elektronike čini zabavnim i lakim. Ploča okuplja sve potrebne dijelove koji su početniku potrebni da bi promijenio ideju u uspješan prototip. S Arduinom u srcu, ogroman broj
Automatizirana pametna akvaponika (s nadzornom pločom zasnovanom na oblaku): 11 koraka
Automatizirana pametna akvaponika (s nadzornom pločom zasnovanom na oblaku): Aquaponika vam omogućuje da uzgajate vlastitu organsku hranu bilo gdje (unutarnju ili vanjsku), na vrlo manje prostora, s većim rastom, manjom potrošnjom vode i bez ikakvih vanjskih kemijskih gnojiva. Također, možete pratiti stanje na nadzornoj ploči zasnovanoj na oblaku
Vodič za početnike o upotrebi DHT11/ DHT22 senzora W/ Arduino: 9 koraka
Vodič za početnike o upotrebi DHT11/ DHT22 senzora W/ Arduino: Ovaj i druge nevjerojatne vodiče možete pročitati na službenoj web stranici ElectroPeak -a Pregled U ovom vodiču naučit ćete kako postaviti DHT11 i DHT22 senzore te mjeriti temperaturu i vlažnost okoline. Šta ćete Naučite: DHT11 i DHT22
SMART LED animacijski sat povezan s internetom sa upravljačkom pločom zasnovanom na webu, sinhroniziran vremenski server: 11 koraka (sa slikama)
SMART LED animacijski sat povezan s internetom S upravljačkom pločom zasnovanom na webu, sinhroniziranim vremenskim serverom: Priča o ovom satu seže u daleku prošlost-više od 30 godina. Moj otac je započeo ovu ideju kada sam imao samo 10 godina, mnogo prije LED revolucije - tada kada su LED diode bile 1/1000 svjetline trenutnog zasljepljujućeg sjaja. Istina
Kako fleširati MicroPython firmver na Sonoff pametnom prekidaču zasnovanom na ESP8266: 3 koraka (sa slikama)
Kako fleširati MicroPython firmver na Sonoff pametnom prekidaču zasnovanom na ESP8266: Šta je Sonoff? Sonoff je linija uređaja za pametnu kuću koju je razvila ITEAD. Jedan od najfleksibilnijih i najjeftinijih uređaja iz te linije su Sonoff Basic i Sonoff Dual. Ovo su prekidači s omogućenom Wi-Fi mrežom zasnovani na odličnom čipu, ESP8266. Dok