Mundarija:

MQTT/Google uy suv toshqini/ESP-01 bilan suv WiFi sensori: 7 qadam
MQTT/Google uy suv toshqini/ESP-01 bilan suv WiFi sensori: 7 qadam

Video: MQTT/Google uy suv toshqini/ESP-01 bilan suv WiFi sensori: 7 qadam

Video: MQTT/Google uy suv toshqini/ESP-01 bilan suv WiFi sensori: 7 qadam
Video: Tesla Cybertruck Crash Test - BeamNG.Drive #shorts 2024, Noyabr
Anonim
MQTT/Google uy toshqini/ESP-01 bilan suv WiFi sensori
MQTT/Google uy toshqini/ESP-01 bilan suv WiFi sensori

Bu yo'riqnomada men sizga minimal xarajat bilan wifi wifi/suv sensori qurishni ko'rsataman. Butun loyiha menga ebaydan sotib olgan qismlarim va mavjud ehtiyot qismlarim uchun 8 dollardan kam turadi.

Ushbu loyihada biz WSP va MQTT mijozlariga suv borligini aniqlash uchun ESP-01-dan foydalanamiz va ixtiyoriy ravishda mahalliy signalni ta'minlash uchun to'g'ridan-to'g'ri ulangan karnay/signaldan foydalanamiz.

Loyiha uchun mening maxsus arizam - quduq nasosi ishlamay qolganda, quduq nasos qudug'idagi suv toshqinlarini aniqlash. Agar suv 2 ta ochiq sim bilan aniqlansa, u MQTT brokeriga xabar yuboradi. MQTT brokeri xabarni NodeRED -ga uzatadi. MQTT xabarini olgandan so'ng, NodeRED bir nechta Google uy qurilmalariga e'lon yuboradi va ixtiyoriy ravishda pushbullet orqali uyali telefon/brauzerga xabar yuboradi.

Albatta, bu loyiha faqat uyda elektr yoqilgan bo'lsa ishlaydi. Keyingi yo'riqnomada men batareyaning zaxira sxemasini birlashtiraman. Ammo, agar siz quvvat manbaiga o'xshatsa, batareyani zaxira qilish uchun USB quvvat bankini ulashingiz mumkin. Agar sizda bir vaqtning o'zida quvvatni zaryadlash va etkazib berishga imkon beradigan quvvat banki bo'lsa, demak, hamma narsa tayyor.

Men Mosquitto MQTT serveri va NodeRED -ni joylashtirish uchun RaspberryPi ZeroW -dan foydalanaman. U bir yildan ortiq ishlamayapti.

Manbalar: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Raspberry Pi-da NodeRED-ni o'rnating:

1 -qadam: Sizga kerak bo'ladigan qismlar

Sizga kerak bo'ladigan qismlar
Sizga kerak bo'ladigan qismlar
Sizga kerak bo'ladigan qismlar
Sizga kerak bo'ladigan qismlar
Sizga kerak bo'ladigan qismlar
Sizga kerak bo'ladigan qismlar

Qismlar ro'yxati:

(1) ESP-01

(2) 10K ohmli rezistor

(1) kichik signalli umumiy NPN tranzistor (men 2N3904 dan foydalanganman)

(2) uzun simlar

(1) 5V umumiy quvvat manbai (bu zanjir 300 mA dan kam oqim talab qiladi)

(1) 3.3V regulyator moduli AMS1117

(1) Micro-USB to DIP adapterli ayol konnektori PCB konverteri DIY to'plami

(1) USB-A-MicroUSB kabeli.

(1) 8-pinli IC rozetkasi-agar siz ESP-01ni to'g'ridan-to'g'ri elektron kartaga lehimlashni xohlasangiz, o'tkazib yuborish mumkin. Qatorlar orasidagi bo'shliqni hosil qiladigan plastik ko'priklarni kesib oling va keyin 2 qatorni yopishtiring, rasmga qarang.

(1) Loyiha uchun kichik korpus

Agar sizga karnay/buzzer yordamida mahalliy signal kerak bo'lsa, quyida ixtiyoriy qismlar keltirilgan

(1) Umumiy PNP tranzistor, karnay/signal signallari/vatt talablariga muvofiq tanlang. Mening holatimda men 2N2907 dan foydalanaman, chunki karnayim atigi 0,3 Vt (8 ohm), u karnayni haydash uchun etarli quvvat beradi. Agar siz balandroq ovozni xohlasangiz, kattaroq tranzistor va karnayni tanlashingiz mumkin.

(1) Karnay, yuqoridagi PNP tranzistoriga qarang

(1) 100 - 110 ohmli rezistor

2 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi

Birinchi qadam diagrammada ko'rsatilgan sxemani yaratish bo'ladi.

Men 3.3VDC quvvat manbaini AMS1117 3.3VDC regulyatoriga ulangan eski 5V uyali telefon zaryadlovchisini ishlatib qurdim. ESP-01 rozetkasi uchun men 8 pinli standart IC rozetkasidan foydalanaman va qatorlar orasidagi bo'shliqni hosil qiluvchi plastik ko'priklarni kesib, keyin 2 qatorni yopishtiraman.

Men yaratgan sxema ikkita sim o'rtasida suv borligini sezishdir. Suv ikkala simning uchiga yetganda, taxminan 10K dan 20K ohmgacha qarshilik hosil qiladi. Keyin 10K ohmli R1 bilan ketma-ket, u Q1 bazasini kichik oqim bilan ta'minlaydi, bu esa Q1 ning to'yinganligiga olib keladi va GPIO-2 ni erga mahkamlaydi. R1 sezgich simlarida tasodifan qisqa tutashuv bo'lsa, Q1 himoyasini ta'minlash uchun zarur.

R2-ESP-01-ning fleshdan yuklanishiga ruxsat beruvchi tortuvchi qarshilik.

Endi ixtiyoriy karnay/signal uchun, agar sizga MQTT bilan gaplashish uchun ESP-01 kerak bo'lsa va siz bu signalizatsiyani amalga oshirishni xohlamasangiz, R2, Q2, Karnayni olib tashlashingiz va GPIO-0 orasiga 10K tortish qarshiligini qo'yishingiz mumkin. va VCC.

Agar siz ayol Micro-USB-dan DIP-adapterga ehtiyoj sezmasangiz, simlarni 5V PSdan 3.3V regulyator moduliga lehimlashingiz mumkin. Men ayol MicroUSB adapteridan foydalanishni afzal ko'raman, shuning uchun har qanday umumiy uyali telefon zaryadlovchi va MicroUSB kabelidan foydalanishim mumkin.

3 -qadam: O'chirish tizimini yaratish

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

Oldingi sahifadagi sxemaga muvofiq barcha komponentlar va qismlarni tenglikka lehimlang va tenglikni o'lchamiga kesib oling.

PCBni PCB va ixtiyoriy karnayga mos keladigan korpus ichiga joylashtiring. Mening holatimda, barcha qismlar telefonning kichik rozetkasiga joylashishi mumkin edi, lekin men ESP-01 moduli mos bo'lishi uchun bo'rtma hosil qilish uchun qopqog'ini biroz qizdirishim kerak edi.

4-qadam: ESP-01 miltillovchi

Ushbu bosqichda biz ESP-01-ni arduino eskiz bilan yondiramiz. Agar siz hech qachon ESP-01 modulini yoqmagan bo'lsangiz, boshlash uchun siz mening ko'rsatmalarimga amal qilishingiz mumkin:

Siz mening eskizimni github sahifamdan topishingiz mumkin:

Eskizda hech bo'lmaganda uy tarmog'iga/sozlamalariga tegishli quyidagi ma'lumotlarni o'zgartirish kerak:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Mening uy tarmog'imda menda 2 xil SSID uzatiladigan 2 xil kirish nuqtasi bor va bu eskiz agar joriy AP bilan aloqa uzilgan bo'lsa, keyingi SSIDga ulanish orqali ko'paytirishga imkon beradi. Agar sizda faqat bitta SSID bo'lsa, ssid1 va ssid2 ni bir xil qiymat bilan to'ldiring.

O'zgartirish kiritilgandan so'ng, eskizni ESP-01-ga yuklang va ESP-01-ni interfeys platasiga ulang.

5 -qadam: Test sinovlari

Loyihamiz ishlayotganini tekshirish uchun tarmoqdagi MQTT xabarlarini kuzatish eng oson bo'ladi. Buning uchun siz chivin brokeriga SSH sessiyasini ochishingiz va quyidagi buyruqni berishingiz kerak:

chivin_sub -v -t '#'

Yuqoridagi buyruq bizga brokerga kelgan barcha MQTT xabarlarini ko'rish imkonini beradi.

Endi bizning davramizni quvvatlantiring va agar hamma narsa ishlasa, bir necha soniyadan so'ng siz hech bo'lmaganda quyidagi MQTT xabarini ko'rishingiz kerak:

stat/SumpWaterSensor/LWT Online

Endi suv sensorini 2 ta sezgich simini bir stakan suvga botirib tekshiring va siz quyidagi xabarni ko'rasiz:

tel/SumpWaterSensor Ho'l

Va agar siz simlarni suvdan chiqarsangiz, siz quyidagi xabarni ko'rishingiz kerak:

tele/SumpWaterSensor DRY

Agar siz bu xabarlarni ko'rsangiz, sizning loyihangiz muvaffaqiyatli bo'ladi.

Men eskizda siz foydalanishingiz mumkin bo'lgan bir nechta foydali MQTT mavzularini qo'shdim:

"stat/SumpWaterSensorInfo": bu xabar ish vaqti va boshqa ma'lumotlarni berish uchun har daqiqada yuboriladi.

"cmnd/SumpWaterSensorInfo": ESP-01, agar bu mavzuni '1' (ascii = 49) qiymati bilan qabul qilsa, ma'lumot yuboradi.

"cmnd/SumpWaterSensorCPUrestart": ESP-01, agar bu mavzuni '1' (ascii = 49) qiymati bilan qabul qilsa, qayta boshlanadi.

"cmnd/SumpWaterSensorBeep": ESP-01, agar bu mavzuni '1' (ascii = 49) qiymati bilan qabul qilsa, karnay ovozini chiqaradi.

"cmnd/SumpWaterSensorBeepFreq": karnay signalining chastotasini o'rnatadi, standart = 900 (Gts)

"cmnd/SumpWaterSensorDebug": ketma -ket disk raskadrovka darajasini yoqish va sozlash (standart 0 - disk raskadrovka yo'q)

6 -qadam: Sensorni o'rnating

Sensorni o'rnating
Sensorni o'rnating
Sensorni o'rnating
Sensorni o'rnating

Mening arizamda, men quduq nasos ichidagi suv sathini kuzatib borishni va agar quduq nasosining suzuvchi kaliti ustidan suv yetib kelsa, bu haqda menga xabar bermoqchiman, demak, mening nasos ishlamayapti. Men simlarni o'tkazdim va drenaj trubkasi bo'ylab mahkamlash uchun simli bog'lamlardan foydalandim.

7 -qadam: Yakuniy teginish

Yakuniy teginish
Yakuniy teginish

Endi bizda loyiha bor va MQTT xabarini brokerga e'lon qila olamiz, keyingi qadam - bu bilan nima qilish kerakligi haqida o'ylash.

Men o'z loyihamda "tele/SumpWaterSensor" MQTT mavzusini tinglash/obuna bo'lish va suv aniqlansa, bir nechta google uy dinamiklariga xabar berish uchun Node-RED-dan foydalanaman. Bunga qo'shimcha ravishda, men android telefonimga xabar yuborish uchun oqimni tugmachali tugun bilan bog'ladim.

Men sensorning holatini ko'rish uchun veb-old panelni yaratdim (yoqish/oflayn, ish vaqti va boshqalar). Ba'zida men ko'rardimki, u 1 hafta ichida bir necha marta oflayn rejimga o'tadi, statistik ma'lumotlarga ko'ra, ko'p hollarda bu ESP-01 Wi-Fi yoki MQTT-dan uzilganligi bilan bog'liq. Xavotir olmang, mening eskizim ESP-01ni qayta ishga tushirish tartibini o'z ichiga oladi, agar u WIFI va/yoki MQTT brokeriga ulanishni davom ettirmasa.

Bu qadamdagi rasmda buni amalga oshirish uchun Node-RED oqimi ko'rsatilgan. Siz shuningdek, mening github sahifasidagi oqimni Node-RED-ga joylashtirishingiz mumkin:

Google uyi haqidagi e'lon bu loyihaning birgina namunasidir, lekin menimcha, bu eng foydali va amaliy. Siz har doim boshqa MQTT tinglovchisi bilan bog'lanishingiz yoki hatto IFTTT yordamida suv aniqlanganda boshqa qurilmalarni haydashingiz mumkin.

Maza qiling…

Tavsiya: