Mundarija:

MQTT/Google Home DoorBell ESP-01 yordamida: 6 qadam
MQTT/Google Home DoorBell ESP-01 yordamida: 6 qadam

Video: MQTT/Google Home DoorBell ESP-01 yordamida: 6 qadam

Video: MQTT/Google Home DoorBell ESP-01 yordamida: 6 qadam
Video: Создаю ИДЕАЛЬНУЮ панель управления умным домом! 2024, Noyabr
Anonim
ESP-01 yordamida MQTT/Google Home DoorBell qo'ng'irog'i
ESP-01 yordamida MQTT/Google Home DoorBell qo'ng'irog'i

Siz uy qo'ng'irog'ining jiringlashini eshitmaydigan uyning bir bo'lagida bo'lganingiz uchun eshik qo'ng'irog'ini bosgan mehmonga javob berishni sog'indingizmi? podval, yopiq eshikli yotoqxona yoki ehtimol siz televizor ko'rayotgandirsiz yoki musiqa tinglayotgandirsiz.

Agar men kabi, sizning uyingizda bir yoki bir nechta Google uy dinamiklari bo'lsa, bu sizga kerak bo'lishi mumkin.

Bu yo'riqnomada men sizga MQTT brokeriga NodeRED yordamida google home / pushbullet orqali xabar berish uchun MQTT mijozini mavjud eshik qo'ng'irog'iga qanday qo'shish kerakligini ko'rsataman. Bu loyiha na qo'ng'iroqni, na qo'ng'iroqni almashtiradi. Hali ham eshik qo'ng'irog'i uchun oddiy mexanik tugma ishlatiladi.

Biz ESP-01 modulini MQTT brokeriga xabar yuborish uchun MQTT funksiyasini qo'shib, mavjud 16VAC eshik qo'ng'irog'i tizimiga qo'shamiz (qo'ng'iroq tugmasi bosilganda). MQTT brokeri xabarni NodeREDga uzatadi. MQTT xabarini olgandan so'ng, NodeRED bir nechta Google uy qurilmalariga xabar yuboradi va ixtiyoriy ravishda pushbullet orqali uyali telefon/brauzerga xabar yuboradi.

Menda DIY avtomatlashtirishga bo'lgan ishtiyoqim bor va asta -sekin uyimga IOT qo'shaman. Google home - bu mening uyimni avtomatlashtirishning asosiy vazifalaridan biri.

O'g'lim menga loyiha g'oyasini berdi, agar u har safar kimdir eshik qo'ng'irog'ini jiringlasa, google -ni e'lon qila olamanmi, deb so'radi. Bizda 2 qavatli + podvalli uy bor, va biz ko'p marta podvalda yoki yuqori qavatda, eshiklari yopiq yoki televizorli yotoqxonada jiringlayotganini eshitmaganmiz.

Bizning uyimizda har xil joylarga/xonalarga joylashtirilgan 4 ta google home mini bor, va agar qo'ng'iroqni e'lon qilish uchun google uylaridan foydalansak, kimdir qo'ng'iroq qilsa, biz darhol uyning istalgan joyidan bilamiz.

Uyimda men Mosquitto MQTT serveri va NodeREDni joylashtirish uchun RaspberryPi ZeroW -dan foydalanaman. U bir yildan ortiq ishlamayapti.

Manbalar:

  • Eshik qo'ng'irog'ini ulash sxemalari:
  • Raspberry Pi-ga Mosquitto MQTT brokerini o'rnating:
  • NodeRED -ni Raspberry Pi -ga o'rnating:

1-qadam: ESP-01 interfeysi va eshik qo'ng'irog'ining sxemasini yarating

ESP-01 interfeysi va eshik qo'ng'irog'ini yaratish
ESP-01 interfeysi va eshik qo'ng'irog'ini yaratish
ESP-01 interfeysi va eshik qo'ng'irog'ining sxemasini yarating
ESP-01 interfeysi va eshik qo'ng'irog'ining sxemasini yarating
ESP-01 interfeysi va eshik qo'ng'irog'ining sxemasini yarating
ESP-01 interfeysi va eshik qo'ng'irog'ining sxemasini yarating

Birinchi qadam, ESP-01 va Door Chime o'rtasidagi interfeys bo'ladigan sxemani yaratish bo'ladi. Birinchi fotosuratda ko'rsatilgandek, "TRANS (oldingi)" va "FRONT/ARKA" pinlari o'rtasida 16VAC bo'lsa, odatdagi eshik jiringlashi faollashadi. Eshik qo'ng'irog'i tugmachasi bosilganda, bu pinlarda kuchlanish paydo bo'ladi.

Men yaratgan sxema - bu 16VAC signalini sezish va uni taxminan 3.3VDC raqamli signalga aylantirish. Bu D1 va C1 tomonidan yaratilgan yarim to'lqinli asosiy rektifikator. Bunday vaziyatda bizga to'lqinli rektifikator kerak emas, chunki shahar chiqishiga juda kam yuk tushadi, bu esa bizni bortda bir oz ko'chmas mulkni tejaydi. Men taxtani iloji boricha kamroq qilishni xohlayman, shunda men uni mavjud qo'ng'iroqqa joylashtiraman.

R1 va R2 doimiy voltajni 3,3 V ga tushirish uchun kuchlanish bo'luvchi hosil qiladi.

R3, TR1 va R4 ESP-01 GPIO-2 uchun teskari mantiqni ta'minlash uchun inverterni tashkil qiladi. Bu yuklash paytida (R4 va R5 tortish moslamalari bilan) ESP-01 fleshdan yuklanishi uchun yuqori mantiqni ta'minlash uchun kerak. Qo'ng'iroq tugmachasi bosilganda, u GPIO-2. TR1 ga LOW mantig'ini beradi, har qanday kichik quvvatli NPN tranzistor bo'lishi mumkin, men 2N3904 ishlatganman.

V1 3.3VDC quvvat manbai bo'lib, men 5V eski AMS1117 3.3VDC regulyatori bilan jihozlangan eski 5V zaryadlovchidan foydalanganman, men keyingi bosqichda ko'rsataman.

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.

2-qadam: ESP-01 uchun 3.3VDC quvvat manbai

ESP-01 uchun 3.3VDC quvvat manbai
ESP-01 uchun 3.3VDC quvvat manbai
ESP-01 uchun 3.3VDC quvvat manbai
ESP-01 uchun 3.3VDC quvvat manbai
ESP-01 uchun 3.3VDC quvvat manbai
ESP-01 uchun 3.3VDC quvvat manbai

Ushbu bosqichda biz ESP-01 uchun 3.3VDC quvvat manbaini quramiz. Menda bir necha eski 500mA va 700mA 5VDC USB zaryadlovchi adapteri bor, men bu loyihani qayta ishlab chiqdim. 5V kuchlanishni 3,3V ga tushirish uchun bizga 3.3VDC regulyatori kerak, buning uchun men ebaydan sotib olgan AMS1117 asosidagi arzon oldindan qurilgan regulyator modulidan foydalanayapman. Siz "3.3V AMS1117 moduli" ni qidirishingiz va sizga mos keladiganini topishingiz mumkin.

Bu 3,3V regulyator moduli juda kichik, men uni 5V USB zaryadlovchi qurilmasining asl korpusiga to'ldirishim mumkin, bu uni qisqa tutashuvdan xavfsizroq qiladi. Men zaryadlovchi modulidan AC devor tirnoqlarini olib tashladim va uning o'rniga 120VAC ga ulangan ikkita sim bilan almashtirdim. Ammo keyingi bosqichda test sinovlarini o'tkazmagunimizcha, bu pog'onadagi tirnoqlarni olib tashlamang.

Agar yaqinda devor rozetkasi bo'lsa yoki siz elektr ta'minotini to'g'ridan-to'g'ri uy simlariga ulashdan rozi bo'lmasangiz, ixtiyoriy ravishda o'zgartirilgan quvvat manbaini devor vilkasiga ulang va kabelni qo'ng'iroqqa ulang. to'g'ridan -to'g'ri uy simlariga ulash kabi toza ko'rinmasligi mumkin.

Mening qo'ng'irog'im orqasida 120VAC simlari va qo'ng'iroq uchun 16VAC transformator borligini ko'rish uchun mening rasmlarimdan biriga qarang.

3.3V regulyatoridan chiqish oldingi bosqichga muvofiq ESP-01 interfeys platasiga ulanadi.

3-qadam: ESP-01-ning yonib-o'chishi

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.

4 -qadam: Test sinovlari

Test yugurish
Test yugurish
Test yugurish
Test yugurish
Test yugurish
Test yugurish

1-bosqichdan boshlab biz ESP-01 interfeys platasini qurdik, 2-bosqichdan boshlab bizda ESP-01 platasi uchun 3,3V quvvat manbai mavjud. Endi biz quvvat manbai chiqishini V1 sifatida ko'rsatilgan sxemaga muvofiq taxtaga ulaymiz.

Endi keyingi qadam - Trans/Door jiringlagich terminallarini "Door Chim Terminallari" sifatida ko'rsatilgan interfeys platasi ulanishlariga ulash. Qo'ng'irog'im devorga baland o'rnatilgani uchun, sinovdan o'tishi uchun, men quvvat simini ulashim uchun qo'ng'iroq terminallaridan taxtaga vaqtincha uzun juft kabel o'tkazaman.

Bizning kelishuvimiz ishlayotganligini 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 quvvat manbaini rozetkaga ulang va agar hamma narsa ishlasa, bir necha soniyadan so'ng siz hech bo'lmaganda quyidagi MQTT xabarini ko'rishingiz kerak bo'ladi:

stat/DoorBell/LWT Online

Endi tashqariga chiqing va eshik qo'ng'irog'ini jiringlang va siz quyidagi xabarni ko'rasiz:

tele/eshik qo'ng'irog'i yoqilgan

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/DoorBellInfo": bu xabar ish vaqti va boshqa ma'lumotlarni berish uchun har daqiqada yuboriladi.

"cmnd/DoorBellInfo": ESP-01, agar bu mavzuni '1' (ascii = 49) "cmnd/DoorBellCPUrestart" qiymati bilan qabul qilsa, ma'lumot yuboradi: ESP-01, agar bu mavzuni '1 qiymati bilan qabul qilsa, qayta ishga tushadi. '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01, agar bu mavzuni' 1 '(ascii = 49) qiymati bilan qabul qilsa, asl holatiga qaytariladi.

"tele/FrontDoorBell": ESP-01, agar eshik qo'ng'irog'i bosilsa, "ON" qiymati bilan ushbu mavzu bo'yicha xabar yuboradi.

5 -qadam: Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish

Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish
Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish
Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish
Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish
Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish
Kengash va elektr ta'minotini qo'ng'iroqqa birlashtirish

Muvaffaqiyatli sinovdan o'tganimizdan so'ng, biz eshik qo'ng'irog'i jiringlagichi ichida (agar iloji bo'lsa) taxtani va elektr ta'minotini yig'ishimiz kerak. Hozirgi qo'ng'irog'imda bo'sh joy bor, men uni uzib qo'ydim va elektr ta'minotini shu bo'shliqqa joylashtirdim. ESP-01 taxtasi bu kichik maydonga mos kelmaydi, lekin baribir umumiy qo'ng'iroq qutisiga mos keladi. Men ESP-01 interfeys kartasini o'rnatish uchun faqat qalin ikki tomonlama lentani ishlatardim.

Endi biz USB zaryadlovchimizdan metall vilkalarni olib tashlashimiz va ularni uy kabellariga ulashimiz mumkin bo'lgan qalinroq kabel bilan almashtirishimiz mumkin. Qo'ng'iroq zanjirini elektr bilan ta'minlaydigan o'chirgichni o'chirib qo'yganingizga ishonch hosil qiling.

Agar bizning loyihamizni eshik eshigiga joylashtirish uchun joy etarli bo'lmasa, uni alohida qutiga solib, eshik ohangiga yaqin o'rnatishingiz kerak bo'ladi.

6 -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.

Loyihamda men MQTT eshik qo'ng'irog'ining mavzusini tinglash/unga obuna bo'lish va bir nechta google uy dinamiklariga e'lon qilish uchun Node-RED-dan foydalanaman. Bunga qo'shimcha ravishda, men oqimni android telefonimga xabar yuborish uchun tugmachali tugunga bog'ladim, shuning uchun men uyda bo'lmaganimda ham kimdir qo'ng'iroq qilsa, bilaman. Pushbullet xabarnomasi ba'zilar uchun foydali emas, lekin men uchun bir necha bor foydalidir, old kameramdagi videokamera bilan, etkazib berishni kim to'xtatganini ko'raman (ular odatda eshik qo'ng'irog'ini chalishadi). Men turli xil aralashuvlar, xususan daraxtlarning harakatlanuvchi soyalari tufayli kameraning harakatini aniqlash xususiyatiga ko'p tayana olmayman.

Bu qadamdagi rasmda buni amalga oshirish uchun Node-RED oqimi ko'rsatilgan. Siz shuningdek mening github sahifamdagi 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 boshqa qurilmalarni eshik qo'ng'irog'i bosilganda haydash uchun IFTTT -dan foydalanishingiz mumkin.

Maza qiling…

Tavsiya: