Sisällysluettelo:

IoT tehty yksinkertaiseksi: Useiden anturien valvonta: 7 vaihetta
IoT tehty yksinkertaiseksi: Useiden anturien valvonta: 7 vaihetta

Video: IoT tehty yksinkertaiseksi: Useiden anturien valvonta: 7 vaihetta

Video: IoT tehty yksinkertaiseksi: Useiden anturien valvonta: 7 vaihetta
Video: 40 hyödyllistä Aliexpressin autotuotetta, jotka ovat sinulle hyödyllisiä 2024, Heinäkuu
Anonim
IoT Made Simple: Useiden anturien valvonta
IoT Made Simple: Useiden anturien valvonta
IoT Made Simple: Useiden anturien valvonta
IoT Made Simple: Useiden anturien valvonta

Muutama viikko sitten julkaisin täällä opetusohjelman lämpötilan seurannasta käyttämällä DS18B20-digitaalitunnistinta, joka kommunikoi 1-johdinväylän kautta ja lähettää tietoja Internetin kautta NodeMCU: n ja Blynkin kanssa:

IoT tehty helpoksi: Lämpötilan valvonta missä tahansa

Mutta mitä jäimme tutkimatta, oli yksi tällaisen anturin suurista eduista, joka on mahdollisuus kerätä useita tietoja useista antureista, jotka on kytketty samaan 1-johdinväylään. Ja nyt on aika tutkia sitä myös.

Laajennamme edellisessä opetusohjelmassa kehitettyjä toimintoja ja seuraamme nyt kahta DS18B20 -anturia, jotka on konfiguroitu yhdeksi celsiusasteeksi ja toinen fahrenheit -asteiseksi. Tiedot lähetetään Blynk -sovellukseen yllä olevan lohkokaavion mukaisesti.

Vaihe 1: Materiaalilasku

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 lämpötila -anturi
  • Vastus 4,7 K ohmia
  • Leipälauta
  • Johdotus

(*) Tässä voidaan käyttää mitä tahansa ESP -laitetta. Yleisimmät ovat NodeMCU V2 tai V3. Molemmat toimivat aina hyvin.

Vaihe 2: DS18B20 -lämpötila -anturi

DS18B20 lämpötila -anturi
DS18B20 lämpötila -anturi

Käytämme tässä opetusohjelmassa vedenpitävää versiota DS18B20 -anturista. Se on erittäin hyödyllinen kauko -lämpötiloissa märissä olosuhteissa, esimerkiksi kosteassa maaperässä. Anturi on eristetty ja voi mitata 125 oC asti (Adafrut ei suosittele sen käyttöä yli 100 oC: n kaapeli -PVC -vaipan vuoksi).

DS18B20 on digitaalinen anturi, joka tekee siitä hyväksi käyttää pitkiäkin matkoja! Nämä 1-johtiminen digitaalinen lämpötila-anturi on melko tarkka (± 0,5 ° C suurella alueella) ja voi antaa jopa 12 bitin tarkkuuden sisäisestä digitaali-analogimuuntimesta. Ne toimivat loistavasti NodeMCU: n kanssa yhdellä digitaalisella nastalla, ja voit jopa liittää useita saman nastaan, jokaisella on ainutlaatuinen 64-bittinen tunnus, joka on poltettu tehtaalla niiden erottamiseksi.

Anturi toimii 3,0 - 5,0 V, mikä tarkoittaa, että sitä voidaan käyttää suoraan yhdestä 3,3 V: n NodeMCU -nastasta.

Anturissa on 3 johtoa:

  • Musta: GND
  • Punainen: VCC
  • Keltainen: 1-johtiminen data

Täältä löydät kaikki tiedot: DS18B20 tuotetiedot

Vaihe 3: Anturien liittäminen NodeMCU -laitteeseen

Anturien liittäminen NodeMCU -laitteeseen
Anturien liittäminen NodeMCU -laitteeseen
  1. Liitä 3 johtoa kustakin anturista mini -leipälevyllä yllä olevan kuvan mukaisesti. Käytin erityisiä liittimiä anturin kaapelin kiinnittämiseksi paremmin.
  2. Huomaa, että molemmat anturit ovat rinnakkain. Jos sinulla on enemmän kuin kaksi anturia, sinun tulee tehdä sama.

    • Punainen ==> 3.3V
    • Musta ==> GND
    • Keltainen ==> D4
  3. Käytä 4,7 K ohmin vastusta VCC (3,3 V) ja Data (D4) välillä

Vaihe 4: Asennettujen kirjastojen asennus

DS18B20: n asianmukainen käyttö edellyttää kahta kirjastoa:

  1. OneWire
  2. Dallas Lämpötila

Asenna molemmat kirjastot Arduino IDE Library -varastoon.

Huomaa, että OneWire -kirjaston PITÄÄ olla erityinen, muutettu käytettäväksi ESP8266: n kanssa, muuten saat virheen kääntämisen aikana. Löydät viimeisen version yllä olevasta linkistä.

Vaihe 5: Anturien testaus

Anturien testaus
Anturien testaus

Testaa antureita lataamalla alla oleva tiedosto GitHubista:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

*Useiden lämpötilojen lähetintesti**2 x OneWire -anturi: DS18B20*Yhdistetty NodeMCU D4: ään (tai Arduino Pin 2: een)**Kehittäjä: Marcelo Rovai - 25. elokuuta 2017 **************** **********************************************/ #sisältää # include #define ONE_WIRE_BUS 2 // DS18B20 NodeMCU -nastassa D4 OneWire oneWire (ONE_WIRE_BUS); DallasLämpötila DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Kahden anturin tietojen testaus"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Anturi 0 tallentaa lämpötilan celsiusasteina temp_1 = DS18B20.getTempFByIndex (1); // Anturi 0 tallentaa lämpötilan Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); viive (1000); }

Kun katsomme yllä olevaa koodia, meidän on huomattava, että tärkeimmät rivit ovat:

temp_0 = DS18B20.getTempCByIndex (0); // Anturi 0 tallentaa lämpötilan celsiusasteina

temp_1 = DS18B20.getTempFByIndex (1); // Anturi 0 tallentaa lämpötilan Fahrenheit -asteina

Ensimmäinen palauttaa arvon anturista [0] (katso "indeksi (0)") celsiusasteina (katso koodin osa: "getTempC". Toinen rivi liittyy anturiin [1] ja palauttaa tietoja Sinulla voi olla tässä "n" anturia, koska sinulla on eri "indeksi" kullekin niistä.

Lataa nyt koodi NodeMCU -laitteeseesi ja seuraa lämpötilaa sarjamittarin avulla.

Yllä oleva kuva näyttää odotetun tuloksen. Pidä jokaista anturia kädessäsi, sinun pitäisi nähdä lämpötila nousevan.

Vaihe 6: Blynkin käyttö

Blynkin käyttö
Blynkin käyttö
Blynkin käyttö
Blynkin käyttö

Kun aloitat lämpötilatietojen tallentamisen, on aika nähdä ne mistä tahansa. Teemme tämän käyttämällä Blynkia. Joten kaikki kaapatut tiedot näytetään reaaliajassa mobiililaitteellasi, ja myös rakennamme sille historiallisen säilytyspaikan.

Noudata seuraavia ohjeita:

  1. Luo uusi projekti.
  2. Anna sille nimi (minun tapauksessani "Dual Temperature Monitor")
  3. Valitse Uusi laite - ESP8266 (WiFi) "Omat laitteet"
  4. Kopioi AUTH TOKEN käytettäväksi koodissa (voit lähettää sen sähköpostiisi).
  5. Sisältää kaksi "Mittari" -widgettiä, jotka määrittävät:

    • Virtuaalinen nasta, jota käytetään jokaisen anturin kanssa: V10 (anturi [0]) ja V11 (anturi [1])
    • Lämpötila -alue: -5 -100 oC anturille [0]
    • Lämpötila -alue: 25 - 212 oC anturille [1]
    • Tietojen lukutaajuus: 1 sekunti
  6. Sisältää "Historiakaavio" -widgetin, joka määrittelee V10- ja V11 -virtuaaliset nastat
  7. Paina "Toista" (kolmio oikeassa yläkulmassa)

Tietenkin Blynk -sovellus ilmoittaa sinulle, että NodeMCU on offline -tilassa. On aika ladata koko koodi Arduino IDE -laitteeseesi. Saat sen täältä:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Muuta "nuketiedot" omilla kirjautumistiedoillasi.

/ * Blynk -valtakirja */

char auth = "SINUN BLYNK -TODISTUSKOODI TÄSTÄ"; / * WiFi -tunnistetiedot */ char ssid = "OMA SSID"; char pass = "SALASANASI";

Ja siinä se!

Katso koko koodi. Se on pohjimmiltaan edellinen koodi, johon kirjoitimme Blynk -parametreilla ja erityistoiminnoilla. Huomaa koodin 2 viimeistä riviä. Ne ovat tässä tärkeimmät. Jos sinulla on enemmän antureita keräämässä dataa, sinulla pitäisi olla myös vastaavat uudet rivit kuin ne (ja asiaankuuluvat uudet virtuaaliset nastat määritetty).

/**************************************************************

* IoT -monilämpötilamittari ja Blynk * Blynk -kirjasto on lisensoitu MIT -lisenssillä * Tämä esimerkkikoodi on julkinen. **Useita OneWire -anturia: DS18B20*Kehittäjä: Marcelo Rovai - 25. elokuuta 2017 ********************************* ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Kommentoi tämä poista tulosteet käytöstä ja säästä tilaa / * Blynk -tunnistetiedot * / char auth = "SINUN BLYNK -TODISTUSKOODI TÄSTÄ"; / * WiFi -tunnistetiedot */ char ssid = "OMA SSID"; char pass = "SALASANASI"; / * AJASTIN */ #sisältää SimpleTimer -ajastimen; / * DS18B20 -lämpötila -anturi */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 arduino pin2 -laitteessa vastaa D4 -korttia OneWire oneWire -laitteella (ONE_WIRE_BUS); DallasLämpötila 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 ("Kahden anturin tietojen testaus"); } void loop () {timer.run (); // Käynnistää SimpleTimer Blynk.run (); } /*********************************************** ****Lähetä anturitiedot Blynkille ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Anturi 0 tallentaa lämpötilan celsiusasteina temp_1 = DS18B20.getTempFByIndex (1); // Anturi 0 tallentaa lämpötilan 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); // virtuaalinen pin V10 Blynk.virtualWrite (11, temp_1); // virtuaalinen pin V11}

Kun koodi on ladattu ja käynnissä, tarkista Blynk -sovellus. Sen pitäisi nyt toimia myös iPhonen yllä olevan tulostusnäytön mukaisesti.

Vaihe 7: Johtopäätös

Johtopäätös
Johtopäätös

Kuten aina, toivon, että tämä projekti voi auttaa muita löytämään tiensä elektroniikan, robotiikan ja esineiden internetin jännittävään maailmaan!

Käy GitHubissa saadaksesi päivitetyt tiedostot: NodeMCU Dual Temp Monitor

Lisää projekteja löydät blogistani: MJRoBot.org

Terveisiä etelästä maailmasta!

Nähdään seuraavassa ohjeessani!

Kiitos, Marcelo

Suositeltava: