Tartalomjegyzék:
- 1. lépés: Anyagjegyzék
- 2. lépés: DS18B20 hőmérséklet -érzékelő
- 3. lépés: Az érzékelők csatlakoztatása a NodeMCU -hoz
- 4. lépés: A kiosztott könyvtárak telepítése
- 5. lépés: Az érzékelők tesztelése
- 6. lépés: A Blynk használata
- 7. lépés: Következtetés
Videó: Az IoT egyszerű: Több érzékelő felügyelete: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Néhány héttel ezelőtt közzétettem itt egy oktatóanyagot a hőmérséklet felügyeletéről a DS18B20, egy digitális érzékelő segítségével, amely 1 vezetékes buszon keresztül kommunikál, és adatokat küld az interneten a NodeMCU és a Blynk segítségével:
Az IoT leegyszerűsítve: A hőmérséklet figyelése bárhol
De amit hiányoltunk a felfedezés során, az volt az egyik nagy előnye az ilyen típusú érzékelőknek, hogy több adatot gyűjthetünk, több, ugyanabba az 1 vezetékes buszhoz csatlakoztatott érzékelőből. És most itt az ideje annak felfedezésére is.
Bővíteni fogjuk az utolsó oktatóanyagon kifejlesztetteket, most két DS18B20 érzékelőt figyelünk, az egyiket Celsius -fokban, a másikat Fahrenheit -ben konfigurálva. Az adatokat elküldi a Blynk App, a fenti tömbvázlat szerint.
1. lépés: Anyagjegyzék
- Csomópont: MCU ESP 12-E (*)
- 2 X DS18B20 hőmérséklet -érzékelő
- Ellenállás 4,7K Ohm
- BreadBoard
- Vezeték
(*) Itt bármilyen típusú ESP eszköz használható. A leggyakoribbak a NodeMCU V2 vagy V3. Mindkettő mindig jól fog működni.
2. lépés: DS18B20 hőmérséklet -érzékelő
Ebben az oktatóanyagban a DS18B20 érzékelő vízálló változatát fogjuk használni. Nagyon hasznos távoli hőmérsékleten nedves körülmények között, például nedves talajon. Az érzékelő elszigetelt, és 125oC -ig végezhet méréseket (az Adafrut nem javasolja 100oC feletti hőmérsékleten történő használatát a kábel PVC burkolata miatt).
A DS18B20 egy digitális érzékelő, ami jóvá teszi használatát még nagy távolságokon is! Ezek az 1 vezetékes digitális hőmérséklet-érzékelők meglehetősen pontosak (± 0,5 ° C a tartomány nagy részén), és akár 12 bit pontosságot tudnak nyújtani a fedélzeti digitális-analóg átalakítóval. Kiválóan működnek a NodeMCU-val egyetlen digitális tű használatával, és akár több is csatlakoztatható ugyanahhoz a tűhöz, mindegyik egyedi 64 bites azonosítóval rendelkezik a gyárban, hogy megkülönböztesse őket.
Az érzékelő 3,0 és 5,0 V között működik, ami azt jelenti, hogy közvetlenül a 3,3 V -os NodeMCU csapokról is táplálható.
Az érzékelőnek 3 vezetéke van:
- Fekete: GND
- Piros: VCC
- Sárga: 1 vezetékes adat
Itt megtalálja a teljes adatot: DS18B20 Adatlap
3. lépés: Az érzékelők csatlakoztatása a NodeMCU -hoz
- Csatlakoztassa a 3 vezetéket minden érzékelőből a mini kenyértáblán, ahogy a fenti képen látható. Speciális csatlakozókat használtam az érzékelő kábel jobb rögzítésére.
-
Vegye figyelembe, hogy mindkét érzékelő párhuzamos. Ha több mint 2 érzékelője van, akkor ugyanezt kell tennie.
- Piros ==> 3.3V
- Fekete ==> GND
- Sárga ==> D4
- Használjon 4,7K ohmos ellenállást a VCC (3,3 V) és az adatok (D4) között
4. lépés: A kiosztott könyvtárak telepítése
A DS18B20 megfelelő használatához két könyvtárra lesz szükség:
- OneWire
- DallasHőmérséklet
Telepítse mindkét könyvtárat az Arduino IDE Library letéteményesébe.
Ne feledje, hogy a OneWire könyvtárnak KELL lennie a különlegesnek, amelyet az ESP8266 -hoz kell használni, különben hiba történik a fordítás során. Az utolsó verziót a fenti linken találja.
5. lépés: Az érzékelők tesztelése
Az érzékelők teszteléséhez töltse le az alábbi fájlt a GitHub -ból:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Többszörös hőmérséklet -érzékelő teszt**2 x OneWire érzékelő: DS18B20*Csatlakoztatva a NodeMCU D4 -hez (vagy Arduino Pin 2 -hez)**Fejlesztő: Marcelo Rovai - 2017. augusztus 25. **************** *********************************************** include #define ONE_WIRE_BUS 2 // DS18B20 a NodeMCU D4 pin -n OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Kettős érzékelő adatok tesztelése"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // A 0 -as érzékelő Celsiusban rögzíti a hőmérsékletet temp_1 = DS18B20.getTempFByIndex (1); // A 0 érzékelő rögzíti a hőmérsékletet Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); késleltetés (1000); }
A fenti kódot tekintve észre kell vennünk, hogy a legfontosabb sorok a következők:
temp_0 = DS18B20.getTempCByIndex (0); // A 0 érzékelő Celsius -fokban rögzíti a hőmérsékletet
temp_1 = DS18B20.getTempFByIndex (1); // A 0 érzékelő rögzíti a hőmérsékletet Fahrenheitben
Az első egy értéket ad vissza a [0] szenzorból (nézze meg az "index (0)") Celsius -ban (nézze meg a kód részét: "getTempC". A második sor az [1] szenzorhoz kapcsolódik, és adatokat ad vissza Itt lehet "n" érzékelő, mivel mindegyikre más az "index".
Töltse fel most a kódot a NodeMCU -ba, és figyelje a hőmérsékletet a Soros monitor segítségével.
A fenti fotó a várt eredményt mutatja. Tartsa mindegyik érzékelőt a kezében, látni kell a hőmérséklet emelkedését.
6. lépés: A Blynk használata
Ha elkezdi rögzíteni a hőmérsékleti adatokat, itt az ideje, hogy bárhonnan megtekintse azokat. Ezt a Blynk segítségével fogjuk megtenni. Tehát az összes rögzített adat valós időben jelenik meg a mobileszközén, és ehhez létre fogunk hozni egy történelmi letéteményest.
Kövesse az alábbi lépéseket:
- Hozzon létre egy új projektet.
- Adjon nevet (az én esetemben "Dual Temperature Monitor")
- Válassza az Új eszköz - ESP8266 (WiFi) lehetőséget "Saját eszközök" néven
- Másolja ki a kódban használandó AUTH TOKEN -t (elküldheti e -mail címére).
-
Két "Mérőeszköz" elemet tartalmaz, amelyek meghatározzák:
- Virtuális csap minden érzékelőhöz: V10 (érzékelő [0]) és V11 (érzékelő [1])
- Hőmérsékleti tartomány: -5 és 100 oC között a [0] érzékelőnél
- Hőmérsékleti tartomány: 25 és 212 oC között az érzékelőnél [1]
- Az adatok olvasásának gyakorisága: 1 másodperc
- Tartalmaz egy "History Graph" widgetet, amely a V10 -et és a V11 -et virtuális csapként határozza meg
- Nyomja meg a "Lejátszás" gombot (a háromszög a jobb felső sarokban)
Természetesen a Blynk App azt fogja mondani, hogy a NodeMCU ki van kapcsolva. Ideje feltölteni a teljes kódot Arduino IDE -jére. Itt kaphatod meg:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Módosítsa a "dummy data" adatait saját hitelesítő adataival.
/ * Blynk hitelesítő adatok */
char auth = "A BLYNK AUTH KÓDJA ITT"; / * WiFi hitelesítő adatok */ char ssid = "AZ SSID"; char pass = "A JELSZÓ";
És ez az!
Fontolja meg a teljes kódot. Ez alapvetően az előző kód, ahová Blynk paraméterekkel és specifikus funkciókkal léptünk be. Vegye figyelembe a kód utolsó 2 sorát. Ezek itt a legfontosabbak. Ha több érzékelője gyűjti az adatokat, akkor azokkal egyenértékű új vonalakkal kell rendelkeznie (a megfelelő új virtuális csapokkal).
/**************************************************************
* Többféle IoT hőmérséklet -figyelő Blynk -el * A Blynk könyvtár MIT licenc alatt van * Ez a példakód közkincs. **Több OneWire érzékelő: DS18B20*Fejlesztette: Marcelo Rovai - 2017. augusztus 25. ********************************* ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Kommentálja ezt tiltsa le a nyomtatást és takarítson meg helyet / * Blynk hitelesítő adatok * / char auth = "A BLYNK AUTH CODE ITT"; / * WiFi hitelesítő adatok */ char ssid = "AZ SSID"; char pass = "A JELSZÓ"; / * TIMER */ #magában foglalja a SimpleTimer időzítőt; / * DS18B20 hőmérséklet -érzékelő */ #include #include #define ONE_WIRE_BUS 2 // A DS18B20 az arduino pin2 -n megfelel a D4 -nek a OneWire oneWire fizikai táblán (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Kettős érzékelő adatok tesztelése"); } void loop () {timer.run (); // A SimpleTimer kezdeményezése Blynk.run (); } /************************************************ ****Az érzékelő adatainak küldése a Blynk -hez ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // A 0 -as érzékelő Celsiusban rögzíti a hőmérsékletet temp_1 = DS18B20.getTempFByIndex (1); // A 0 érzékelő rögzíti a hőmérsékletet Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // virtuális pin V10 Blynk.virtualWrite (11, temp_1); // virtuális pin V11}
A kód feltöltése és futtatása után ellenőrizze a Blynk alkalmazást. Most is futnia kell, amint az a fenti nyomtatási képernyőn látható az iPhone -ról.
7. lépés: Következtetés
Remélem, mint mindig, ez a projekt segít másoknak is eligazodni az elektronika, a robotika és az IoT izgalmas világában!
Kérjük, látogasson el a GitHub webhelyemre a frissített fájlokért: NodeMCU Dual Temp Monitor
További projektekért látogasson el a blogomra: MJRoBot.org
Üdvözlet a világ déli részéről!
Találkozunk a következő tanításomnál!
Köszönöm, Marcelo
Ajánlott:
Több saláta termesztése kevesebb helyen, vagy Saláta termesztése az űrben, (több vagy kevesebb): 10 lépés
Több saláta termesztése kevesebb helyen, vagy … Saláta termesztése az űrben, (több vagy kevesebb) .: Ez egy professzionális benyújtás a Growing Beyond Earth, Maker Contest pályázathoz, amelyet az Instructables -en keresztül nyújtottak be. Nem izgathatnám jobban, hogy űrnövénytermesztésre tervezek, és közzéteszem az első Instructable -t. Kezdésként a verseny arra kért minket, hogy
A gyorsulás felügyelete a Raspberry Pi és az AIS328DQTR használatával Python használatával: 6 lépés
A gyorsulás nyomon követése a Raspberry Pi és az AIS328DQTR használatával Python használatával: A gyorsulás véges, azt hiszem, a fizika egyes törvényei szerint.- Terry Riley A gepárd elképesztő gyorsulást és gyors sebességváltozásokat használ üldözés közben. A leggyorsabb lény a parton időnként kihasználja csúcssebességét a zsákmány elkapására. Az
Több mint 4 motor használata - Több motorpajzs egymásra rakása: 3 lépés
Több mint 4 motor használata - Több motorpajzs egymásra rakása: Utasítható vibrotactile szenzoros helyettesítő és növelő eszköz (https: //www.instructables.com/id/Vibrotactile-Sens …) bemutatja az érzékelést lefordító eszköz felépítésének módját bemenet a vibrációs ingerekbe. Ezek a vibrációs ingerek
Arduino több P.I.R érzékelő vezérlése ugyanazon a vonalon: 3 lépés
Arduino több PIR -érzékelő vezérlése ugyanazon a vonalon: Ma elmondom, hogyan lehet több PIR -érzékelőt egyetlen Arduino Bord -hoz csatlakoztatni, és itt 4 csatornás relé modult is használtam néhány extra funkció érdekében. (VAGY annyit használhat, mint az arduin
Az UAC (felhasználói fiókok felügyelete) letiltása: 5 lépés
Az UAC (felhasználói fiókok felügyelete) letiltása: Elegem van abból, hogy a hülye UAC mindig felbukkan, és azt mondja nekem: " A Windowsnak engedélyre van szüksége a folytatáshoz. &Quot; Tudom, hogy védelmet nyújt a számítógép jogosulatlan megváltoztatása ellen, de úgy érzem, hogy a számítógépem eléggé védett