Mundarija:

IoT oddiy: bir nechta sensorlarni kuzatish: 7 qadam
IoT oddiy: bir nechta sensorlarni kuzatish: 7 qadam

Video: IoT oddiy: bir nechta sensorlarni kuzatish: 7 qadam

Video: IoT oddiy: bir nechta sensorlarni kuzatish: 7 qadam
Video: Gastrointestinal Dysmotility in Autonomic Disorders 2024, Noyabr
Anonim
IoT sodda: bir nechta sensorlarni kuzatish
IoT sodda: bir nechta sensorlarni kuzatish
IoT oddiy: bir nechta sensorlarni kuzatish
IoT oddiy: bir nechta sensorlarni kuzatish

Bir necha hafta oldin, men bu erda DS18B20, 1-simli avtobus orqali aloqa o'rnatadigan, Internet orqali ma'lumotlarni NodeMCU va Blynk bilan yuboradigan DS18B20 yordamida haroratni kuzatish bo'yicha ko'rsatma nashr qildim:

IoT oddiy: har qanday joyda haroratni kuzatish

Ammo biz kashfiyotda o'tkazib yuborgan narsamiz, bunday sensorning katta afzalliklaridan biri edi, bu bitta simli avtobusga ulangan bir nechta sensorlardan bir nechta ma'lumotlarni yig'ish imkoniyati. Va endi uni o'rganish vaqti keldi.

Biz oxirgi qo'llanmada ishlab chiqilganlarni kengaytiramiz, endi ikkita DS18B20 sensorini kuzatamiz, biri Celciusda, ikkinchisi Farengeytda. Ma'lumotlar yuqoridagi blok -sxemada ko'rsatilgandek Blynk ilovasiga yuboriladi.

1 -qadam: Materiallar hisobi

  • NodeMCU ESP 12-E (*)
  • 2 ta DS18B20 harorat sensori
  • Rezistor 4.7K Ohm
  • Non taxtasi
  • Ulanish

(*) Bu erda har qanday ESP qurilmasidan foydalanish mumkin. Eng keng tarqalgan NodeMCU V2 yoki V3. Har ikkisi ham doim yaxshi ishlaydi.

2 -qadam: DS18B20 harorat sensori

DS18B20 harorat sensori
DS18B20 harorat sensori

Biz bu qo'llanmada DS18B20 sensorining suv o'tkazmaydigan versiyasidan foydalanamiz. Bu nam sharoitda, masalan nam tuproqda uzoqdan harorat uchun juda foydali. Sensor izolyatsiya qilingan va 125 ° C gacha o'lchashni amalga oshirishi mumkin (Adafrut uni PVX kabelli simi ko'ylagi tufayli 100 ° C dan yuqori ishlatishni tavsiya etmaydi).

DS18B20 - bu raqamli sensor, bu hatto uzoq masofalarda ham foydalanishni yaxshi qiladi! Bu 1-simli raqamli harorat sensori juda aniq (diapazonning ko'p qismida ± 0,5 ° C) va bortli raqamli-analogli konvertordan 12 bitgacha aniqlik berishi mumkin. Ular bitta raqamli pin yordamida NodeMCU bilan juda yaxshi ishlaydi va siz hatto bir nechta pinni bitta pinga ulashingiz mumkin, ularning har birida farqlash uchun zavodda yoqilgan 64-bitli identifikator mavjud.

Sensor 3,0 dan 5,0 V gacha ishlaydi, bu shuni anglatadiki, uni to'g'ridan -to'g'ri 3.3 V NodeMCU pinlaridan quvvatlantirish mumkin.

Sensor 3 ta simdan iborat:

  • Qora: GND
  • Qizil: VCC
  • Sariq: 1 simli ma'lumotlar

Bu erda siz to'liq ma'lumotni topishingiz mumkin: DS18B20 ma'lumotlar jadvali

3 -qadam: Sensorlarni NodeMCU -ga ulash

Sensorlarni NodeMCU -ga ulash
Sensorlarni NodeMCU -ga ulash
  1. Yuqoridagi rasmda ko'rsatilgandek, mini Breadboard -dagi har bir sensordan 3 ta simni ulang. Sensor kabelini yaxshiroq tuzatish uchun men maxsus ulagichlardan foydalandim.
  2. E'tibor bering, ikkala sensor ham parallel. Agar sizda 2 dan ortiq datchik bo'lsa, siz ham shunday qilishingiz kerak.

    • Qizil ==> 3.3V
    • Qora ==> GND
    • Sariq ==> D4
  3. VCC (3.3V) va Data (D4) o'rtasida 4.7K ohmli rezistordan foydalaning.

4 -qadam: Kerakli kutubxonalarni o'rnatish

DS18B20 -dan to'g'ri foydalanish uchun ikkita kutubxona kerak bo'ladi:

  1. OneWire
  2. Dallas harorati

Ikkala kutubxonani ham Arduino IDE Library omboriga o'rnating.

E'tibor bering, OneWire kutubxonasi ESP8266 bilan ishlatish uchun o'zgartirilgan maxsus bo'lishi kerak, aks holda kompilyatsiya paytida xato bo'ladi. Siz oxirgi havolani yuqoridagi havola orqali topasiz.

5 -qadam: Sensorlarni sinab ko'rish

Sensorlarni sinovdan o'tkazish
Sensorlarni sinovdan o'tkazish

Sensorlarni sinab ko'rish uchun GitHub -dan quyidagi faylni yuklab oling:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Bir nechta harorat sensori sinovi**2 x OneWire sensori: DS18B20*NodeMCU D4 (yoki Arduino Pin 2) ga ulangan**Marselo Rovai tomonidan ishlab chiqilgan - 2017 yil 25 -avgust **************** *********************************************/ # #qo'shish # o'z ichiga #define ONE_WIRE_BUS 2 // DS18B20 NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println ("Ikki sensorli ma'lumotlarni tekshirish"); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 Tempni Celcius temp_1 = DS18B20.getTempFByIndex (1) da oladi; // Sensor 0 Farenxaytdagi Serial.print ("Temp_0:") da Tempni oladi; Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); kechikish (1000); }

Yuqoridagi kodga nazar tashlasak, eng muhim satrlar quyidagilardir:

temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 Celciusda Tempni oladi

temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 Farengeytda Tempni oladi

Birinchisi Celcius dagi Sensor [0] ("indeks (0)" ga qarang) qiymatini qaytaradi (kodning "getTempC" qismini ko'ring. Ikkinchi qator Sensor [1] bilan bog'liq va ma'lumotlarni qaytaradi. Farenxaytda bu erda "n" datchiklari bo'lishi mumkin, chunki ularning har biri uchun alohida "indeks" mavjud.

Endi kodni NodeMCU -ga yuklang va ketma -ket monitor yordamida haroratni kuzatib boring.

Yuqoridagi rasm kutilgan natijani ko'rsatadi. Sensorlarning har birini qo'lingizda ushlab turing, shunda harorat ko'tariladi.

6 -qadam: Blynk -dan foydalanish

Blynk -dan foydalanish
Blynk -dan foydalanish
Blynk -dan foydalanish
Blynk -dan foydalanish

Harorat ma'lumotlarini yozishni boshlaganingizdan so'ng, uni istalgan joydan ko'rish vaqti keldi. Biz buni Blynk yordamida qilamiz. Shunday qilib, olingan barcha ma'lumotlar sizning mobil qurilmangizda real vaqtda ko'rsatiladi va biz buning uchun tarixiy depozitariyni quramiz.

Quyidagi amallarni bajaring:

  1. Yangi loyiha yaratish.
  2. Unga nom bering (mening holimda "Ikki haroratli monitor")
  3. "Mening qurilmalarim" sifatida yangi qurilma - ESP8266 (WiFi) -ni tanlang.
  4. Kodda ishlatilishi uchun AUTH TOKEN -dan nusxa oling (uni elektron pochtangizga yuborishingiz mumkin).
  5. Belgilaydigan ikkita "o'lchagich" vidjetini o'z ichiga oladi.

    • Har bir sensor bilan ishlatiladigan virtual pin: V10 (Sensor [0]) va V11 (Sensor [1])
    • Harorat diapazoni: Sensor [0] uchun -5 dan 100 oC gacha
    • Harorat diapazoni: Sensor uchun 25 dan 212 oC gacha [1]
    • Ma'lumotni o'qish chastotasi: 1 soniya
  6. V10 va V11ni virtual pin sifatida belgilaydigan "Tarix grafikasi" vidjetini o'z ichiga oladi
  7. "O'ynash" tugmasini bosing (o'ng burchakdagi uchburchak)

Albatta, Blynk ilovasi sizga NodeMCU tarmoqdan tashqarida ekanligini ma'lum qiladi. To'liq kodni Arduino IDE -ga yuklash vaqti keldi. Siz bu yerdan olishingiz mumkin:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

O'zingizning shaxsiy ma'lumotlaringiz bilan "qo'pol ma'lumotlar" ni o'zgartiring.

/ * Blynk hisob ma'lumotlari */

char auth = "SIZNING BLYNK AVTO KODINGIZ BU YERDA"; / * WiFi hisob ma'lumotlari */ char ssid = "SIZNING SSID"; char pass = "Sizning parolingiz";

Va bu hammasi!

To'liq kodni ko'rsating. Bu asosan Blynk parametrlari va o'ziga xos funktsiyalari bilan kiritilgan oldingi kod. Kodning oxirgi 2 satriga e'tibor bering. Bular bu erda eng muhimlari. Agar sizda ko'proq ma'lumot to'playdigan datchiklar bo'lsa, sizda ham shunga o'xshash yangi satrlar bo'lishi kerak (tegishli yangi virtual pinlar aniqlangan).

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

* Blynk bilan IoT ko'p haroratli monitor * Blynk kutubxonasi MIT litsenziyasi ostida litsenziyalangan * Bu misol kodi jamoat mulki hisoblanadi. **Bir nechta OneWire sensori: DS18B20*Marselo Rovai tomonidan ishlab chiqilgan - 2017 yil 25 -avgust ******************************** ******************************//*ESP & Blynk*/ #include #include #deinefine BLYNK_PRINT Serial // Buni izohlang bosib chiqarishni o'chiring va joyni tejang / * Blynk hisob ma'lumotlari * / char auth = "SIZNING BLYNK AUTH KODINGIZ BU YERDA"; / * WiFi hisob ma'lumotlari */ char ssid = "SIZNING SSID"; char pass = "Sizning parolingiz"; / * TIMER */ #include SimpleTimer taymer; / * DS18B20 harorat sensori */ #include #include #deinine ONE_WIRE_BUS 2 // DS18B20 arduino pin2 da OneWire oneWire jismoniy bortidagi D4 ga mos keladi (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 ("Ikki sensorli ma'lumotlarni tekshirish"); } void loop () {timer.run (); // SimpleTimer Blynk.run () ni ishga tushiradi; } /********************************************** ****Sensor ma'lumotlarini Blynk -ga yuboring *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 Tempni Celcius temp_1 = DS18B20.getTempFByIndex (1) da oladi; // Sensor 0 Farenheit Serial.print ("Temp_0:") da Tempni oladi; 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 yuklangan va ishga tushirilgandan so'ng, Blynk ilovasini tekshiring. Endi u iPhone -ning yuqori bosma ekranida ko'rsatilgandek ishlaydi.

7 -qadam: Xulosa

Xulosa
Xulosa

Har doimgidek, men umid qilamanki, bu loyiha boshqalarga elektronika, robototexnika va IoTning hayajonli dunyosida o'z yo'lini topishga yordam beradi!

Iltimos, yangilangan fayllar uchun mening GitHub -ga tashrif buyuring: NodeMCU Dual Temp Monitor

Boshqa loyihalar uchun mening blogimga tashrif buyuring: MJRoBot.org

Dunyoning janubidan salomlar!

Keyingi ko'rsatuvimda ko'rishguncha!

Rahmat, Marselo

Tavsiya: