Sisällysluettelo:
- Vaihe 1: Materiaalilasku
- Vaihe 2: DS18B20 -lämpötila -anturi
- Vaihe 3: Anturien liittäminen NodeMCU -laitteeseen
- Vaihe 4: Asennettujen kirjastojen asennus
- Vaihe 5: Anturien testaus
- Vaihe 6: Blynkin käyttö
- Vaihe 7: Johtopäätös
Video: IoT tehty yksinkertaiseksi: Useiden anturien valvonta: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
- Liitä 3 johtoa kustakin anturista mini -leipälevyllä yllä olevan kuvan mukaisesti. Käytin erityisiä liittimiä anturin kaapelin kiinnittämiseksi paremmin.
-
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
- 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:
- OneWire
- 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
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ö
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:
- Luo uusi projekti.
- Anna sille nimi (minun tapauksessani "Dual Temperature Monitor")
- Valitse Uusi laite - ESP8266 (WiFi) "Omat laitteet"
- Kopioi AUTH TOKEN käytettäväksi koodissa (voit lähettää sen sähköpostiisi).
-
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
- Sisältää "Historiakaavio" -widgetin, joka määrittelee V10- ja V11 -virtuaaliset nastat
- 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
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:
IoT -pohjaisen kotiautomaation tekeminen NodeMCU -anturien ohjausreleellä: 14 vaihetta (kuvilla)
IoT-pohjaisen kotiautomaation tekeminen NodeMCU-anturien ohjausreleellä: Tässä IoT-pohjaisessa projektissa olen tehnyt kotiautomaation Blynk- ja NodeMCU-ohjausrelemoduulilla reaaliaikaisella palautteella. Manuaalisessa tilassa tätä relemoduulia voidaan ohjata matkapuhelimella tai älypuhelimella ja manuaalisella kytkimellä. Automaattitilassa tämä haju
Hangry Angler: Super Lo-Fi -anturien rakentaminen: 7 vaihetta
Hangry Angler: Kuinka rakentaa Super Lo-Fi -anturit: Tämä onkijakala voi aistia, millaista saalista se aikoo syödä! Mutta mitä erityisempää tässä projektissa on, että se on tehty DIY, matalan tarkkuuden antureilla. Käyttämällä yksinkertaisia materiaaleja, kuten pahvia ja piirimaalia, voit luoda oman ultrakustan
Useiden anturien liittäminen yhteen ARDUINO UNO -sarjan porttiin: 4 vaihetta
Useiden anturien liittäminen yhteen ARDUINO UNO -SARJAN PORTTIIN: Tässä opetusohjelmassa laajennamme yhtä Arduino UNO UART (Rx/Tx) -sarjaporttia niin, että voidaan liittää useita Atlas -antureita. Laajennus tehdään käyttämällä 8: 1 -sarjaportin laajennuskorttia. Arduinon portti on liitetty laajennukseen sen jälkeen, kun
Useiden anturien liittäminen RASPBERRY PI -laitteeseen: 6 vaihetta (kuvilla)
Useiden anturien liittäminen vadelmaan PI: Tähän projektiin liitämme kolme Atlas Scientificin EZO -anturia (pH, liuennut happi ja lämpötila) Raspberry Pi 3B+-laitteeseen. Piirien kytkemisen Raspberry Pi: n sijasta käytämme Whitebox Labs Tentacle T3 -suojaa. T
CloudyData - ESP8266 Google Sheetsiin yksinkertaiseksi: 10 vaihetta (kuvilla)
CloudyData - ESP8266 Google Sheetsille yksinkertainen: Olen etsinyt pilvidatan tallentamista pitkään viime vuosina: on mielenkiintoista seurata minkä tahansa anturin tietoja, mutta on mielenkiintoisempaa, jos nämä tiedot ovat saatavilla kaikkialla ilman kaikki tallennusongelmat, kuten SD: n käyttö