Mundarija:

Uy avtomatizatsiyasi, WiFi va ESP-NOW bilan ishlaydigan batareyali eshik sensori: 5 qadam (rasmlar bilan)
Uy avtomatizatsiyasi, WiFi va ESP-NOW bilan ishlaydigan batareyali eshik sensori: 5 qadam (rasmlar bilan)

Video: Uy avtomatizatsiyasi, WiFi va ESP-NOW bilan ishlaydigan batareyali eshik sensori: 5 qadam (rasmlar bilan)

Video: Uy avtomatizatsiyasi, WiFi va ESP-NOW bilan ishlaydigan batareyali eshik sensori: 5 qadam (rasmlar bilan)
Video: Как сделать 2-канальное реле Wi-Fi ESP8266 ESP-01 | ESP-01 Домашняя автоматизация | УдаленныйXY 2024, Noyabr
Anonim
Image
Image

Bu yo'riqnomada men sizga uy avtomatizatsiyasi bilan batareyali eshik sensori qanday yasaganimni ko'rsataman. Men boshqa yaxshi sensorlar va signalizatsiya tizimlarini ko'rdim, lekin men buni o'zim qilmoqchi edim.

Mening maqsadlarim:

  • Eshik tez ochilishini aniqlaydigan va xabar beradigan sensor (<5 soniya)
  • Eshik yopilishini aniqlaydigan sensor
  • Batareya bilan ishlaydigan va bir necha oy batareyada ishlaydigan sensor

Uskuna va dasturiy ta'minot ilhomlangan

  • Kevin Darraning taxtasi (TPL5111 va TPS73733).
  • Bu video

Men old va orqa eshiklar uchun sensor yasadim. Yagona farq - bu LED pozitsiyasi va tashqi quvvat tugmasi (orqa eshik sensori).

Men apparat va dasturiy ta'minotni ishlab chiqish jarayonida bir nechta yaxshilanishlarni amalga oshirdim, buni fotosuratlarda ko'rish mumkin.

Ta'minotlar

Men Aliexpress -dan elektron komponentlarni sotib oldim, asosiy qismlari:

  • LiPo batareyasi
  • TPS73733 LDO
  • TPL5111
  • Qamish kaliti
  • P kanalli mosfet: IRLML6401TRPBF
  • Magnit
  • SMD komponentlari uchun PCB adapter plitasi va boshqalar.

1 -qadam: Uskuna - O'chirish

Uskuna - davr
Uskuna - davr
Uskuna - davr
Uskuna - davr
Uskuna - davr
Uskuna - davr

Zanjir uchun biriktirilgan sxemalarga qarang. Men SMD qismlarini moslashtirilgan PCB plastinkasiga lehimladim va barcha komponentlarni ikki tomonlama perfli taxtaga lehimladim. Men ESP-01 ni ayol sarlavhalar orqali uladim, shuning uchun uni ushbu yo'riqnomaning 3-bosqichida ko'rsatilgan adapter orqali dasturlash uchun olib tashlashim mumkin edi.

Zanjir quyidagicha ishlaydi:

  • Eshik ochilganda, TPL5111 DELAY/M_DRV piniga o'q oladi va ESP-01ni quvvatlaydigan TPS73733 LDO ni yoqadi. Ushbu operatsiyani bajarish uchun EN/ONE_SHOT pastga tortilishi kerak, TPL5111 ma'lumotlar jadvaliga qarang.
  • Dastur ishga tushgandan so'ng ("Dasturiy ta'minot" bo'limiga qarang), ESP-01 TPL5111 ga Bajarildi signalini yuboradi, so'ngra TPS73733ni o'chirib qo'yadi, natijada TPL5111 va TPS73733 uchun quvvat juda past bo'ladi.

Men NO va NC ulanishlari bilan qamish kalitlarini ishlataman. Men bosim o'tkazgichini uladim, chunki qamish kaliti magnit chiqarilganda (eshik ochilganda) o'chirilishi va magnit yaqinida (eshik yopiq) ochilishi kerak.

Orqa eshik sensori uchun ba'zi bir beqarorliklarni aniqlaganimda, men kondensatorlar va rezistorlar qo'shdim, biroq, keyinroq aniqlaganimdek, bu dasturiy ta'minot (esp_now_init) sabab bo'ldi.

2 -qadam: Uskuna - korpus

Uskuna - korpus
Uskuna - korpus
Uskuna - korpus
Uskuna - korpus
Uskuna - korpus
Uskuna - korpus

Men Autodesk Fusion360 korpusini loyihalashtirdim, bu videodan "shveytsarcha aksentli yigit" dan ilhomlangan.

STL fayllari uch qismdan iborat:

  • Quti
  • Qopqoq
  • Magnit ushlagichi

Mening Thingiverse sahifamda e'lon qilingan.

3 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Dastur mening Github -da.

Dasturning oqimi rasmda ko'rsatilgan. ESP-NOW-dan qanday foydalanishimni tushuntirish uchun boshqa yo'riqnomamga qarang.

Modul yoqilganda, u birinchi navbatda ESP-NOW orqali "OPEN" xabarini yuborishga harakat qiladi. Agar bu bajarilmasa, u WiFi va MQTT ulanishiga o'tadi.

Men bildimki, hech bo'lmaganda men o'rnatganimda "Yopiq" xabari ESP-NOW orqali muvaffaqiyatli yuborilmagan, shuning uchun men uni dasturdan olib tashladim va faqat WiFi va MQTT-dan foydalanardim.

Eshik ochilganda va modul eshik yopilishini kutayotganda, u bu vaqtni WiFi va MQTT -ga ulanish uchun ishlatadi, shuning uchun eshik yopilganda faqat o'lchangan kuchlanish va Yopiq xabarni yuborishi kerak. u to'g'ridan -to'g'ri uyquga ketadi.

Dastur yopilgan xabarni qabul qiluvchining to'g'ri mavzu bo'yicha MQTT xabarini tinglash orqali qabul qilishini tekshiradi.

4 -qadam: Uyni avtomatlashtirish va Telegram

Uy avtomatizatsiyasi va Telegram
Uy avtomatizatsiyasi va Telegram
Uy avtomatizatsiyasi va Telegram
Uy avtomatizatsiyasi va Telegram
Uy avtomatizatsiyasi va Telegram
Uy avtomatizatsiyasi va Telegram

Mening eshik sensorlarim Raspberry Pi Zero -dagi Openhab uy avtomatizatsiyasi bilan aloqa o'rnatadi.

Asosiy ilovalar:

  • Eshik holatini o'qing: Ochiq yoki Yopiq.
  • Agar eshik ochilsa (signal yoqilgan yoki Monitor funksiyasi yoqilgan bo'lsa) telegram orqali meni ogohlantirsin.
  • Oxirgi marta eshik ochilganda yoki yopilganda o'qing.
  • Batareya tugashidan oldin eshik sensori qancha teshik ochishi mumkinligini hisoblang.

Misol uchun, agar biz ta'tilda bo'lsak va qo'shnimiz o'simliklarni sug'orishga kirsa, menga xabar keladi. Kirish qismidagi videoni ko'ring.

Mening Openhab elementlari, qoidalari va sayt xaritasi fayllari mening Github -da. Bu fayllarda siz shuningdek, qulf ochilishida oddiy simli qamish kalitini va 3D printerdan kichik kontaktli (tugmachali) kalitni ishlatadigan shiyponning eshik sensori bilan tanishishingiz mumkin (rasmlarga qarang).

Openhab -da Telegram -dan qanday foydalanish bu erda tasvirlangan.

5 -qadam: takomillashtirish va yanada takomillashtirish

Yaxshilashlar va takomillashtirish
Yaxshilashlar va takomillashtirish
Yaxshilashlar va takomillashtirish
Yaxshilashlar va takomillashtirish

O'tgan oylarda men quyidagi yaxshilanishlarni qildim.

Uzoq eshik teshiklarini o'z-o'zidan o'tuvchi impulsli signal orqali boshqaring

Yozda, biz uyda bo'lganimizda, orqa eshikni bir necha soat ochiq qoldiramiz. Wi-Fi ulanishi bilan ishlaydigan ESP-01 batareyani keraksiz tugatadi. Shunday qilib, men ushbu holatlarda modulni o'chirib qo'yish uchun yoqish/o'chirish tugmachasini qo'shdim.

Biroq, bu ba'zida doimiy o'chirilgan modulga (men uni yoqishni unutganimda) va ochilgan eshik va ishlaydigan modulning bir necha peshindan keyin zaryadsizlangan batareyasiga olib keldi (men uni o'chirishni unutganimda).

Shunday qilib, men modul oldindan belgilangan vaqt (1 daqiqa) yoqilgandan so'ng, dasturiy ta'minot orqali modulni o'chirishni xohlardim.

Biroq, ESP-01 ning "BILDI" zarbasi eshik yopilganda TPL5111ni o'chirib qo'yganida, men bildimki, TPL5111 "BILDI" zarbasi bilan almashtirilmagan, DELAY/M_DRV pimi yuqori. DELAY/M_DRV pinidagi bu YUQOR signal ochilgan eshik va batareyaning kuchlanishiga ulangan qamish tugmachasining NC kontaktidan kelib chiqqan.

Shunday qilib, DELAY/M_DRV piniga signal uzluksiz yuqori bo'lmasligi kerak, lekin pulsli bo'lishi kerak. TPL5111 ma'lumotlar jadvalida uning zarbasi> 20 ms bo'lishi kerakligini topishingiz mumkin. Men bu o'z-o'zidan o'tuvchi signalni P-kanalli mosfet, kondansatör va 10K va 300K qarshilik orqali qildim, berilgan sxemaga qarang.

Bu quyidagicha ishlaydi:

  • Agar qamish tugmachasining NC kontaktlari yopilsa, darvoza past bo'ladi va Mosfet yoqiladi, natijada DELAY/M_DRV pinida yuqori signal paydo bo'ladi, bu modulni faollashtiradi.
  • Kondensator tezda zaryadlanadi, buning natijasida eshikda kuchlanish kuchayadi.
  • Taxminan 20 msdan so'ng, eshikdagi kuchlanish batareya zo'riqishining 97% ni tashkil qiladi (300K/(300K+10K), bu yuqori va Mosfet o'chiriladi, natijada DELAY/M_DRV pinida LOW signal paydo bo'ladi.
  • DELAY/M_DRV pimi LOW bo'lsa, ESP-01 DONE signali modulning yopilishiga olib keladi.

Bu dasturiy ta'minotda amalga oshiriladi; Vaqt-tsikl nafaqat eshikning ochilganligini, balki modul juda uzoq vaqt yoqilmaganligini ham tekshiradi. Agar u juda uzoq vaqt yoqilsa, u NULL qiymatini e'lon qiladi (eshikning aniqlanmagan holati). Bu holda, men eshik ochilganmi yoki yopilganmi, bilmayman va men kirish qismida ko'rsatilgan barcha maqsadlarga erisha olmayman, lekin batareyaning ishlash muddati muhimroq va biz eshikni o'sha kuni yana ochamiz, natijada yopiq holat tasdiqlanadi. eshikdan.

Bu erda ishlatiladigan kuchlanish diapazoniga mos keladigan P-kanalli Mosfetdan foydalanish muhim. Mosfet - taxminan 3,8V kuchlanishli VGS -da - 0,2 V ga yaqin - to'liq o'chirilgan bo'lishi kerak. Men bir nechta Mosfetsni sinab ko'rdim va IRLML6401TRPBF bu maqsadda 10K va 300K rezistorlar bilan birgalikda yaxshi ishlashini aniqladim.. Taxminan 20 milodiy puls uzunligini olish uchun 1 uF kondansatör yaxshi ishlaydi. Kattaroq kondansatör uzoq pulsga olib keladi, bu kerak emas, chunki TPL5111 faollashtirilgan. Men kuchlanish va puls uzunligini tekshirish uchun DSO150 osiloskopidan foydalandim.

Rejalashtirilgan takomillashtirish: OTA yangilanishi

Men OTA yangilanishini quyidagi protsedura orqali kiritishni rejalashtirmoqdaman, u qisman joriy dasturiy ta'minotga kiritilgan

  • NodeRed -ning Openhab orqali men "yangilanish mavzusi" saqlangan "yangilanish" xabarini e'lon qilaman.
  • Agar modul yoqilgan bo'lsa va MQTT serveriga ulangan bo'lsa va "yangilanish mavzusi" ga obuna bo'lsa, u yangilanish xabarini oladi.
  • Yangilanish xabari modulni o'chirilishiga to'sqinlik qiladi va HTTPUpdateServer -ni ishga tushiradi.
  • HTTPUpdateServer veb -sayti orqali siz dasturiy ta'minotni yangilashingiz mumkin.
  • NodeRed -ning Openhab orqali men saqlangan "bo'sh" xabarni "mavzuni yangilash" ni e'lon qilaman.

Rejalashtirilgan takomillashtirish: uskunani oldindan belgilangan vaqtdan keyin o'chirish

Hozirgi sxemada men TPL5111 ning DELAY/M_DRV va GND o'rtasida 200K rezistordan foydalanaman. Bu modulni 2 soatdan ko'proq yoqadi (TPL5111 ma'lumotlar jadvalining 7.5.3 -bandiga qarang). Ammo men modulni uzoq vaqt yoqilishini xohlamayman, chunki batareya zaryadsizlanadi. Agar dasturiy ta'minot echimi (yuqoriga qarang) modulni o'chira olmasa yoki yangilanish xabari kutilmaganda modulni yangilash rejimiga o'rnatsa, modul uzoq vaqt yoniq qoladi.

TPL5111 ning DELAY/M_DRV va GND o'rtasida kichikroq rezistorni ishlatgan ma'qul, shuning uchun modul qisqa vaqtdan so'ng o'chadi, masalan, 50K qarshilik 7 minutda ishga tushadi.

Tavsiya: