Sadržaj:
- Pribor
- Korak 1: Izmjerite temperaturu i vlažnost
- Korak 2: Izradite i konfigurirajte projekt
- Korak 3: Instalirajte knjižnice
- Korak 4: Spojite DHT11 osjetnik
- Korak 5: Slanje podataka u oblak
- Korak 6: Dijagnostika
- Korak 7: Pokrenite projekt i otklonite pogreške
- Korak 8: Konfiguracija nadzorne ploče
- Korak 9: Zaključak
Video: Spajanje senzora DHT11/DHT22 na oblak s pločom zasnovanom na ESP8266: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U prethodnom članku povezivao sam svoju ploču NodeMCU zasnovanu na ESP8266 s uslugom Cloud4RPi. Sada je vrijeme za pravi projekt!
Pribor
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 - Upravljačka ploča u oblaku za IoT uređaje
- PlatformIO IDE za VSCode
Korak 1: Izmjerite temperaturu i vlažnost
Već sam imao senzor DHT11 pa sam ga odlučio koristiti za mjerenje temperature i vlažnosti. Odaberimo Arduino knjižnicu za čitanje podataka senzora.
Arduino registar sadrži nekoliko knjižnica, od kojih sam odabrao najpopularniju.
Prema njihovom spremištu GitHub, od nas se također traži da dodamo Adafruit Unified Sensor paket.
Korak 2: Izradite i konfigurirajte projekt
Već sam opisao kako stvoriti PlatformIO projekt i instalirati knjižnice u prvom dijelu. Moj projekt se zove “MyNodeMCU”. Struktura je prikazana gore.
Ovaj projekt je malo izmijenjeni primjer Cloud4RPi. 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 knjižnice
Instalacija knjižnica je vrlo jednostavna. To možete učiniti s IDE -ovog grafičkog sučelja ili dodavanjem potrebnih naziva knjižnica u odjeljak lib_deps datoteke platform.io:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT knjižnica build -flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = 0 -D SSID_ / YIP_DIP / " D CLOUD4RPI_TOKEN = / "_ YOUR_DEVICE_TOKEN _ \"
Dodane knjižnice automatski će se instalirati u podmapu projekta.
Zaglavlje main.cpp izgleda ovako:
#include #include #include #include "DHT.h"
Korak 4: Spojite DHT11 osjetnik
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 osjetnik#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 neuspjelo čitanje i izađite
if (isnan (h) || isnan (t)) {Serial.println (F ("Nije uspjelo čitanje s DHT senzora!")); povratak; } 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 knjižnice, skup metoda koje se koriste za:
- stvaranje, čitanje i ažuriranje varijabli,
- slanje promjenjivih vrijednosti u oblak pomoću MQTT protokola.
Knjižnica podržava tri varijable: Bool, Numeric i String.
Tijek rada knjižnice započinje stvaranjem instance instance koristeći token uređaja s web lokacije cloud4rpi.io (pojedinosti potražite u 1. dijelu članka).
#if definirano (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #završi ako
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 vlaga 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. Kao dijagnostičke podatke koristio sam produženje rada, jačinu Wi-Fi signala i IP adresu:
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 projekt.
Sljedeći kôd 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]; bez potpisa duge sekunde = milisekunde / 1000; nepotpisane duge minute = sekunde / 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", (byte) dana, (byte) sati, (byte) min, (byte) secs); return String (uptimeStr); }
Ova funkcija prikazuje ovakav niz 5 dana 10:23:14 umjesto čudnog velikog broja.
Korak 7: Pokrenite projekt i otklonite pogreške
Nakon sastavljanja stvorenog koda i prebacivanja u NodeMCU, uređaj se povezuje s uslugom u oblaku i počinje slati podatke.
Opširnost prijavljivanja 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 mjesto cloud4rpi.io i primijetite novi uređaj na mreži. Otvorite ga da biste vidjeli 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 izradu sljedeće nadzorne ploče.
Nadzorna ploča je dostupna za dijeljenje pa je odmah dijelim sa svojim prijateljem.
Korak 9: Zaključak
Cjeloviti kôd projekta dostupan je u srži.
To je sve za sada!
Pitanja i prijedlozi dobrodošli su u komentarima.
Preporučeni:
Vodič za spajanje PLSD -a: Spajanje na Apple TV putem AirPlaya [Neslužbeno]: 10 koraka
Vodič za spajanje PLSD -a: Povezivanje s Apple TV -ima putem AirPlay -a [Neslužbeno]: Sljedeći vodič pruža ilustraciju procesa povezivanja Apple TV -a s konferencijskom sobom putem AirPlay -a. Ovaj neslužbeni izvor dostupan je iz ljubaznosti administraciji, osoblju i ovlaštenim gostima Perkins Local School Districta
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 u oblaku
Igranje Flappy Bird igre s razvojnom pločom M5stack Esp32 zasnovanom na M5stick C: 5 koraka
Igranje Flappy Bird igre s M5stack Esp32 baziranom na razvojnoj ploči M5stick C: Zdravo dečki, danas ćemo naučiti kako učitati kôd igre flappy bird na razvojnu ploču m5stick c koju pruža m5stack. Za ovaj mali projekt trebat će vam sljedeće dvije stvari: m5stick-c razvojna ploča: https://www.utsource.net/itm/p/8663561.h
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. Što ćete Naučite: DHT11 i DHT22
SMART LED animacijski sat povezan na web s upravljačkom pločom zasnovanom na webu, sinkronizirano vremenskim poslužiteljem: 11 koraka (sa slikama)
SMART LED animacijski sat povezan s internetom S upravljačkom pločom zasnovanom na webu, sinkroniziranim vremenskim poslužiteljem: Priča o ovom satu seže u prošlost-više od 30 godina. Moj je otac započeo ovu ideju kad sam imao samo 10 godina, mnogo prije LED revolucije - još kad su LED diode bile 1/1000 svjetline trenutnog zasljepljujućeg sjaja. Istina