Mündəricat:

Ev avtomatlaşdırma inteqrasiyası, WiFi və ESP-NOW ilə akkumlyatorla işləyən qapı sensoru: 5 addım (şəkillərlə)
Ev avtomatlaşdırma inteqrasiyası, WiFi və ESP-NOW ilə akkumlyatorla işləyən qapı sensoru: 5 addım (şəkillərlə)

Video: Ev avtomatlaşdırma inteqrasiyası, WiFi və ESP-NOW ilə akkumlyatorla işləyən qapı sensoru: 5 addım (şəkillərlə)

Video: Ev avtomatlaşdırma inteqrasiyası, WiFi və ESP-NOW ilə akkumlyatorla işləyən qapı sensoru: 5 addım (şəkillərlə)
Video: Zigbee Dual Sided DC Energy Monitor MSH - DC UPS-in Home Assistant-a inteqrasiyası 2024, Iyul
Anonim
Image
Image

Bu təlimatda sizə ev avtomatlaşdırma inteqrasiyası ilə batareya ilə işləyən qapı sensoru necə hazırladığımı göstərirəm. Başqa gözəl sensorlar və siqnalizasiya sistemləri gördüm, amma özüm etmək istədim.

Məqsədlərim:

  • Qapının sürətlə açıldığını aşkarlayan və bildirən sensor (<5 saniyə)
  • Qapının bağlanmasını təyin edən sensor
  • Batareya ilə işləyən və bir neçə ay batareyada işləyən bir sensor

Təchizat və proqram təminatı ilhamlanır

  • Kevin Darrahın tətik paneli (TPL5111 və TPS73733).
  • Bu video

Ön və arxa qapılarım üçün sensor hazırladım. Yeganə fərq, LED mövqeyi və xarici güc açarıdır (arxa qapı sensöründə).

Fotoşəkillərdə göründüyü kimi, hardware və proqram təminatını inkişaf etdirərkən bir neçə təkmilləşdirmə etdim.

Təchizat

Aliexpress -dən elektron komponentləri aldım, əsas hissələr:

  • LiPo batareyası
  • TPS73733 LDO
  • TPL5111
  • Qamış açarı
  • P kanallı mosfet: IRLML6401TRPBF
  • Maqnit
  • SMD komponentləri və digərləri üçün PCB adapter plitəsi.

Addım 1: Hardware - Circuit

Avadanlıq - Dövrə
Avadanlıq - Dövrə
Avadanlıq - Dövrə
Avadanlıq - Dövrə
Avadanlıq - Dövrə
Avadanlıq - Dövrə

Dövrə üçün əlavə edilmiş sxemlərə baxın. SMD hissələrini bir adapter PCB lövhəsinə lehimlədim və bütün komponentləri iki tərəfli bir lövhəyə lehimlədim. ESP-01-i qadın başlıqları ilə bağladım, ona görə də bu Təlimatın 3-cü addımında göstərilən adapter vasitəsilə proqramlaşdırmaq üçün onu silə bilərdim.

Dövrə aşağıdakı kimi işləyir:

  • Qapı açıldıqda, TPL5111 DELAY/M_DRV pinindən bir atış alır və ESP-01-ə güc verən TPS73733 LDO-nu işə salır. Bu əməliyyat üçün EN/ONE_SHOT aşağı çəkilməlidir, TPL5111 məlumat cədvəlinə baxın.
  • Proqram işə salındıqdan sonra (Proqram Proqramına baxın), ESP-01 TPL5111-ə Bitti siqnalı göndərir, sonra TPS73733-ü söndürür və nəticədə TPL5111 və TPS73733 üçün çox aşağı enerji vəziyyəti yaranır.

Həm NO, həm də NC əlaqəsi olan qamış açarları istifadə edirəm. NC telini bağladım, çünki qamış açarı maqnit çıxarıldıqda (qapı açıq) dövrəni bağlamalı və maqnit yaxın olduqda (qapı bağlı) açılmalıdır.

Arxa qapı sensoru üçün bəzi qeyri -sabitliklər aşkar etdikdə bəzi kondensatorlar və rezistorlar əlavə etdim, lakin qeyri -sabitliyə daha sonra kəşf etdiyim proqram (esp_now_init) səbəb oldu.

Addım 2: Avadanlıq - Qoruyucu

Avadanlıq - Qoruyucu
Avadanlıq - Qoruyucu
Avadanlıq - Qoruyucu
Avadanlıq - Qoruyucu
Avadanlıq - Qoruyucu
Avadanlıq - Qoruyucu

"İsveçrə aksanı olan adam" bu videodan ilham alaraq Autodesk Fusion360 -da dizayn etdim.

Üç hissədən ibarət olan STL faylları:

  • Qutu
  • Qapaq
  • Maqnit tutacağı

Thingiverse səhifəmdə dərc olunur.

Addım 3: Proqram təminatı

Proqram təminatı
Proqram təminatı

Proqram Github -da.

Proqramın hərəkəti şəkildə göstərilmişdir. ESP-NOW-dan necə istifadə etdiyimi izah etmək üçün digər Təlimat kitabına baxın.

Modul işə salındıqda ilk olaraq ESP-NOW vasitəsilə 'AÇ' mesajını göndərməyə çalışır. Bu müvəffəqiyyətsiz olarsa, WiFi və MQTT bağlantısına keçir.

Ən azı quruluşumda 'QAPALI' mesajının ESP-NOW vasitəsilə uğurla göndərilmədiyini bildim, buna görə də bunu proqramdan sildim və yalnız WiFi və MQTT istifadə etdim.

Qapının açıldığı və modulun qapının bağlanmasını gözlədiyi müddətdə, WiFi və MQTT -ə qoşulmaq üçün bu vaxtdan istifadə edir, buna görə də qapı bağlandıqda yalnız ölçülmüş gərginliyi və QAPALI mesajı göndərməlidir. birbaşa yuxuya gedir.

Proqram, qapalı mesajın alıcı tərəfindən doğru mövzuda bir MQTT mesajını dinləməklə qəbul edilib -edilmədiyini yoxlayır.

Addım 4: Ev Otomasyonu və Telegram

Ev Avtomatlaşdırılması və Telegram
Ev Avtomatlaşdırılması və Telegram
Ev Avtomatlaşdırılması və Telegram
Ev Avtomatlaşdırılması və Telegram
Ev Avtomatlaşdırılması və Telegram
Ev Avtomatlaşdırılması və Telegram

Qapı sensorlarım Raspberry Pi Zero üzərindəki Openhab Ev Avtomatlaşdırma ilə əlaqə qurur.

Əsas tətbiqlər:

  • Qapının vəziyyətini oxuyun: AÇIQ və ya QAPALI.
  • Bir qapı açılarsa (Siqnal aktivdirsə və ya Monitor funksiyası aktivdirsə) məni teleqram vasitəsilə həyəcanlandırın.
  • Sonuncu dəfə bir qapının açıldığını və ya bağlandığını oxuyun.
  • Batareya bitmədən bir qapı sensorunun işləyə biləcəyi açılışların sayını hesablayın.

Məsələn, tətildə olsaq və qonşu bitkiləri sulamağa girərsə, bir mesaj alıram. Girişdəki videoya baxın.

Openhab maddələrim, qaydalarım və sayt xəritəsi sənədlərim Githubumdadır. Bu sənədlərdə, adi bir simli qamış açarı və kilid açılışında 3D printerdən kiçik bir kontakt (uc) açarı istifadə edən tökmə qapı sensorumuzu da görə bilərsiniz (şəkillərə baxın).

Openhab -da Telegram hərəkətinin necə istifadə ediləcəyi burada təsvir edilmişdir.

Addım 5: Təkmilləşdirmələr və Əlavə Təkmilləşdirmələr

Təkmilləşdirmələr və əlavə təkmilləşdirmələr
Təkmilləşdirmələr və əlavə təkmilləşdirmələr
Təkmilləşdirmələr və əlavə təkmilləşdirmələr
Təkmilləşdirmələr və əlavə təkmilləşdirmələr

Son aylarda aşağıdakı təkmilləşdirməni etdim.

Uzun qapı deliklərini öz-özünə keçən bir nəbz siqnalı ilə idarə edin

Yaz aylarında, evdəykən arxa qapını bir neçə saat açıq buraxırıq. WiFi bağlantısı olan çalışan ESP-01, batareyanı lazımsız yerə boşaldır. Bu vəziyyətdə modulu söndürmək üçün açma/söndürmə açarı daxil etdim.

Ancaq bu, bəzən açılan bir qapı və işləyən bir moduldan bir neçə gün sonra (söndürməyi unutduğumda) birdəfəlik söndürülmüş bir modul (açmağı unutduğum zaman) və batareyasının boşalması ilə nəticələndi.

Bu səbəbdən, modul əvvəlcədən təyin edilmiş bir müddət (1 dəqiqə) işə salındıqdan sonra proqram vasitəsilə modulu söndürmək istədim.

Bununla birlikdə, ESP-01-in "DONE" nəbzi TPL5111-i qapı bağlandıqda söndürdükdə, DELAY/M_DRV pininin YÜKSƏK olduğu halda TPL5111-in "BİTMƏDİ" nəbzi ilə açılmadığını öyrəndim. DELAY/M_DRV pinindəki bu YÜKSƏ siqnalı, açılan qapı və batareya gərginliyinə bağlı olan qamış açarının NC kontaktından qaynaqlanır.

Beləliklə, DELAY/M_DRV pininə olan siqnal davamlı olaraq YÜKSƏK olmamalı, əksinə nəbzli olmalıdır. TPL5111 məlumat cədvəlində> 20 ms nəbzinin olması lazım olduğunu görə bilərsiniz. Bu öz-özünə keçid siqnalını bir P kanallı mosfet, bir kondansatör və 10K və 300K rezistor vasitəsilə etdim, daxil olan sxemə baxın.

Aşağıdakı kimi işləyir:

  • Qamış açarının NC kontağı bağlanarsa, Qapı DÜŞÜK və Mosfet AÇILDI, nəticədə modulu işə salan DELAY/M_DRV pinində YÜKSƏK siqnal yarandı.
  • Kondansatör tez bir zamanda doldurulur, bu da Gate -də gərginliyin artmasına səbəb olur.
  • Təxminən 20 ms sonra, Gate üzərindəki gərginlik batareya gərginliyinin 97% -ni təşkil edir (300K/(300K+10K) YÜKSEKdir və Mosfet söndürülür, bu da DELAY/M_DRV pinində LOW siqnalına səbəb olur.
  • DELAY/M_DRV pimi LOW olduqda ESP-01-in DONE siqnalı modulun bağlanması ilə nəticələnir.

Bu proqramda tətbiq olunur; bir müddət döngəsi nəinki qapının hələ açıldığını yox, həm də modulun çox uzun müddət açılmadığını yoxlayır. Çox uzun müddət açıldıqda NULL dəyərini (qapının təyin olunmamış vəziyyəti) dərc edir. Bu vəziyyətdə qapının açılıb -açılmadığını bilmirəm və girişdə göstərilən bütün məqsədlərə çatmıram, amma batareyanın ömrü daha vacibdir və əksər hallarda həmin gün qapını yenidən açırıq ki, bu da təsdiqlənmiş qapalı vəziyyətlə nəticələnir. qapının.

Burada istifadə olunan gərginlik aralığına uyğun olan P kanallı Mosfetdən istifadə etmək vacibdir. Mosfet - təxminən 3.8V VGS -də tamamilə açılmalı və təxminən -0.2 V -lik VGS -də tamamilə söndürülməlidir. Bir neçə Mosfets sınamışam və IRLML6401TRPBF -in 10K və 300K rezistorlarla birlikdə bu məqsəd üçün yaxşı işlədiyini öyrənmişəm.. Təxminən 20 ms pulse uzunluğunu əldə etmək üçün 1 uF kondansatör yaxşı işləyir. Daha böyük bir kondansatör, TPL5111 aktivləşdirildiyi üçün zəruri olmayan daha uzun bir nəbzlə nəticələnir. Gərginliyi və pulse uzunluğunu yoxlamaq üçün DSO150 osiloskopumdan istifadə etdim.

Planlaşdırılan təkmilləşdirmə: OTA yeniləməsi

Artıq qismən mövcud proqrama daxil olan aşağıdakı prosedur vasitəsilə OTA yeniləməsini daxil etməyi planlaşdırıram

  • NodeRed -in Openhab vasitəsi ilə saxlanılan 'yeniləmə' mesajını 'yeniləmə mövzusu' olaraq yayımlayıram.
  • Modul işə salınsa və MQTT serverinə qoşulsa və 'yeniləmə mövzusuna' abunə olsaydı, yeniləmə mesajını alır.
  • Yeniləmə mesajı modulun sönməsini maneə törədir və HTTPUpdateServer -i işə salır.
  • HTTPUpdateServer veb saytı vasitəsi ilə proqramı yeniləyə bilərsiniz.
  • NodeRed -in Openhab vasitəsi ilə saxlanılan 'boş' bir mesajı 'yeniləmə mövzusu' olaraq yayımlayıram.

Planlaşdırılan təkmilləşdirmə: əvvəlcədən təyin olunmuş vaxtdan sonra aparatın bağlanması

Mövcud sxemdə, TPL5111 -in DELAY/M_DRV və GND arasında 200K müqavimət istifadə edirəm. Bu, modulu 2 saatdan çox işə salır (bax TPL5111 məlumat cədvəlinin 7.5.3.). Ancaq modulun bu qədər uzun müddət açılmasını istəmirəm, çünki sonra batareya boşalır. Proqram həlli (yuxarıya bax) modulu söndürə bilmirsə və ya istənməyən yeniləmə mesajı modulu yeniləmə rejiminə qoyarsa, modul uzun müddət açıq qalır.

Buna görə TPL5111 -in DELAY/M_DRV və GND arasında daha kiçik bir rezistor istifadə etmək daha yaxşıdır, buna görə də modul qısa müddətdən sonra söndürülür, məsələn, 50K rezistor 7 dəqiqə ərzində işə düşür.

Tövsiyə: