Mündəricat:
- Addım 1: Material Bill
- Addım 2: DS18B20 Temperatur Sensoru
- Addım 3: Sensorları NodeMCU -ya bağlayın
- Addım 4: Uyğun Kitabxanaların Qurulması
- Addım 5: Sensorların sınanması
- Addım 6: Blynk istifadə edin
- Addım 7: Nəticə
Video: IoT Sadə Oldu: Birdən çox Sensorun İzlənməsi: 7 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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
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
- 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.
-
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
- 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:
- OneWire
- 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ı 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
İ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:
- Yeni bir layihə yaradın.
- Buna bir ad verin (mənim vəziyyətimdə "İki temperaturlu monitor")
- "Cihazlarım" olaraq Yeni Cihaz - ESP8266 (WiFi) seçin.
- Kodda istifadə etmək üçün AUTH TOKEN -i kopyalayın (e -poçtunuza göndərə bilərsiniz).
-
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ə
- V10 və V11 -i virtual sancaqlar olaraq təyin edən "Tarix Qrafiki" Widgeti daxildir
- "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ə
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ə:
Photoshop 2020 -dən istifadə edərək birdən çox görüntünün fonunu silin: 5 addım
Photoshop 2020 -dən istifadə edərək birdən çox görüntünün arxa planını silin: şəkilin arxa planını silmək indi çox asandır! Sadə bir skript istifadə edərək çoxlu (toplu) şəkillərin arxa planını silmək üçün Adobe Photoshop 2020 -dən necə istifadə etmək olar
Arduino Connect Birdən çox I2C Cihazı: 6 Addım
Arduino Connect Çoxlu I2C Cihazları: Bu dərslikdə bir neçə modulu I2C bağlantısı ilə arduino -ya necə bağlamağı öyrənəcəyik. Videoya baxın! Bizim vəziyyətimizdə nümunə olaraq 4 OLED Ekrandan istifadə edəcəyik, ancaq hər hansı digər I2C modullarından istifadə edə bilərsiniz/ İstəsəniz sensorlar. Qeyd: 4 OLED Ekran
Arduino Birdən çox Servo Motoru Necə Bağlamaq olar - PCA9685 Təlimatı: 6 addım
Arduino Birdən çox Servo Motoru Necə Bağlamaq olar - PCA9685 Təlimatı: Bu dərslikdə PCA9685 modulu və arduino istifadə edərək bir neçə servo mühərrikin necə bağlanacağını öyrənəcəyik. Bir neçə mühərrik bağlamalı olduğunuzda PCA9685 modulu çox yaxşıdır, bu barədə daha çox oxuya bilərsiniz https : //www.adafruit.com/product/815Vini İzləyin
4 -dən çox mühərrikdən istifadə - Birdən çox mühərrikin yığılması: 3 addım
4 -dən çox mühərrikdən istifadə etmək - Birdən çox mühərrik qalaqlamaq: Təlim olunan Vibrotaktil Həssas Dəyişdirmə və Artırma Cihazı (https: //www.instructables.com/id/Vibrotactile-Sens …), həssaslığı tərcümə edən bir qurğunun necə qurulacağını göstərir. vibrasiya stimullarına giriş. Bu titrəmə stimulları p
Çox Sadə Yenə də Çox Etkili Prank (Kompüter Prank): 3 Addım
Çox Sadə … Hələ Çox Etibarlı Prank (Kompüter Prank): Bu Təlimat ÇOX sadədir, amma çox təsirlidir! Nə olacaq: Qurbanın masaüstündəki bütün nişanları gizlədirsən. Siz oyun qurduqdan sonra qurbanı kompüteri görəndə çıldıracaq. Bu kompüterə heç bir şəkildə zərər verə bilməz