INHOUDSOPGAWE:

IoT eenvoudig gemaak: monitering van verskeie sensors: 7 stappe
IoT eenvoudig gemaak: monitering van verskeie sensors: 7 stappe

Video: IoT eenvoudig gemaak: monitering van verskeie sensors: 7 stappe

Video: IoT eenvoudig gemaak: monitering van verskeie sensors: 7 stappe
Video: Winson WCS1800 WCS2750 WCS1500 Hall Effect Current Sensor with dispaly with over current protection 2024, Julie
Anonim
IoT eenvoudig gemaak: monitering van verskeie sensors
IoT eenvoudig gemaak: monitering van verskeie sensors
IoT eenvoudig gemaak: monitering van verskeie sensors
IoT eenvoudig gemaak: monitering van verskeie sensors

'N Paar weke gelede het ek hier 'n handleiding gepubliseer oor die monitering van temperatuur met behulp van 'n DS18B20, 'n digitale sensor wat via 'n 1-draads bus kommunikeer, en data via die internet stuur met NodeMCU en Blynk:

IoT eenvoudig gemaak: monitering van temperatuur oral

Maar wat ons gemis het tydens die verkenning, was een van die groot voordele van hierdie soort sensor, wat die moontlikheid is om veelvuldige data te versamel, van verskeie sensors wat aan dieselfde 1-draadbus gekoppel is. En nou is dit tyd om dit ook te ondersoek.

Ons sal dit wat op die laaste tutoriaal ontwikkel is, uitbrei en nou twee DS18B20 -sensors monitor, die een in Celcius en die ander in Fahrenheit. Die data sal na 'n Blynk -app gestuur word, soos getoon in die blokdiagram hierbo.

Stap 1: Materiaalbewys

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 Temperatuursensor
  • Weerstand 4.7K ohm
  • Broodbord
  • Bedrading

(*) Enige tipe ESP -toestel kan hier gebruik word. Die algemeenste is die NodeMCU V2 of V3. Albei werk altyd goed.

Stap 2: DS18B20 Temperatuursensor

DS18B20 Temperatuursensor
DS18B20 Temperatuursensor

Ons sal in hierdie tutoriaal 'n waterdigte weergawe van die DS18B20 -sensor gebruik. Dit is baie handig vir afgeleë temperatuur in nat toestande, byvoorbeeld op 'n vogtige grond. Die sensor is geïsoleerd en kan metings neem tot 125oC (Adafrut beveel nie aan om dit meer as 100oC te gebruik nie as gevolg van die kabel -PVC -omhulsel).

Die DS18B20 is 'n digitale sensor wat dit goed maak om selfs oor lang afstande te gebruik! Hierdie 1-draads digitale temperatuursensors is redelik presies (± 0,5 ° C oor 'n groot deel van die reeks) en kan tot 12 stukkies presisie van die ingeboude digitaal-na-analoog-omskakelaar gee. Hulle werk uitstekend met die NodeMCU met behulp van 'n enkele digitale pen, en u kan selfs verskeie aan dieselfde pen koppel; elkeen het 'n unieke 64-bis-ID wat by die fabriek ingebrand is om dit te onderskei.

Die sensor werk van 3.0 tot 5.0V, wat beteken dat dit direk vanaf een van die 3.3V NodeMCU -penne kan werk.

Die sensor het 3 drade:

  • Swart: GND
  • Rooi: VCC
  • Geel: 1-draad data

Hier vind u die volledige data: DS18B20 -datablad

Stap 3: Koppel die sensors aan NodeMCU

Koppel die sensors aan NodeMCU
Koppel die sensors aan NodeMCU
  1. Koppel die 3 drade van elke sensor op die mini -broodbord soos op die foto hierbo getoon. Ek het spesiale verbindings gebruik om die sensor se kabel beter daaraan vas te maak.
  2. Let daarop dat beide sensors parallel is. As u meer as 2 sensors het, moet u dieselfde doen.

    • Rooi ==> 3.3V
    • Swart ==> GND
    • Geel ==> D4
  3. Gebruik 'n weerstand van 4.7K ohm tussen VCC (3.3V) en Data (D4)

Stap 4: Die installering van die toepaslike biblioteke

Om die DS18B20 behoorlik te gebruik, is twee biblioteke nodig:

  1. OneWire
  2. Dallas temperatuur

Installeer albei biblioteke in u Arduino IDE -biblioteek.

Let daarop dat die OneWire -biblioteek die spesiale een moet wees wat aangepas is om saam met ESP8266 gebruik te word, anders kry u 'n fout tydens die opstel. U vind die laaste weergawe op die skakel hierbo.

Stap 5: Toets die sensors

Toets die sensors
Toets die sensors

Laai die onderstaande lêer van my GitHub af om die sensors te toets:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Meervoudige temperatuur sender -toets**2 x OneWire -sensor: DS18B20*gekoppel aan NodeMCU D4 (of Arduino Pin 2)**Ontwikkel deur Marcelo Rovai - 25 Augustus 2017 **************** **********************************************/ #insluit # sluit #define ONE_WIRE_BUS 2 // DS18B20 in op NodeMCU -pen D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); ongeldige opstelling () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Toets van dubbele sensor data"); } leemte lus () {float temp_0; vlot temp_1; DS18B20.versoekTemperature (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal Temp vang in Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 sal Temp opneem in Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); vertraging (1000); }

As ons na die kode hierbo kyk, moet ons opmerk dat die belangrikste reëls die volgende is:

temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal die temperatuur in Celcius opneem

temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 neem Temp in Fahrenheit vas

Die eerste een gee 'n waarde van Sensor [0] (kyk na die "indeks (0)") in Celcius terug (kyk na die gedeelte van die kode: "getTempC". Die tweede reël hou verband met Sensor [1] en sal data terugstuur in Fahrenheit. U kan hier 'n 'sensors hê, aangesien u 'n ander' indeks 'vir elkeen het.

Laai nou die kode in u NodeMCU op en monitor die temperatuur met behulp van die Serial Monitor.

Bogenoemde foto toon die verwagte resultaat. Hou elkeen van die sensors in u hand; u moet die temperatuur sien styg.

Stap 6: Gebruik Blynk

Gebruik Blynk
Gebruik Blynk
Gebruik Blynk
Gebruik Blynk

As u eers temperatuurdata begin opneem, is dit tyd om dit oral te sien. Ons doen dit met behulp van Blynk. Alle vasgelegde data word dus intyds op u mobiele toestel vertoon, en ons bou ook 'n historiese bewaarplek daarvoor.

Volg die onderstaande stappe:

  1. Skep 'n nuwe projek.
  2. Gee dit 'n naam (in my geval 'Dual Temperature Monitor')
  3. Kies 'n nuwe toestel - ESP8266 (WiFi) as 'My toestelle'
  4. Kopieer die AUTH TOKEN wat in die kode gebruik moet word (u kan dit na u e -pos stuur).
  5. Bevat twee "Gauge" widgets, wat definieer:

    • Virtuele pen wat met elke sensor gebruik moet word: V10 (Sensor [0]) en V11 (Sensor [1])
    • Die temperatuurreeks: -5 tot 100 oC vir sensor [0]
    • Die temperatuurreeks: 25 tot 212 oC vir sensor [1]
    • Die frekwensie om data te lees: 1 sekonde
  6. Bevat 'n widget "History Graph" wat V10 en V11 definieer as virtuele penne
  7. Druk "Speel" (die driehoek in die regter boonste hoek)

Die Blynk -app sal u natuurlik laat weet dat die NodeMCU vanlyn is. Dit is tyd om die volledige kode na u Arduino IDE op te laai. U kan dit hier kry:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Verander die "dummy data" met u eie geloofsbriewe.

/ * Blynk geloofsbriewe */

char auth = "U BLYNK AUTH CODE HIER"; / * WiFi geloofsbriewe */ char ssid = "U SSID"; char pass = "U WAGwoord";

En dit is dit!

Lees die volledige kode. Dit is basies die vorige kode, waar ons met Blynk -parameters en spesifieke funksies ingevoer het. Let op die twee laaste reëls van die kode. Dit is die belangrikste hier. As u meer sensors het wat data versamel, moet u ook dieselfde lyne hê as dié (met relevante nuwe virtuele penne gedefinieer).

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

* IoT meervoudige temperatuurmonitor met Blynk * Blynk -biblioteek is gelisensieer onder MIT -lisensie * Hierdie voorbeeldkode is in die openbare domein. **Veelvuldige OneWire -sensor: DS18B20*Ontwikkel deur Marcelo Rovai - 25 Augustus 2017 ********************************** ***************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // Comment this out to deaktiveer afdrukke en bespaar ruimte / * Blynk geloofsbriewe * / char auth = "U BLYNK AUTH CODE HIER"; / * WiFi geloofsbriewe */ char ssid = "U SSID"; char pass = "U WAGwoord"; / * TIMER */ #sluit SimpleTimer -timer in; / * DS18B20 Temperatuursensor */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 op arduino pin2 stem ooreen met D4 op fisiese bord OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; ongeldige opstelling () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Toets van dubbele sensor data"); } leemte -lus () {timer.run (); // Begin SimpleTimer Blynk.run (); } /************************************************ ****Stuur sensor data na Blynk ***************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 sal Temp vang in Celcius temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 sal Temp opneem in 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); // virtuele pen V10 Blynk.virtualWrite (11, temp_1); // virtuele pen V11}

As die kode opgelaai en uitgevoer is, kyk na die Blynk -app. Dit behoort nou ook te werk soos aangedui op die boonste druk van my iPhone.

Stap 7: Gevolgtrekking

Afsluiting
Afsluiting

Soos altyd, hoop ek dat hierdie projek ander kan help om hul weg te vind in die opwindende wêreld van elektronika, robotika en IoT!

Besoek my GitHub vir opgedateerde lêers: NodeMCU Dual Temp Monitor

Besoek my blog vir meer projekte: MJRoBot.org

Groete uit die suide van die wêreld!

Sien jou by my volgende instruksies!

Dankie, Marcelo

Aanbeveel: