Obsah:

Bateriově napájený dveřní senzor s integrací domácí automatizace, WiFi a ESP-NYNÍ: 5 kroků (s obrázky)
Bateriově napájený dveřní senzor s integrací domácí automatizace, WiFi a ESP-NYNÍ: 5 kroků (s obrázky)

Video: Bateriově napájený dveřní senzor s integrací domácí automatizace, WiFi a ESP-NYNÍ: 5 kroků (s obrázky)

Video: Bateriově napájený dveřní senzor s integrací domácí automatizace, WiFi a ESP-NYNÍ: 5 kroků (s obrázky)
Video: FIBARO chytrý bateriový senzor na okna a dveře 2 (české titulky) 2024, Červenec
Anonim
Image
Image

V tomto pokynu vám ukážu, jak jsem vytvořil bateriový dveřní senzor s integrací domácí automatizace. Viděl jsem další pěkné senzory a poplašné systémy, ale chtěl jsem si je vyrobit sám.

Mé cíle:

  • Senzor, který detekuje a hlásí rychlé otevření dveří (<5 sekund)
  • Senzor, který detekuje zavírání dveří
  • Senzor, který je napájen baterií a běží několik měsíců na baterii

Hardware a software jsou inspirovány

  • Trigboard od Kevina Darraha (TPL5111 a TPS73733).
  • Tohle video

Vyrobil jsem senzor pro své přední dveře a zadní vrátka. Jediným rozdílem je poloha LED a externí vypínač (na senzoru zadních dveří).

Během vývoje hardwaru a softwaru jsem provedl několik vylepšení, je to vidět na fotografiích.

Zásoby

Koupil jsem elektronické součástky z Aliexpress, hlavní části:

  • LiPo baterie
  • TPS73733 LDO
  • TPL5111
  • jazýčkový spínač
  • P-kanálový mosfet: IRLML6401TRPBF
  • Magnet
  • Deska adaptéru desky plošných spojů pro součásti SMD a další.

Krok 1: Hardware - obvod

Hardware - obvod
Hardware - obvod
Hardware - obvod
Hardware - obvod
Hardware - obvod
Hardware - obvod

Viz přiložená schémata obvodu. SMD části jsem připájel na desku desky plošných spojů adaptéru a všechny součásti jsem připájel na oboustrannou desku perf. Připojil jsem ESP-01 přes zásuvku, takže jsem ji mohl odstranit a naprogramovat pomocí adaptéru zobrazeného v kroku 3 tohoto Instructable.

Obvod funguje následovně:

  • Když jsou dveře otevřeny, TPL5111 dostane výstřel na kolík DELAY/M_DRV a aktivuje TPS73733 LDO, který napájí ESP-01. Pro tuto operaci musí být EN/ONE_SHOT vytažen nízko, viz datový list TPL5111.
  • Po spuštění programu (viz krok Software), ESP-01 odešle signál Done na TPL5111, který pak deaktivuje TPS73733, což má za následek velmi nízký stav napájení pro TPL5111 a TPS73733.

Používám jazýčkové spínače s NO i NC připojením. Připojil jsem NC kabel, protože jazýčkový spínač musí uzavřít obvod, když je magnet vyjmutý (dveře otevřené) a otevřené, když je magnet blízko (dveře zavřené).

Když jsem objevil nějaké nestability, přidal jsem k zadnímu vrátku nějaký kondenzátor a odpory, ale nestabilitu způsobil software (esp_now_init), jak jsem zjistil později.

Krok 2: Hardware - příloha

Hardware - příloha
Hardware - příloha
Hardware - příloha
Hardware - příloha
Hardware - příloha
Hardware - příloha

Pouzdro jsem navrhl v aplikaci Autodesk Fusion360, inspirované tímto videem od „chlapa se švýcarským přízvukem“.

Soubory STL tří částí:

  • Krabice
  • Víčko
  • Magnetický držák

jsou zveřejněny na mé stránce Thingiverse.

Krok 3: Software

Software
Software

Program je v mém Githubu.

Průběh programu je zobrazen na obrázku. Viz můj další Instructable, kde je vysvětleno, jak používám ESP-NYNÍ.

Když je modul zapnutý, nejprve se pokusí odeslat zprávu „OTEVŘENO“prostřednictvím ESP-NYNÍ. Pokud se to nepodaří, přejde na připojení WiFi a MQTT.

Zjistil jsem, že alespoň v mém nastavení nebyla zpráva „ZAVŘENO“úspěšně odeslána prostřednictvím ESP-NOW, takže jsem to odstranil z programu a používám pouze WiFi a MQTT.

Během doby, kdy jsou dveře otevřeny a modul čeká na zavření dveří, využívá tento čas k připojení k WiFi a MQTT, takže když jsou dveře zavřené, musí odeslat pouze naměřené napětí a zprávu ZAVŘENO a poté jde to přímo spát.

Program zkontroluje, zda přijímač přijme uzavřenou zprávu prostřednictvím poslechu zprávy MQTT na správné téma.

Krok 4: Domácí automatizace a telegram

Domácí automatizace a telegram
Domácí automatizace a telegram
Domácí automatizace a telegram
Domácí automatizace a telegram
Domácí automatizace a telegram
Domácí automatizace a telegram

Moje dveřní senzory komunikují s mojí Openhab Home Automation na mém Raspberry Pi Zero.

Hlavní aplikace:

  • Přečtěte si stav dveří: OTEVŘENO nebo ZAVŘENO.
  • Alarmujte mě telegramem, pokud jsou otevřena dvířka (Je -li zapnutý Alarm nebo funkce Monitor).
  • Přečtěte si, kdy se naposledy otevřely nebo zavřely dveře.
  • Počítejte počet otvorů, které může snímač dveří zvládnout, než se baterie vybije.

Pokud jsme například na dovolené a soused přijde zavlažovat rostliny, přijde mi zpráva. Podívejte se na video v úvodu.

Moje položky, pravidla a soubory mapy webu Openhab jsou v mém Githubu. V těchto souborech můžete také vidět můj dveřní senzor přístřešku, který používá běžný drátový jazýčkový spínač a malý kontaktní (koncový) spínač z 3D tiskárny v otvoru zámku (viz obrázky).

Zde je popsáno, jak používat akci Telegram v Openhab.

Krok 5: Vylepšení a další vylepšení

Vylepšení a další vylepšení
Vylepšení a další vylepšení
Vylepšení a další vylepšení
Vylepšení a další vylepšení

V minulých měsících jsem provedl následující vylepšení.

Manipulujte s dlouhými dveřními otvory pomocí impulzního signálu s vlastním spínáním

V létě necháváme zadní vrátka několik hodin otevřená, když jsme doma. Běh ESP-01 s WiFi připojením by pak zbytečně vybíjel baterii. Proto jsem zahrnul vypínač/vypínač, abych mohl modul v těchto situacích vypnout.

To však někdy mělo za následek trvale vypnutý modul (když jsem jej zapomněl zapnout) a vybitou baterii po několika odpoledních hodinách otevřených dveří a spuštěného modulu (Když jsem ho zapomněl vypnout).

Proto jsem chtěl mít možnost vypnout modul prostřednictvím softwaru poté, co byl modul předdefinovaný čas (1 minuta) zapnutý.

Avšak tam, kde impuls „DONE“ESP-01 vypnul TPL5111, když byly dveře zavřené, zjistil jsem, že TPL5111 nebyl vypnut pulzem „DONE“, zatímco pin DELAY/M_DRV byl VYSOKÝ. Tento VYSOKÝ signál na pinu DELAY/M_DRV byl způsoben otevřenými dveřmi a rozpínacím kontaktem jazýčkového spínače připojeným k napětí baterie.

Signál na pinu DELAY/M_DRV by tedy neměl být nepřetržitě VYSOKÝ, ale měl by být pulzní. V datovém listu TPL5111 můžete zjistit, že by to měl být puls> 20 ms. Tento samopřepínací signál jsem vytvořil přes P-kanálový mosfet, kondenzátor a odpor 10K a 300K, viz přiložené schéma.

Funguje to následovně:

  • Pokud je NC kontakt jazýčkového spínače sepnutý, brána je NÍZKÁ a Mosfet je zapnutý, což má za následek VYSOKÝ signál na pinu ZPOŽDĚNÍ/M_DRV, který aktivuje modul.
  • Kondenzátor se rychle nabije, což má za následek rostoucí napětí na bráně.
  • Po přibližně 20 ms je napětí na bráně 97% napětí baterie (300 K/(300 K+10 K), což je VYSOKÉ a Mosfet je vypnutý, což má za následek NÍZKÝ signál na pinu DELAY/M_DRV.
  • Když je kolík DELAY/M_DRV NÍZKÝ, signál DONE zařízení ESP-01 způsobí vypnutí modulu.

To je implementováno v softwaru; while-loop nejen kontroluje, zda jsou dveře stále otevřené, ale také kontroluje, zda není modul příliš dlouho zapnutý. Pokud je zapnutý příliš dlouho, zveřejňuje hodnotu NULL (nedefinovaný stav dveří). V tomto případě nevím, zda jsou dveře otevřené nebo zavřené a nedosahuji všech cílů uvedených v úvodu, ale výdrž baterie je důležitější a většinou ten den dveře otevřeme znovu později, což má za následek potvrzený zavřený stav dveří.

Je důležité použít P-kanál Mosfet, který je vhodný pro zde používaný rozsah napětí. Mosfet musí být zcela zapnutý na VGS asi - 3,8 V a úplně vypnutý na VGS asi -0,2 V. Zkoušel jsem několik Mosfetů a zjistil jsem, že IRLML6401TRPBF funguje dobře pro tento cíl v kombinaci s rezistory 10K a 300K. Kondenzátor 1 uF funguje dobře, aby získal pulzní délku asi 20 ms. Větší kondenzátor má za následek delší puls, který není nutný, protože byl aktivován TPL5111. Pomocí osciloskopu DSO150 jsem zkontroloval napětí a pulzní sílu.

Plánované vylepšení: aktualizace OTA

Plánuji začlenit aktualizaci OTA pomocí následujícího postupu, který je již částečně součástí aktuálního softwaru

  • Prostřednictvím Openhab z NodeRed zveřejňuji zachovanou zprávu „aktualizace“a „téma aktualizace“.
  • Pokud je modul zapnutý a připojený k serveru MQTT a přihlášen k odběru 'tématu aktualizace', obdrží zprávu o aktualizaci.
  • Aktualizační zpráva zabrání vypnutí modulu a spustí
  • Prostřednictvím webových stránek serveru HTTPUpdateServer můžete software aktualizovat.
  • Prostřednictvím Openhab z NodeRed zveřejňuji zachovanou „prázdnou“zprávu a „aktualizované téma“.

Plánované vylepšení: vypnutí hardwaru po předem definovaném čase

V současném schématu používám odpor 200K mezi DELAY/M_DRV a GND TPL5111. Tím se modul zapne na více než 2 hodiny (viz 7.5.3. Datového listu TPL5111). Nechci však, aby byl modul tak dlouho zapnutý, protože baterie je poté vybitá. Pokud se softwarovému řešení (viz výše) nepodaří modul vypnout nebo zpráva o aktualizaci neúmyslně uvede modul do režimu aktualizace, zůstane modul po dlouhou dobu zapnutý.

Proto je lepší použít menší odpor mezi DELAY/M_DRV a GND TPL5111, aby byl modul po krátké době vypnut, například 50K odpor, což má za následek dobu zapnutí 7 minut.

Doporučuje: