Tartalomjegyzék:
- Kellékek
- Lépés: Mérje meg a hőmérsékletet és a páratartalmat
- 2. lépés: Projekt létrehozása és konfigurálása
- 3. lépés: Telepítse a könyvtárakat
- 4. lépés: Csatlakoztasson egy DHT11 érzékelőt
- 5. lépés: Adatok küldése a felhőbe
- 6. lépés: Diagnosztika
- 7. lépés: A projekt indítása és hibakeresése
- 8. lépés: A műszerfal konfigurálása
- 9. lépés: Következtetés
Videó: DHT11/DHT22 érzékelő csatlakoztatása a felhőhöz ESP8266 alapú táblával: 9 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Az előző cikkben az ESP8266-alapú NodeMCU kártyát egy Cloud4RPi szolgáltatáshoz kötöttem. Itt az ideje egy igazi projektnek!
Kellékek
Hardverkövetelmények:
- Bármely ESP8266 chipen alapuló kártya (például NodeMCU)
- DHT11 vagy DHT22 érzékelő
Szoftverek és szolgáltatások:
- DHT szenzortár Adafruit - v1.3.7
- Adafruit Unified Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - Felhővezérlő panel IoT -eszközökhöz
- PlatformIO IDE a VSCode számára
Lépés: Mérje meg a hőmérsékletet és a páratartalmat
Már volt DHT11 érzékelőm, ezért úgy döntöttem, hogy hőmérséklet- és páratartalom -mérésre használom. Válasszunk egy Arduino könyvtárat az érzékelő adatok olvasásához.
Az Arduino registry több könyvtárat tartalmaz, amelyek közül a legnépszerűbbet választottam.
A GitHub adattáruk szerint egy Adafruit Unified Sensor csomagot is hozzá kell adnunk.
2. lépés: Projekt létrehozása és konfigurálása
Az első részben már leírtam a PlatformIO projekt létrehozásának és a könyvtárak telepítésének módját. A projektemet „MyNodeMCU” -nak hívják. A szerkezet fent látható.
Ez a projekt egy kissé módosított Cloud4RPi példa. Úgy döntöttem, hogy az eszköz tokenjét és a Wi-Fi hitelesítő adatait a konfigurációs fájlban tárolja a kód helyett.
A platform.io fájl a következőképpen néz ki:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 Framework = arduino board = nodemcuv2
3. lépés: Telepítse a könyvtárakat
A könyvtárak telepítése meglehetősen egyszerű. Ezt megteheti az IDE grafikus felületéről, vagy a szükséges könyvtárnevek hozzáadásával a platform.io fájl lib_deps részéhez:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Unified Sensor DHT szenzorkönyvtár 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 _ \"
A hozzáadott könyvtárak automatikusan telepítésre kerülnek a projekt almappájába.
A main.cpp fejléc a következőképpen néz ki:
#include #include #include #include "DHT.h"
4. lépés: Csatlakoztasson egy DHT11 érzékelőt
Az Adafruit egy DHTtester.ino példát kínál az érzékelő csatlakoztatására.
Ez a kód inicializálja az érzékelőt, és definiál egy struktúrát a mérési eredmény tárolására (ha sikeres volt):
#define DHTPIN 2 // Digitális tű a DHT érzékelőhöz csatlakoztatva#define DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… structure DHT_Result {float h; úszó t; }; DHT_Eredmény dhtResult;
A következő funkció bemutatja, hogyan kell olvasni az érzékelő adatait és tárolni azokat a fent leírt adatszerkezetben
void readSensors () {float h = dht.readHumidity (); // A hőmérséklet olvasása Celsius -ban (alapértelmezett) float t = dht.readTemperature ();
// Ellenőrizze, hogy nem sikerült -e olvasni, és lépjen ki
if (isnan (h) || isnan (t)) {Serial.println (F ("Nem sikerült leolvasni a DHT szenzorból!")); Visszatérés; } dhtResult.h = h; dhtResult.t = t; }
5. lépés: Adatok küldése a felhőbe
Ha megvannak az adatok, a következő lépés az, hogy elküldjük a Cloud4RPi szolgáltatásnak.
A Cloud4RPi for Arduino oldal leírja a könyvtár API -t, amely a következő módszerek összessége:
- változók létrehozása, olvasása és frissítése,
- változó értékeket küld a felhőbe az MQTT protokoll használatával.
A könyvtár három változótípust támogat: Bool, Numeric és String.
A könyvtár munkafolyamata az API -példány létrehozásával kezdődik a cloud4rpi.io webhely Device Token használatával (részletekért lásd a cikk 1. részét).
#if meghatározott (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #else Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif
Ezután deklarálja a változókat a DHT11 leolvasásokhoz:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Ezután szerezzen be adatokat az érzékelőből, mentse őket változókba, és tegye közzé az adatokat a Cloud4RPi -ben:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
A hőmérséklet és a páratartalom nem változik gyorsan, ezért 5 percenként egynél több érték elküldése nem szükséges.
6. lépés: Diagnosztika
A Cloud4RPi támogatja a diagnosztikai adatokat a változó értékekkel együtt. Az üzemidőt, a Wi-Fi jelerősséget és az IP-címet használtam diagnosztikai adatként:
c4r.declareDiagVariable ("IP_cím"); c4r.declareDiagVariable ("RSSI"); // WiFi jelerősség c4r.declareDiagVariable ("Uptime");
Megjegyzés: Az üzemidő eléréséhez használt millis függvény ~ 50 naponta nullázódik. Ami több mint elég a projektemhez.
A következő kód a diagnosztikai változók értékeit állítja be:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Cím", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
Az uptimeHumanReadable függvény ezredmásodperceket alakít át kényelmes formába:
String uptimeHumanReadable (előjel nélküli hosszú ezredmásodpercek) {static char uptimeStr [32]; előjel nélküli hosszú másodperc = ezredmásodperc / 1000; előjel nélküli hosszú perc = másodperc / 60; előjel nélküli int óra = perc / 60; előjel nélküli int nap = óra / 24; másodperc -= perc * 60; perc -= óra * 60; óra -= nap * 24; sprintf (uptimeStr, "%d nap%2.2d:%2.2d:%2.2d", (bájt) nap, (bájt) óra, (bájt) perc, (bájt) másodperc); return String (uptimeStr); }
A függvény egy ilyen karakterláncot ad ki 5 nap 10:23:14 helyett egy furcsa nagy szám helyett.
7. lépés: A projekt indítása és hibakeresése
A létrehozott kód összeállítása és a NodeMCU -ba való felvillantása után az eszköz csatlakozik egy felhőszolgáltatáshoz, és megkezdi az adatok küldését.
Növelheti a naplózási szóhasználatot, ha a CLOUD4RPI_DEBUG előfeldolgozó változót 1 -re állítja (a -D CLOUD4RPI_DEBUG = 1 értéket adja hozzá a build_flags szakaszhoz a platform.io fájlban).
Ezután nyissa meg a cloud4rpi.io webhelyet, és vegye észre az új eszközt online. Nyissa meg, hogy megtekinthesse az eszköztől kapott összes változó értéket: érzékelőt és diagnosztikát.
8. lépés: A műszerfal konfigurálása
Ebben a lépésben működik a felhőhöz való adatkapcsolat. Most konfiguráljuk az adatok vizuális megjelenítését.
A Dashboard konfigurációs felhasználói felületét használtam a következő műszerfal létrehozásához.
A műszerfal megosztható, így azonnal megosztom a barátommal.
9. lépés: Következtetés
A projekt teljes kódja megtalálható a lényegben.
Ez minden most!
Kérdéseket és javaslatokat várunk a megjegyzésekben.
Ajánlott:
A Raspberry Pi csatlakoztatása a felhőhöz a Node.js használatával: 7 lépés
A Raspberry Pi csatlakoztatása a felhőhöz a Node.js használatával: Ez az oktatóanyag mindenki számára hasznos, aki Raspberry Pi -t szeretne csatlakoztatni a felhőhöz, különösen az AskSensors IoT platformhoz, a Node.js használatával. Nincs Raspberry Pi? Ha jelenleg nem rendelkezik Raspberry Pi -vel, javaslom, hogy szerezzen be egy Raspberry -t
Hőmérséklet- és páratartalom -érzékelő (DHT22) Dexter -táblával: 7 lépés
Hőmérséklet- és páratartalom -érzékelő (DHT22) Dexter -táblával: A Dexter -tábla egy oktató -oktató készlet, amely szórakoztatóvá és egyszerűvé teszi az elektronika tanulását. A tábla összegyűjti az összes szükséges alkatrészt, amelyre egy kezdőnek szüksége van ahhoz, hogy egy ötletet sikeres prototípusra változtasson. Az Arduino -val a szívében hatalmas számú
Az Arduino WiFi csatlakoztatása a felhőhöz az ESP8266 használatával: 7 lépés
Az Arduino WiFi csatlakoztatása a felhőhöz az ESP8266 használatával: Ebben az oktatóanyagban elmagyarázzuk, hogyan csatlakoztathatja Arduino -ját az IoT -felhőhöz WiFi -n keresztül. Az Arduino és az ESP8266 WiFi modulból álló beállítást IoT -dologként konfiguráljuk, és készen állunk kommunikálni az AskSensors felhővel.L
Az IoT alapjai: Az IoT csatlakoztatása a felhőhöz Mongoose OS használatával: 5 lépés
Az IoT alapjai: Az IoT csatlakoztatása a felhőhöz Mongoose operációs rendszer használatával: Ha olyan ember vagy, aki a barkácsolás és az elektronika iránt érdeklődik, akkor gyakrabban találkozhat a dolgok internete kifejezéssel, amelyet általában IoT -ként rövidítenek. eszközkészletre vonatkozik, amely képes csatlakozni az internethez! Ilyen embernek lenni
Flappy Bird játékot játszani az M5stack Esp32 alapú M5stick C fejlesztői táblával: 5 lépés
Flappy Bird Game játék az M5stack Esp32 alapú M5stick C fejlesztési táblájával: Sziasztok srácok, ma megtanuljuk, hogyan kell feltölteni a flappy bird game kódot az m5stack által biztosított m5stick c fejlesztőlapra. Ehhez a kis projekthez két dologra lesz szüksége: m5stick-c fejlesztési tábla: https://www.utsource.net/itm/p/8663561.h