Агуулгын хүснэгт:
- Алхам 1: Билл материал
- Алхам 2: DS18B20 температур мэдрэгч
- Алхам 3: Мэдрэгчийг NodeMCU руу холбох
- Алхам 4: Зөвшөөрөгдсөн номын санг суулгах
- Алхам 5: Мэдрэгчийг турших
- Алхам 6: Blynk ашиглах
- Алхам 7: Дүгнэлт
Видео: IoT хялбар болгосон: Олон мэдрэгчийг хянах: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Хэдэн долоо хоногийн өмнө би энд 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 мэдрэгчийн ус үл нэвтрэх хувилбарыг ашиглах болно. Энэ нь нойтон нөхцөлд алсын температурт, жишээлбэл чийглэг хөрсөнд маш хэрэгтэй байдаг. Мэдрэгч нь тусгаарлагдсан бөгөөд 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 руу холбох
- Дээрх зураг дээр үзүүлсэн шиг мини талхны самбар дээрх мэдрэгч тус бүрийн 3 утсыг холбоно уу. Мэдрэгчийн кабелийг илүү сайн засахын тулд би тусгай холбогч ашигласан.
-
Хоёр мэдрэгч хоёулаа зэрэгцсэн байгааг анхаарна уу. Хэрэв танд 2 -оос дээш мэдрэгч байгаа бол үүнийг хийх хэрэгтэй.
- Улаан ==> 3.3V
- Хар ==> GND
- Шар ==> D4
- VCC (3.3V) ба Data (D4) хооронд 4.7K ом эсэргүүцэл ашиглана уу.
Алхам 4: Зөвшөөрөгдсөн номын санг суулгах
DS18B20 -ийг зөв ашиглахын тулд хоёр номын сан шаардлагатай болно.
- OneWire
- Даллас температур
Хоёр номын санг 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 ашиглан хийх болно. Тиймээс, авсан бүх өгөгдлийг таны гар утсан дээр бодит цаг хугацаанд харуулах болно, мөн үүний тулд бид түүхэн хадгаламжийн сан байгуулах болно.
Дараах алхмуудыг дагана уу.
- Шинэ төсөл бий болгох.
- Нэр өг (миний хувьд "Хос температурын хяналт")
- Шинэ төхөөрөмж - ESP8266 (WiFi) -ийг "Миний төхөөрөмжүүд" гэж сонгоно уу.
- Кодонд ашиглахын тулд AUTH TOKEN -ийг хуулж ав (та үүнийг имэйлдээ илгээж болно).
-
Дараахь хоёр "хэмжигч" виджетийг багтаасан болно.
- Мэдрэгч бүрт ашиглах виртуал зүү: V10 (Sensor [0]) ба V11 (Sensor [1])
- Температурын хүрээ: мэдрэгчийн хувьд -5-100 oC [0]
- Температурын хүрээ: мэдрэгчийн хувьд 25-22 oC [1]
- Өгөгдлийг унших давтамж: 1 секунд
- V10 ба V11 -ийг виртуал зүү гэж тодорхойлсон "Түүхийн график" виджетийг багтаасан болно
- "Тоглуулах" товчийг дарна уу (баруун дээд буланд байгаа гурвалжин)
Мэдээжийн хэрэг, 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 миний блогоос үзнэ үү
Дэлхийн өмнөд хэсгээс мэндчилгээ дэвшүүлье!
Миний дараагийн зааварчилгаа дээр уулзацгаая!
Баярлалаа, Марсело
Зөвлөмж болгож буй:
Arduino -ийн нэгэн зэрэг олон тооны P.I.R мэдрэгчийг хянах: 3 алхам
Arduino нь ижил Bord дээр олон PIR мэдрэгчийг хянаж байна: Өнөөдөр би олон тооны PIR мэдрэгчийг ганц Arduino Bord -той хэрхэн холбохыг танд хэлэх болно. (Эсвэл та ардуинаа олон тооны зүүгээр ашиглаж болно
Олон тооны мэдрэгчийг нэг ARDUINO UNO серийн порт руу холбох: 4 алхам
Олон тооны мэдрэгчийг ARDUINO UNO SERIAL PORT руу холбох: Энэхүү гарын авлагад бид Arduino UNO UART (Rx/Tx) цуваа портыг өргөтгөх бөгөөд ингэснээр олон Атлас мэдрэгчийг холбох боломжтой болно. Өргөтгөлийг 8: 1 цуваа порт өргөтгөгч хавтан ашиглан хийдэг. Arduino боомт нь өргөтгөгчтэй холбогдсоны дараа
CloudyData - ESP8266 Google Хүснэгтэд хялбар болгосон: 10 алхам (зурагтай)
CloudyData - ESP8266 -ийг Google Хүснэгтэд хялбар болгосон: Сүүлийн жилүүдэд би үүлний өгөгдөл хадгалахыг удаан хугацаанд хайсан: ямар ч төрлийн мэдрэгчийн өгөгдлийг хянах нь сонирхолтой байдаг, гэхдээ эдгээр өгөгдлийг хаа сайгүй ашиглах боломжтой бол илүү сонирхолтой байдаг. SD ашиглах гэх мэт хадгалалтын аливаа бэрхшээл
Aquasprouts: Hydroponics хялбар болгосон: 3 алхам
Aquasprouts: Hydroponics хялбаршуулсан: Aquasprouts Энэхүү төсөлд бид tingg.io платформтой холбогдсон зарим жижиг ургамлыг ургуулах энгийн гидропоник системийг хийх болно. Энэ нь tingg.io самбар (ESP32) эсвэл түүнтэй адилтгах самбар дээр суурилдаг. Энэ нь температур, чийгшил, гэрэл, хэт ягаан туяа, чийгшил
DIY MusiLED, Windows & Linux програмыг нэг товшилтоор (32 бит ба 64 бит) хөгжмийн синхрончлогдсон LED. Дахин бүтээхэд хялбар, ашиглахад хялбар, порт хийхэд хялбар: 3 алхам
DIY MusiLED, Windows болон Linux програмыг нэг товшилтоор (32 бит ба 64 бит) хөгжмийн синхрончлогдсон LED. Дахин бүтээхэд хялбар, ашиглахад хялбар, порт хийхэд хялбар: Энэхүү төсөл нь 18 LED (6 Улаан + 6 Цэнхэр + 6 Шар) Arduino самбартаа холбож, компьютерийн Дууны картын бодит цагийн дохиог шинжлэх, дамжуулахад туслах болно. LED -ууд нь цохилтын эффектийн дагуу тэднийг гэрэлтүүлдэг (урхи, өндөр малгай, өшиглөлт)