Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Temperaturni osjetnik DS18B20
- Korak 3: Spajanje senzora na NodeMCU
- Korak 4: Instaliranje odgovarajućih knjižnica
- Korak 5: Testiranje senzora
- Korak 6: Upotreba Blynka
- Korak 7: Zaključak
Video: IoT Made Simple: Nadgledanje više senzora: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Prije nekoliko tjedana ovdje sam objavio vodič o praćenju temperature pomoću DS18B20, digitalnog senzora koji komunicira putem 1-Wire sabirnice, šaljući podatke putem interneta s NodeMCU-om i Blynkom:
IoT Made Simple: praćenje temperature bilo gdje
No ono što smo propustili u istraživanju bila je jedna od velikih prednosti ove vrste senzora, a to je mogućnost prikupljanja više podataka, s više senzora spojenih na istu 1-žičnu sabirnicu. A sada je vrijeme da to i istražite.
Proširit ćemo ono što je razvijeno u zadnjem vodiču, nadgledajući sada dva senzora DS18B20, konfigurirana jedan u Celzijusu, a drugi u Fahrenheitu. Podaci će biti poslani u aplikaciju Blynk, kao što je prikazano na gornjem blok dijagramu.
Korak 1: Opis materijala
- NodeMCU ESP 12-E (*)
- 2 X DS18B20 Senzor temperature
- Otpornik 4,7K ohma
- BreadBoard
- Ožičenje
(*) Ovdje se može koristiti bilo koja vrsta ESP uređaja. Najčešći su NodeMCU V2 ili V3. Oboje će uvijek dobro funkcionirati.
Korak 2: Temperaturni osjetnik DS18B20
U ovom ćemo vodiču koristiti vodonepropusnu verziju senzora DS18B20. Vrlo je korisno za udaljenu temperaturu u vlažnim uvjetima, na primjer na vlažnom tlu. Senzor je izoliran i može mjeriti do 125 ° C (Adafrut ne preporučuje uporabu na više od 100 ° C zbog PVC omotača od kabela).
DS18B20 je digitalni senzor što ga čini dobrim za uporabu čak i na velikim udaljenostima! Ovi 1-žični digitalni osjetnici temperature prilično su precizni (± 0,5 ° C u velikom dijelu raspona) i mogu dati do 12 bita preciznosti s ugrađenog digitalno-analognog pretvarača. Odlično rade s NodeMCU-om pomoću jednog digitalnog pina, a čak možete povezati i više njih na isti pin, svaki ima tvornički ugrađen jedinstveni 64-bitni ID koji ih razlikuje.
Senzor radi od 3,0 do 5,0 V, što znači da se može napajati izravno s jednog od 3,3 V NodeMCU pina.
Senzor ima 3 žice:
- Crna: GND
- Crveno: VCC
- Žuta: 1-žični podaci
Ovdje možete pronaći potpune podatke: Tehnički list DS18B20
Korak 3: Spajanje senzora na NodeMCU
- Spojite 3 žice sa svakog senzora na mini Breadboard kao što je prikazano na gornjoj fotografiji. Koristio sam posebne konektore za bolje pričvršćivanje kabela senzora na njega.
-
Imajte na umu da su oba senzora paralelna. Ako imate više od 2 senzora, trebali biste učiniti isto.
- Crveno ==> 3.3V
- Crna ==> GND
- Žuta ==> D4
- Koristite otpornik od 4,7K ohma između VCC (3,3 V) i podataka (D4)
Korak 4: Instaliranje odgovarajućih knjižnica
Za ispravnu uporabu DS18B20 bit će potrebne dvije knjižnice:
- OneWire
- DallasTemperature
Instalirajte obje knjižnice u svoje spremište Arduino IDE knjižnice.
Imajte na umu da knjižnica OneWire MORA biti posebna, izmijenjena za upotrebu s ESP8266, inače ćete dobiti pogrešku tijekom kompilacije. Posljednju verziju pronaći ćete na gornjoj poveznici.
Korak 5: Testiranje senzora
Za testiranje senzora, preuzmite donju datoteku s mog GitHub -a:
ČvorMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Test više temperaturnih pošiljatelja**2 x OneWire senzor: DS18B20*Spojen na NodeMCU D4 (ili Arduino pin 2)**Razvio Marcelo Rovai - 25. kolovoza 2017. **************** ********************************************/ #include # uključi #define ONE_WIRE_BUS 2 // DS18B20 na NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Testiranje podataka dvostrukog senzora"); } void loop () {float temp_0; plovak temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 će zabilježiti Temp u Celzijevim temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 će snimiti Temp u Fahrenheitovom Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); kašnjenje (1000); }
Gledajući gornji kod, trebali bismo primijetiti da su najvažniji redovi:
temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 će zabilježiti temperaturu u Celzijusima
temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 će zabilježiti Temp u Fahrenheitu
Prvi će vratiti vrijednost senzora [0] (pogledajte "indeks (0)") u Celzijusu (pogledajte dio koda: "getTempC". Drugi redak je povezan sa senzorom [1] i vratit će podatke u Fahrenheitu. Ovdje možete imati "n" senzore budući da za svaki od njih imate drugačiji "indeks".
Prenesite sada kôd u svoj NodeMCU i pratite temperaturu pomoću serijskog monitora.
Gornja fotografija prikazuje očekivani rezultat. Držite svaki od senzora u ruci, trebali biste vidjeti kako temperatura raste.
Korak 6: Upotreba Blynka
Kad počnete snimati podatke o temperaturi, vrijeme je da ih vidite s bilo kojeg mjesta. To ćemo učiniti koristeći Blynk. Dakle, svi snimljeni podaci bit će prikazani u stvarnom vremenu na vašem mobilnom uređaju, a za to ćemo i izgraditi povijesni depozit.
Slijedite korake u nastavku:
- Izradite novi projekt.
- Dajte mu ime (u mom slučaju "Dvostruki monitor temperature")
- Odaberite Novi uređaj - ESP8266 (WiFi) kao "Moji uređaji"
- Kopirajte AUTH TOKEN koji ćete koristiti u kodu (možete ga poslati na svoju e -poštu).
-
Uključuje dva widgeta "Gauge" koji definiraju:
- Virtualni pin koji će se koristiti sa svakim senzorom: V10 (senzor [0]) i V11 (senzor [1])
- Raspon temperature: -5 do 100 oC za senzor [0]
- Raspon temperature: 25 do 212 oC za senzor [1]
- Učestalost čitanja podataka: 1 sekunda
- Uključuje widget "History Graph" koji definira V10 i V11 kao virtualne pinove
- Pritisnite "Play" (trokut u desnom gornjem kutu)
Naravno, aplikacija Blynk će vas obavijestiti da je NodeMCU isključen. Vrijeme je za prijenos cijelog koda na vaš Arduino IDE. Možete ga nabaviti ovdje:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Promijenite "lažne podatke" vlastitim vjerodajnicama.
/ * Blynk vjerodajnice */
char auth = "VAŠ BLYNK AUTH KOD OVDJE"; / * WiFi vjerodajnice */ char ssid = "VAŠ SSID"; char pass = "VAŠA LOZINKA";
I to je to!
Ispod punog koda. To je u osnovi prethodni kod, u koji smo unijeli Blynkove parametre i određene funkcije. Zabilježite 2 posljednja retka koda. Ovdje su oni najvažniji. Ako imate više senzora koji prikupljaju podatke, trebali biste imati i ekvivalentne nove linije kao one (s definiranim odgovarajućim novim virtualnim pinovima).
/**************************************************************
* IoT višestruki monitor temperature s Blynkom * Blynk knjižnica licencirana je pod MIT licencom * Ovaj primjer koda je u javnoj domeni. **Više senzora za jednu žicu: DS18B20*Razvio Marcelo Rovai - 25. kolovoza 2017. ******************************** ****************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Komentirajte ovo na onemogućite ispise i uštedite prostor / * Blynk vjerodajnice * / char auth = "VAŠ BLYNK AUTH KOD OVDJE"; / * WiFi vjerodajnice */ char ssid = "VAŠ SSID"; char pass = "VAŠA LOZINKA"; / * TIMER */ #include SimpleTimer timer; / * DS18B20 osjetnik temperature */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 na arduino pin2 odgovara D4 na fizičkoj ploči OneWire oneWire (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 ("Testiranje podataka dvostrukog senzora"); } void loop () {timer.run (); // Pokreće SimpleTimer Blynk.run (); } /********************************************** ****Pošaljite podatke senzora Blynku *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 će zabilježiti Temp u Celzijevim temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 snimit će Temp u Fahrenheitovom 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); // virtualni pin V10 Blynk.virtualWrite (11, temp_1); // virtualni pin V11}
Nakon što se kôd učita i pokrene, provjerite aplikaciju Blynk. Sada bi trebao biti pokrenut kako je prikazano na gornjem ekranu za ispis s mog iPhonea.
Korak 7: Zaključak
Kao i uvijek, nadam se da će ovaj projekt pomoći drugima da se snađu u uzbudljivom svijetu elektronike, robotike i IoT -a!
Posjetite moj GitHub za ažurirane datoteke: NodeMCU Dual Temp Monitor
Za više projekata posjetite moj blog: MJRoBot.org
Saludos s juga svijeta!
Vidimo se na sljedećoj instrukciji!
Hvala vam, Marcelo
Preporučeni:
IoT ESP8266 serija: 2- Nadgledanje podataka putem ThingSpeak.com: 5 koraka
IoT ESP8266 serija: 2- Nadgledanje podataka putem ThingSpeak.com: Ovo je drugi dio IoT ESP8266 serije. Da biste vidjeli dio 1, pogledajte ovu IoT seriju ESP8266 s uputama: 1 Povežite se na WIFI usmjerivač. Ovaj dio ima za cilj pokazati vam kako poslati podatke senzora jednoj od popularnih besplatnih usluga oblaka u IoT -u https: //thingspeak.com
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na natječaj Growing Beyond Earth, Maker, predana putem Instructables. Ne mogu biti više uzbuđen što ću dizajnirati za proizvodnju svemirskih usjeva i objaviti svoj prvi Instructable. Za početak, natječaj nas je zamolio da
Više senzora BMP280 u Arduino Uno putem SPI: 6 koraka
Više senzora BMP280 u Arduino Uno putem SPI -a: U ovom ćemo vodiču spojiti tri BMP280 na Arduino Uno putem SPI -a, ali možete povezati do osam BMP280 na Uno -u pomoću digitalnih portova D3 do D10 kao nSS (Slave Select) za svaki senzor. uzoraka atmosferskog tlaka mjerenih B
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje više štitnika motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način izgradnje uređaja koji prevodi senzorni unos u vibracijske podražaje. Ti vibracijski podražaji su p
Nadgledanje vrijednosti vašeg senzora uživo bilo gdje u svijetu: 4 koraka
Praćenje vrijednosti vašeg senzora uživo s bilo kojeg mjesta u svijetu: dobio sam poruku o broju WhatsAppa o tehnologiji u vezi pomoći za izradu jednog projekta. Projekt je trebao mjeriti pritisak na senzor tlaka i prikazati ga na pametnom telefonu. Tako sam pomogao u izradi tog projekta i odlučio napraviti učitelja