Агуулгын хүснэгт:

IoT хялбар болгосон: Олон мэдрэгчийг хянах: 7 алхам
IoT хялбар болгосон: Олон мэдрэгчийг хянах: 7 алхам

Видео: IoT хялбар болгосон: Олон мэдрэгчийг хянах: 7 алхам

Видео: IoT хялбар болгосон: Олон мэдрэгчийг хянах: 7 алхам
Видео: Лучший из ЛУЧШИХ???. Радиоприемник TECSUN PL680 ПОЛНЫЙ ОБЗОР!!! #tecsun 2024, Арваннэгдүгээр
Anonim
IoT хялбар болгосон: Олон мэдрэгчийг хянах
IoT хялбар болгосон: Олон мэдрэгчийг хянах
IoT хялбар болгосон: Олон мэдрэгчийг хянах
IoT хялбар болгосон: Олон мэдрэгчийг хянах

Хэдэн долоо хоногийн өмнө би энд 1 утастай автобусаар холбогддог дижитал мэдрэгч DS18B20 ашиглан температурыг хянах тухай хичээлийг NodeMCU болон Blynk-ээр интернетээр дамжуулан илгээх хичээлийг энд нийтэлсэн болно.

IoT -ийг хялбаршуулсан: Температурыг хаана ч хянах боломжтой

Гэхдээ хайгуулын явцад бидний алдсан зүйл бол энэ төрлийн мэдрэгчийн нэг давуу тал байсан бөгөөд энэ нь нэг утастай автобусанд холбогдсон олон мэдрэгчээс олон өгөгдлийг цуглуулах боломжтой юм. Тэгээд одоо үүнийг судлах цаг болжээ.

Бид сүүлчийн хичээл дээр боловсруулсан зүйлийг өргөжүүлж, одоо нэг нь Celcius, нөгөө нь Фаренгейтэд тохируулсан DS18B20 хоёр мэдрэгчийг хянах болно. Өгөгдлийг дээрх блок диаграммд үзүүлсэн шиг Blynk App руу илгээх болно.

Алхам 1: Билл материал

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 температур мэдрэгч
  • Эсэргүүцэл 4.7K Ом
  • BreadBoard
  • Цахилгаан утас

(*) Энд ямар ч төрлийн ESP төхөөрөмжийг ашиглаж болно. Хамгийн түгээмэл нь NodeMCU V2 эсвэл V3 юм. Аль аль нь үргэлж сайн ажиллах болно.

Алхам 2: DS18B20 температур мэдрэгч

DS18B20 температур мэдрэгч
DS18B20 температур мэдрэгч

Бид энэ хичээлд DS18B20 мэдрэгчийн ус үл нэвтрэх хувилбарыг ашиглах болно. Энэ нь нойтон нөхцөлд алсын температурт, жишээлбэл чийглэг хөрсөнд маш хэрэгтэй байдаг. Мэдрэгч нь тусгаарлагдсан бөгөөд 125 хэм хүртэл хэмжилт хийх боломжтой (Adafrut нь PVC кабельтай кабелийн улмаас 100 хэмээс дээш температурт ашиглахыг зөвлөдөггүй).

DS18B20 бол дижитал мэдрэгч бөгөөд хол зайд ч ашиглахад тохиромжтой болгодог! Эдгээр 1 утастай дижитал температур мэдрэгч нь нэлээд нарийвчлалтай (ихэнх мужид ± 0.5 ° C) бөгөөд дижитал-аналог хөрвүүлэгчээс 12 бит хүртэлх нарийвчлалыг өгдөг. Тэд нэг дижитал зүү ашиглан NodeMCU-тэй маш сайн ажилладаг бөгөөд та хэд хэдэн зүүг нэг зүү рүү холбож чаддаг, тус бүр нь ялгахын тулд үйлдвэрт 64 битийн өвөрмөц ID шатаасан байдаг.

Мэдрэгч нь 3.0 -аас 5.0V хүртэл ажилладаг бөгөөд энэ нь 3.3V NodeMCU -ийн нэг зүүгээр шууд тэжээгддэг гэсэн үг юм.

Мэдрэгч нь 3 утастай:

  • Хар: GND
  • Улаан: VCC
  • Шар: 1 утастай өгөгдөл

Эндээс та бүрэн мэдээллийг олж авах боломжтой: DS18B20 мэдээллийн хуудас

Алхам 3: Мэдрэгчийг NodeMCU руу холбох

Мэдрэгчийг NodeMCU руу холбох
Мэдрэгчийг NodeMCU руу холбох
  1. Дээрх зураг дээр үзүүлсэн шиг мини талхны самбар дээрх мэдрэгч тус бүрийн 3 утсыг холбоно уу. Мэдрэгчийн кабелийг илүү сайн засахын тулд би тусгай холбогч ашигласан.
  2. Хоёр мэдрэгч хоёулаа зэрэгцсэн байгааг анхаарна уу. Хэрэв танд 2 -оос дээш мэдрэгч байгаа бол үүнийг хийх хэрэгтэй.

    • Улаан ==> 3.3V
    • Хар ==> GND
    • Шар ==> D4
  3. VCC (3.3V) ба Data (D4) хооронд 4.7K ом эсэргүүцэл ашиглана уу.

Алхам 4: Зөвшөөрөгдсөн номын санг суулгах

DS18B20 -ийг зөв ашиглахын тулд хоёр номын сан шаардлагатай болно.

  1. OneWire
  2. Даллас температур

Хоёр номын санг Arduino IDE номын сангийн санд хадгална уу.

OneWire номын сан нь ESP8266 -д ашиглахаар өөрчлөгдсөн тусгай номын сан байх ёстойг анхаарна уу, эс тэгвээс эмхэтгэх явцад алдаа гарах болно. Та хамгийн сүүлийн хувилбарыг дээрх линкээс олох болно.

Алхам 5: Мэдрэгчийг турших

Мэдрэгчийг турших
Мэдрэгчийг турших

Мэдрэгчийг туршихын тулд доорх файлыг миний GitHub дээрээс татаж аваарай.

NodeMCU_DS18B20_Dual_Se nsor_test.ino

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

*Олон температур дамжуулагчийн туршилт**2 x OneWire мэдрэгч: DS18B20*NodeMCU D4 (эсвэл Arduino Pin 2) -д холбогдсон**Боловсруулсан: Марсело Ровай - 2017 оны 8 -р сарын 25 **************** ********************************************/ #оруулах # NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS) дээр #define ONE_WIRE_BUS 2 // DS18B20 оруулах; DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20. эхлэх (); Serial.println ("Хос мэдрэгчийн өгөгдлийг шалгах"); } void loop () {float temp_0; хөвөх температур_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Мэдрэгч 0 нь Temp -ийг Celcius temp_1 = DS18B20.getTempFByIndex (1) -д авах болно; // Мэдрэгч 0 нь Фаренгейтийн Serial.print дахь Temp -ийг авах болно ("Temp_0:"); Цуваа.хэвлэх (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); саатал (1000); }

Дээрх кодыг харахад хамгийн чухал мөрүүд нь:

temp_0 = DS18B20.getTempCByIndex (0); // Sensor 0 нь Celcius дахь Temp -ийг авах болно

temp_1 = DS18B20.getTempFByIndex (1); // Sensor 0 нь Фаренгейт дэх Temp -ийг авах болно

Эхнийх нь Celcius дахь Sensor [0] -ээс утгыг буцаана ("индекс (0)" -ийг харна уу) (кодын хэсгийг харна уу: "getTempC". Хоёр дахь мөр нь Sensor [1] -тэй холбоотой бөгөөд өгөгдлийг буцаана. Фаренгейтийн хувьд. Та энд "n" мэдрэгчтэй байж болно.

NodeMCU -д кодоо одоо байршуулж, Serial Monitor ашиглан температурыг хянаж үзээрэй.

Дээрх зураг нь хүлээгдэж буй үр дүнг харуулж байна. Мэдрэгч тус бүрийг гартаа барь, температур нэмэгдэх болно.

Алхам 6: Blynk ашиглах

Блинкийг ашиглаж байна
Блинкийг ашиглаж байна
Блинкийг ашиглаж байна
Блинкийг ашиглаж байна

Температурын өгөгдлийг барьж эхэлмэгц үүнийг хаанаас ч харах цаг болжээ. Бид үүнийг Blynk ашиглан хийх болно. Тиймээс, авсан бүх өгөгдлийг таны гар утсан дээр бодит цаг хугацаанд харуулах болно, мөн үүний тулд бид түүхэн хадгаламжийн сан байгуулах болно.

Дараах алхмуудыг дагана уу.

  1. Шинэ төсөл бий болгох.
  2. Нэр өг (миний хувьд "Хос температурын хяналт")
  3. Шинэ төхөөрөмж - ESP8266 (WiFi) -ийг "Миний төхөөрөмжүүд" гэж сонгоно уу.
  4. Кодонд ашиглахын тулд AUTH TOKEN -ийг хуулж ав (та үүнийг имэйлдээ илгээж болно).
  5. Дараахь хоёр "хэмжигч" виджетийг багтаасан болно.

    • Мэдрэгч бүрт ашиглах виртуал зүү: V10 (Sensor [0]) ба V11 (Sensor [1])
    • Температурын хүрээ: мэдрэгчийн хувьд -5-100 oC [0]
    • Температурын хүрээ: мэдрэгчийн хувьд 25-22 oC [1]
    • Өгөгдлийг унших давтамж: 1 секунд
  6. V10 ба V11 -ийг виртуал зүү гэж тодорхойлсон "Түүхийн график" виджетийг багтаасан болно
  7. "Тоглуулах" товчийг дарна уу (баруун дээд буланд байгаа гурвалжин)

Мэдээжийн хэрэг, Blynk Апп нь NodeMCU нь шугамаас гарсан гэдгийг танд хэлэх болно. Бүрэн кодыг Arduino IDE дээрээ байршуулах цаг болжээ. Та эндээс авах боломжтой:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

"Дамми өгөгдөл" -ийг өөрийн итгэмжлэлээр солино уу.

/ * Блинкийн итгэмжлэлүүд */

char auth = "Таны BLYNK AUTH код энд байна"; / * WiFi итгэмжлэлүүд */ char ssid = "ТАНЫ SSID"; char pass = "ТАНЫ НУУЦ ҮГ";

Тэгээд л боллоо!

Бүрэн кодыг харна уу. Энэ бол үндсэндээ өмнөх код бөгөөд энд бид Blynk параметрүүд болон тодорхой функцуудыг оруулсан болно. Кодын сүүлийн 2 мөрийг анхаарна уу. Эдгээр нь энд хамгийн чухал зүйл юм. Хэрэв танд илүү олон өгөгдөл цуглуулах мэдрэгч байгаа бол тэдгээртэй ижил төстэй шинэ мөрүүд байх ёстой (холбогдох шинэ виртуал тээглүүрийг тодорхойлсон).

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

* Blynk бүхий IoT олон температур хэмжигч **Олон OneWire мэдрэгч: DS18B20*Марсело Ровай боловсруулсан - 2017 оны 8 -р сарын 25 ******************************** ****************************//*ESP & Blynk*/ #include #include #deine BLYNK_PRINT цувралыг тодорхойлох хэвлэхийг идэвхгүй болгож, зай хэмнээрэй / * Blynk итгэмжлэлүүд * / char auth = "ТАНЫ BLYNK AUTH код ЭНД"; / * WiFi итгэмжлэлүүд */ char ssid = "ТАНЫ SSID"; char pass = "ТАНЫ НУУЦ ҮГ"; / * TIMER */ #include SimpleTimer таймер; / * DS18B20 Температур мэдрэгч */ #include #include #тодорхойлох ONE_WIRE_BUS 2 // DS18B20 нь arduino pin2 дээр One4ire oneWire (ONE_WIRE_BUS) физик самбар дээрх D4 -тэй нийцдэг; DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20. эхлэх (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("Хос мэдрэгчийн өгөгдлийг шалгах"); } void loop () {timer.run (); // SimpleTimer Blynk.run () -ийг эхлүүлдэг; } /************************************************ ****Мэдрэгчийн өгөгдлийг Блинк рүү илгээх *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // Мэдрэгч 0 нь Temp -ийг Celcius temp_1 = DS18B20.getTempFByIndex (1) -д авах болно; // Мэдрэгч 0 нь Фаренгейтийн Serial.print дахь Temp -ийг авах болно ("Temp_0:"); Цуваа.хэвлэх (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // виртуал зүү V10 Blynk.virtualWrite (11, temp_1); // виртуал зүү V11}

Кодыг байршуулж, ажиллуулсны дараа Blynk програмыг шалгана уу. Энэ нь миний iPhone дээрх хэвлэх дэлгэц дээр үзүүлсэн шиг одоо ажиллаж байх ёстой.

Алхам 7: Дүгнэлт

Дүгнэлт
Дүгнэлт

Урьдын адил энэ төсөл нь электроник, робот техник, IoT -ийн гайхалтай ертөнцөд бусдад замаа олоход нь тусална гэж найдаж байна!

Шинэчлэгдсэн файлуудыг авахын тулд миний GitHub руу зочилно уу: NodeMCU Хос Температурын хяналт

Бусад төслүүдийн талаар MJRoBot.org миний блогоос үзнэ үү

Дэлхийн өмнөд хэсгээс мэндчилгээ дэвшүүлье!

Миний дараагийн зааварчилгаа дээр уулзацгаая!

Баярлалаа, Марсело

Зөвлөмж болгож буй: