Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Temperaturni senzor DS18B20
- Korak 3: Spajanje senzora na NodeMCU
- Korak 4: Instaliranje odgovarajućih biblioteka
- 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 izmjena: 2024-01-30 08:08
Prije nekoliko tjedana ovdje sam objavio vodič o praćenju temperature pomoću DS18B20, digitalnog senzora koji komunicira preko 1-žične sabirnice, šaljući podatke putem interneta s NodeMCU-om i Blynkom:
IoT Made Simple: praćenje temperature bilo gdje
Ali 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širićemo ono što je razvijeno na poslednjem vodiču, nadgledajući sada dva senzora DS18B20, konfigurisana jedan u Celzijusima, a drugi u Fahrenheitu. Podaci će biti poslani u aplikaciju Blynk, kao što je prikazano na gornjoj blok shemi.
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 senzor DS18B20
U ovom ćemo vodiču koristiti vodonepropusnu verziju senzora DS18B20. Vrlo je korisno za daljinsku temperaturu u vlažnim uvjetima, na primjer na vlažnom tlu. Senzor je izoliran i može mjeriti do 125oC (Adafrut ne preporučuje upotrebu preko 100oC zbog kabla od PVC omotača).
DS18B20 je digitalni senzor što ga čini dobrim za upotrebu čak i na velikim udaljenostima! Ovi 1-žični digitalni temperaturni senzori su prilično precizni (± 0,5 ° C u velikom dijelu raspona) i mogu dati do 12 bita preciznosti sa ugrađenog digitalno-analognog pretvarača. Odlično rade s NodeMCU-om koristeći jedan digitalni pin, a možete čak i povezati više njih na isti pin, svaki ima jedinstveni 64-bitni ID koji je tvornički ugrađen da ih razlikuje.
Senzor radi od 3.0 do 5.0V, što znači da se može napajati direktno s jednog od 3.3V NodeMCU pinova.
Senzor ima 3 žice:
- Crna: GND
- Crvena: 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 pločici kao što je prikazano na gornjoj fotografiji. Koristio sam posebne konektore za bolje pričvršćivanje kabla 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 biblioteka
Za ispravnu upotrebu DS18B20 bit će potrebne dvije biblioteke:
- OneWire
- DallasTemperature
Instalirajte obje biblioteke u svoje spremište Arduino IDE biblioteke.
Imajte na umu da biblioteka OneWire MORA biti posebna, modificirana za upotrebu s ESP8266, u protivnom ćete dobiti grešku tokom kompajliranja. Posljednju verziju ćete pronaći na gornjoj poveznici.
Korak 5: Testiranje senzora
Za testiranje senzora, preuzmite datoteku ispod sa mog GitHub -a:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*Test više temperaturnih šaljivača**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; float 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 Fahrenheit 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žnije linije:
temp_0 = DS18B20.getTempCByIndex (0); // Senzor 0 će snimiti Temp u Celzijusima
temp_1 = DS18B20.getTempFByIndex (1); // Senzor 0 će snimiti Temp u Fahrenheitu
Prvi će vratiti vrijednost iz senzora [0] (pogledajte "indeks (0)") u Celzijusu (pogledajte dio koda: "getTempC". Drugi red je povezan sa senzorom [1] i vratit će podatke u Fahrenheitu. Ovdje možete imati "n" senzore jer 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 izgraditi i povijesni depozit.
Slijedite korake u nastavku:
- Kreirajte novi projekat.
- 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 postavljanje cijelog koda na vaš Arduino IDE. Možete ga nabaviti ovdje:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
Promijenite "lažne podatke" vlastitim vjerodajnicama.
/ * Blynk akreditivi */
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. Obratite pažnju na posljednja 2 reda koda. Oni su ovde 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 Multiple Temperature Monitor with Blynk * Blynk biblioteka je licencirana 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 Senzor 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 će snimiti Temp u 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); // 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 raditi i kako je prikazano na gornjem ekranu za štampanje sa mog iPhone -a.
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 sa juga svijeta!
Vidimo se na mom sljedećem uputstvu!
Hvala ti, Marcelo
Preporučuje se:
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 instrumenata ESP8266: 1 Povežite se na WIFI usmjerivač. Ovaj dio ima za cilj pokazati vam kako poslati podatke senzora jednoj od popularnih besplatnih IoT usluga u oblaku 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 takmičenje Growing Beyond Earth, Maker, predano putem Instructables. Nisam mogao biti više uzbuđen što dizajniram za proizvodnju svemirskih biljaka i objavljujem svoj prvi Instructable. Za početak, takmičenje nas je zamolilo da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje višestrukih štitova motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način kako izgraditi uređaj koji prevodi senzorni unos u vibracione stimulanse. Ti vibracijski stimulansi su p
IoT sistem za nadgledanje postrojenja (sa IBM IoT platformom): 11 koraka (sa slikama)
IoT sistem za nadgledanje postrojenja (sa IBM IoT platformom): PregledSistem za nadgledanje postrojenja (PMS) je aplikacija napravljena sa pojedincima koji su u radničkoj klasi sa zelenim palcem na umu. Danas su zaposleni pojedinci zaposleniji nego ikad prije; napredovanje u karijeri i upravljanje finansijama
Nadgledanje vrijednosti vašeg senzora uživo sa bilo kojeg mjesta na svijetu: 4 koraka
Nadgledanje vrijednosti vašeg senzora uživo s bilo kojeg mjesta u svijetu: Dobio sam poruku o broju WhatsApp -a tehnologije u vezi pomoći za izradu jednog projekta. Projekt je trebao mjeriti pritisak na senzor pritiska i prikazati ga na pametnom telefonu. Pa sam pomogao u izradi tog projekta i odlučio da napravim tutora