Tartalomjegyzék:

Az IoT egyszerű: Több érzékelő felügyelete: 7 lépés
Az IoT egyszerű: Több érzékelő felügyelete: 7 lépés

Videó: Az IoT egyszerű: Több érzékelő felügyelete: 7 lépés

Videó: Az IoT egyszerű: Több érzékelő felügyelete: 7 lépés
Videó: Home Assistant - первые настройки, File Editor, Maria DB, HACS - октябрь 2023 2024, Július
Anonim
Az IoT egyszerű: Több érzékelő felügyelete
Az IoT egyszerű: Több érzékelő felügyelete
Az IoT egyszerű: Több érzékelő felügyelete
Az IoT egyszerű: Több érzékelő felügyelete

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ő

DS18B20 hőmérséklet érzékelő
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

Az érzékelők csatlakoztatása a NodeMCU -hoz
Az érzékelők csatlakoztatása a NodeMCU -hoz
  1. 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.
  2. 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
  3. 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:

  1. OneWire
  2. 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ése
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

A Blynk használata
A Blynk használata
A Blynk használata
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:

  1. Hozzon létre egy új projektet.
  2. Adjon nevet (az én esetemben "Dual Temperature Monitor")
  3. Válassza az Új eszköz - ESP8266 (WiFi) lehetőséget "Saját eszközök" néven
  4. Másolja ki a kódban használandó AUTH TOKEN -t (elküldheti e -mail címére).
  5. 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
  6. Tartalmaz egy "History Graph" widgetet, amely a V10 -et és a V11 -et virtuális csapként határozza meg
  7. 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

Következteté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: