Mündəricat:

IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi: 7 Addım
IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi: 7 Addım

Video: IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi: 7 Addım

Video: IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi: 7 Addım
Video: WhatsApp-ın bu hiyləsini bilirsən? 😎 2024, Noyabr
Anonim
IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi
IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi
IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi
IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi

Bir neçə həftə əvvəl, burada NodeMCU və Blynk ilə internet üzərindən məlumat göndərən, 1 telli bir avtobus üzərindən əlaqə quran bir rəqəmsal sensor olan DS18B20 istifadə edərək istiliyin izlənməsi ilə bağlı bir dərslik dərc etdim.

IoT Sadələşdirildi: İstənilən yerdə İstiliyin İzlənməsi

Ancaq kəşfiyyat zamanı qaçırdığımız şey, eyni 1 telli bir avtobusa qoşulmuş birdən çox sensordan birdən çox məlumat toplamaq imkanı olan bu cür sensorun ən böyük üstünlüklərindən biri idi. Və indi onu araşdırmağın vaxtı gəldi.

Son dərsdə inkişaf etdirilənləri genişləndirəcəyik, biri Celcius -da, digəri isə Fahrenheit -də konfiqurasiya edilmiş iki DS18B20 sensoru izləyəcəyik. Məlumatlar yuxarıdakı blok diaqramda göstərildiyi kimi bir Blynk Tətbiqinə göndəriləcək.

Addım 1: Material Bill

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 Temperatur Sensoru
  • Rezistor 4.7K Ohm
  • Çörək lövhəsi
  • Kablolama

(*) İstənilən ESP cihazı burada istifadə edilə bilər. Ən çox yayılmış olanlar NodeMCU V2 və ya V3 -dir. Hər ikisi də həmişə yaxşı işləyəcək.

Addım 2: DS18B20 Temperatur Sensoru

DS18B20 Temperatur Sensoru
DS18B20 Temperatur Sensoru

Bu dərsdə DS18B20 sensorunun suya davamlı versiyasını istifadə edəcəyik. Nəm şəraitdə, məsələn, nəmli bir torpaqda uzaq temperatur üçün çox faydalıdır. Sensor təcrid olunmuşdur və 125oC -ə qədər ölçü götürə bilər (Adafrut, kabel PVC ceketinə görə 100oC -dən yuxarı istifadə etməyi məsləhət görmür).

DS18B20 rəqəmsal sensordur ki, hətta uzaq məsafələrdə belə istifadə etməyi yaxşı edir! Bu 1 telli rəqəmsal temperatur sensörləri olduqca dəqiqdir (± 0,5 ° C aralığın çox hissəsində) və göyərtədəki rəqəmsaldan analoqa çeviricidən 12 bitə qədər dəqiqlik verə bilir. Tək bir rəqəmsal pin istifadə edərək NodeMCU ilə əla işləyirlər və hətta birdən çoxunu eyni pinə bağlaya bilərsiniz, hər birinin fərqləndirmək üçün fabrikdə yandırılmış 64 bitlik unikal identifikatoru var.

Sensor 3.0 ilə 5.0 V arasında işləyir, bu da birbaşa 3.3V NodeMCU sancaqlarından birindən istifadə edilə biləcəyini bildirir.

Sensor 3 teldən ibarətdir:

  • Qara: GND
  • Qırmızı: VCC
  • Sarı: 1 telli məlumatlar

Burada tam məlumatı tapa bilərsiniz: DS18B20 məlumat cədvəli

Addım 3: Sensorları NodeMCU -ya bağlayın

Sensorların NodeMCU -ya qoşulması
Sensorların NodeMCU -ya qoşulması
  1. Yuxarıdakı fotoşəkildə göstərildiyi kimi mini Çörək Panelindəki hər bir sensordan 3 teli bağlayın. Sensorun kabelini daha yaxşı düzəltmək üçün xüsusi bağlayıcılardan istifadə etdim.
  2. Diqqət yetirin ki, hər iki sensorlar paraleldir. 2 -dən çox sensorunuz varsa, eyni şeyi etməlisiniz.

    • Qırmızı ==> 3.3V
    • Qara ==> GND
    • Sarı ==> D4
  3. VCC (3.3V) və Data (D4) arasında 4.7K ohm rezistor istifadə edin.

Addım 4: Uyğun Kitabxanaların Qurulması

DS18B20 -dən düzgün istifadə etmək üçün iki kitabxana lazım olacaq:

  1. OneWire
  2. Dallas temperaturu

Hər iki kitabxananı Arduino IDE Kitabxana depozitarınıza quraşdırın.

Unutmayın ki, OneWire kitabxanası ESP8266 ilə istifadə üçün dəyişdirilmiş xüsusi bir kitab olmalıdır, əks halda tərtib edərkən bir səhv alacaqsınız. Son versiyanı yuxarıdakı linkdə tapa bilərsiniz.

Addım 5: Sensorların sınanması

Sensorların sınanması
Sensorların sınanması

Sensorları sınamaq üçün GitHub -dan aşağıdakı faylı yükləyin:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Birdən çox İstilik Göndəricisi Testi**2 x OneWire Sensoru: DS18B20*NodeMCU D4 (və ya Arduino Pin 2) ilə birləşdirilmişdir**Marcelo Rovai tərəfindən hazırlanmışdır - 25 Avqust 2017 **************** ********************************************/ #daxil et # NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS) üzrə #define ONE_WIRE_BUS 2 // DS18B20 daxil edin; DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("İkili Sensor Verilərinin Test Edilməsi"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0, Tempi Celcius temp_1 = DS18B20.getTempFByIndex (1) ilə çəkəcək; // Sensor 0, Fahrenheit Serial.print -də Temp tutacaq ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); gecikmə (1000); }

Yuxarıdakı koda baxdıqda, ən vacib xətlərin olduğunu fərq etməliyik:

temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 Tempi Celciusda tutacaq

temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0, Fahrenheit -də Temp tutacaq

Birincisi, Celciusdakı Sensor [0] ("indeksinə (0)" bax)) bir dəyər qaytaracaq (kodun hissəsinə baxın: "getTempC". İkinci sətir Sensor [1] ilə əlaqəlidir və məlumatları qaytaracaq Hər biri üçün fərqli bir "indeks" ə malik olduğunuz üçün burada "n" sensorlar ola bilər.

İndi kodu NodeMCU -ya yükləyin və Serial Monitordan istifadə edərək istiliyi izləyin.

Yuxarıdakı şəkil gözlənilən nəticəni göstərir. Sensorların hər birini əlinizdə tutun, temperaturun qalxdığını görməlisiniz.

Addım 6: Blynk istifadə edin

Blynk istifadə
Blynk istifadə
Blynk istifadə
Blynk istifadə

İstilik məlumatlarını çəkməyə başladıqdan sonra onu hər yerdən görmək vaxtıdır. Bunu Blynk istifadə edərək edəcəyik. Beləliklə, tutulan bütün məlumatlar mobil cihazınızda real vaxtda göstəriləcək və bunun üçün də tarixi bir depozitariya quracağıq.

Aşağıdakı addımları izləyin:

  1. Yeni bir layihə yaradın.
  2. Buna bir ad verin (mənim vəziyyətimdə "İki temperaturlu monitor")
  3. "Cihazlarım" olaraq Yeni Cihaz - ESP8266 (WiFi) seçin.
  4. Kodda istifadə etmək üçün AUTH TOKEN -i kopyalayın (e -poçtunuza göndərə bilərsiniz).
  5. Aşağıdakıları təyin edən iki "Ölçən" Widget daxildir:

    • Hər sensorla istifadə ediləcək virtual pin: V10 (Sensor [0]) və V11 (Sensor [1])
    • Temperatur aralığı: Sensor [0] üçün -5 ilə 100 oC
    • İstilik aralığı: Sensor üçün 25 ilə 212 oC [1]
    • Məlumatları oxumaq tezliyi: 1 saniyə
  6. V10 və V11 -i virtual sancaqlar olaraq təyin edən "Tarix Qrafiki" Widgeti daxildir
  7. "Oynat" düyməsini basın (sağ küncdəki üçbucaq)

Əlbəttə ki, Blynk Tətbiqi sizə NodeMCU -nun xətdə olduğunu bildirir. Tam kodu Arduino IDE -yə yükləməyin vaxtı gəldi. Burada əldə edə bilərsiniz:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

"Kukla məlumatları" şəxsi məlumatlarınızla dəyişdirin.

/ * Blynk etimadnaməsi */

char auth = "BLYNK AUTH KODUNUZ BURADA"; / * WiFi etimadnamələri */ char ssid = "SİZİN SSID"; char pass = "ŞİFRİNİZ";

Və bu qədər!

Tam kodu qeyd edin. Əsasən Blynk parametrləri və xüsusi funksiyalarla daxil etdiyimiz əvvəlki koddur. Kodun son 2 sətrinə diqqət yetirin. Buradakı ən vacib şeylər bunlardır. Məlumat toplayan daha çox sensörünüz varsa, bu xətlər kimi ekvivalent yeni xətlərə sahib olmalısınız (müvafiq yeni virtual sancaqlar ilə).

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

* Blynk ilə IoT Çoxlu Temperatur Monitoru * Blynk kitabxanası MIT lisenziyası ilə lisenziyalaşdırılmışdır * Bu nümunə kodu ictimai malıdır. **Birdən çox OneWire Sensoru: DS18B20*Marcelo Rovai tərəfindən hazırlanmışdır - 25 Avqust 2017 ******************************** ******************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serialını // Bunu şərh edin çapları deaktiv edin və yerdən qənaət edin / * Blynk etimadnaməsi * / char auth = "BLYNK AUTH KODUNU BURADA"; / * WiFi etimadnaməsi */ char ssid = "SİZİN SSID"; char pass = "ŞİFRİNİZ"; / * TIMER */ #SimpleTimer timer daxil edin; / * DS18B20 Temperatur Sensoru */ #include #include #define ONE_WIRE_BUS 2 // DS18B20, arduino pin2 -də OneWire oneWire (ONE_WIRE_BUS) fiziki lövhəsindəki D4 -ə uyğundur; 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 ("İkili Sensor Verilərinin Test Edilməsi"); } boşluq döngəsi () {timer.run (); // SimpleTimer Blynk.run () başlatır; } /********************************************** ****Sensor məlumatlarını Blynk -ə göndərin *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0, Tempi Celcius temp_1 = DS18B20.getTempFByIndex (1) ilə çəkəcək; // Sensor 0, Fahrenheit Serial.print -də Temp tutacaq ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // virtual pin V10 Blynk.virtualWrite (11, temp_1); // virtual pin V11}

Kod yükləndikdən və işlədildikdən sonra Blynk tətbiqini yoxlayın. İndi iPhone -un yuxarıdakı çap ekranında göstərildiyi kimi işləməlidir.

Addım 7: Nəticə

Nəticə
Nəticə

Həmişə olduğu kimi, ümid edirəm ki, bu layihə başqalarına elektronika, robototexnika və IoT -nin maraqlı dünyasında yol tapmağa kömək edə bilər!

Zəhmət olmasa yenilənmiş fayllar üçün GitHub -a daxil olun: NodeMCU Dual Temp Monitor

Daha çox layihə üçün blogumu ziyarət edin: MJRoBot.org

Dünyanın cənubundan salamlar!

Növbəti təlimatımda görüşənədək!

Çox sağ ol, Marcelo

Tövsiyə: