Tartalomjegyzék:

Akkumulátoros ajtóérzékelő otthoni automatizálási integrációval, WiFi és ESP-NOW: 5 lépés (képekkel)
Akkumulátoros ajtóérzékelő otthoni automatizálási integrációval, WiFi és ESP-NOW: 5 lépés (képekkel)

Videó: Akkumulátoros ajtóérzékelő otthoni automatizálási integrációval, WiFi és ESP-NOW: 5 lépés (képekkel)

Videó: Akkumulátoros ajtóérzékelő otthoni automatizálási integrációval, WiFi és ESP-NOW: 5 lépés (képekkel)
Videó: Milyen biztonsági kamerát vegyek 2024, November
Anonim
Image
Image

Ebben az oktatható útmutatóban megmutatom, hogyan készítettem elemmel működő ajtóérzékelőt otthoni automatizálási integrációval. Láttam még néhány szép érzékelőt és riasztórendszert, de magam szerettem volna ilyet készíteni.

Céljaim:

  • Érzékelő, amely érzékeli és jelenti az ajtónyílást (<5 másodperc)
  • Érzékelő, amely érzékeli az ajtó záródását
  • Elemmel működő érzékelő, amely néhány hónapig akkumulátorral működik

A hardvert és a szoftvert ihlette

  • Kevin Darrah triggere (TPL5111 és TPS73733).
  • Ez a videó

Készítettem egy érzékelőt a bejárati és a hátsó ajtómhoz. Az egyetlen különbség a led helyzet és a külső tápkapcsoló (a hátsó ajtó érzékelőjén).

A hardver és szoftver fejlesztése során számos fejlesztést hajtottam végre, ez látható a fényképeken.

Kellékek

Az elektronikus alkatrészeket az Aliexpress -től vásároltam, a fő részeket:

  • LiPo akkumulátor
  • TPS73733 LDO
  • TPL5111
  • Reed kapcsoló
  • P-csatorna mosfet: IRLML6401TRPBF
  • Mágnes
  • PCB adapter lemez SMD alkatrészekhez és egy másik.

1. lépés: Hardver - áramkör

Hardver - Áramkör
Hardver - Áramkör
Hardver - Áramkör
Hardver - Áramkör
Hardver - Áramkör
Hardver - Áramkör

Lásd a mellékelt kapcsolási rajzokat. Az SMD alkatrészeket forrasztottam egy adapter NYÁK -lemezre, és az összes alkatrészt egy kétoldalas perforációs lapra forrasztottam. Az ESP-01-t női fejléceken keresztül csatlakoztattam, így eltávolíthattam, hogy programozhassam a jelen utasítás 3. lépésében látható adapter segítségével.

Az áramkör a következőképpen működik:

  • Amikor az ajtót kinyitják, a TPL5111 lövést kap a DELAY/M_DRV csapra, és engedélyezi a TPS73733 LDO-t, amely az ESP-01-et táplálja. Ehhez a művelethez az EN/ONE_SHOT -ot le kell húzni, lásd a TPL5111 adatlapját.
  • A program futtatása után (lásd a Szoftver lépést) az ESP-01 kész jelzést küld a TPL5111-nek, amely letiltja a TPS73733-at, ami nagyon alacsony energiaállapotot eredményez a TPL5111 és a TPS73733 számára.

Nádkapcsolókat használok NO és NC csatlakozással is. Csatlakoztattam az NC vezetéket, mivel a nádkapcsolónak le kell zárnia az áramkört, amikor a mágnest eltávolítják (nyitott ajtó), és ki kell nyitnia, amikor a mágnes közel van (ajtó zárva).

A hátsó ajtó érzékelőhöz néhány kondenzátort és ellenállást adtam hozzá, amikor felfedeztem néhány instabilitást, azonban az instabilitást a szoftver okozta (esp_now_init), mint később felfedeztem.

2. lépés: Hardver - ház

Hardver - ház
Hardver - ház
Hardver - ház
Hardver - ház
Hardver - ház
Hardver - ház

A házat az Autodesk Fusion360 -ban terveztem, ezt a svájci akcentussal rendelkező srác videó ihlette.

A három rész STL fájljai:

  • Doboz
  • Fedő
  • Mágnes tartó

a Thingiverse oldalamon jelennek meg.

3. lépés: Szoftver

Szoftver
Szoftver

A program a Githubomban található.

A program folyamata a képen látható. Az ESP-NOW használatának magyarázatát lásd a másik Instructable programban.

Amikor a modul be van kapcsolva, először megpróbálja elküldeni az „OPEN” üzenetet az ESP-NOW segítségével. Ha ez nem sikerül, akkor WiFi és MQTT kapcsolatra kapcsol.

Rájöttem, hogy legalább a beállításom során a „ZÁRVA” üzenetet nem küldték el sikeresen az ESP-NOW-n keresztül, ezért eltávolítottam ezt a programból, és csak a WiFi-t és az MQTT-t használom.

Abban az időben, amikor az ajtó kinyílik, és a modul várja az ajtó bezáródását, ezt az időt használja a WiFi és az MQTT csatlakoztatására, így amikor az ajtó zárva van, csak a mért feszültséget és a ZÁRVA üzenetet kell elküldenie, majd közvetlenül elalszik.

A program ellenőrzi, hogy a zárt üzenetet a vevő fogadta -e a megfelelő témájú MQTT üzenet hallgatása révén.

4. lépés: Otthoni automatizálás és távirat

Otthoni automatizálás és távirat
Otthoni automatizálás és távirat
Otthoni automatizálás és távirat
Otthoni automatizálás és távirat
Otthoni automatizálás és távirat
Otthoni automatizálás és távirat

Az ajtóérzékelőim kommunikálnak az Openhab Home Automation készülékemmel a Raspberry Pi Zero készüléken.

Főbb alkalmazások:

  • Olvassa el az ajtó állapotát: NYITVA vagy ZÁRVA.
  • Riasztás táviraton keresztül, ha ajtót nyitnak (ha a riasztó be van kapcsolva vagy a monitor funkció be van kapcsolva).
  • Olvassa el, amikor utoljára nyitottak vagy csuktak egy ajtót.
  • Az akkumulátor lemerülése előtt számolja meg, hány nyílást tud kezelni az ajtóérzékelő.

Például, ha nyaralunk, és a szomszéd bejön öntözni a növényeket, üzenetet kapok. Nézze meg a videót a bevezetőben.

Az Openhab elemeim, szabályaim és webhelytérképfájljaim megtalálhatók a Github -ban. Ezekben a fájlokban látható a fészer ajtajának érzékelője is, amely normál vezetékes nádkapcsolót és egy kis érintkezős (vég) kapcsolót használ a zárnyíláson lévő 3D nyomtatóból (lásd a képeket).

Az Openhabban a Telegram művelet használatát itt ismertetjük.

5. lépés: Javítások és további fejlesztések

Fejlesztések és további fejlesztések
Fejlesztések és további fejlesztések
Fejlesztések és további fejlesztések
Fejlesztések és további fejlesztések

Az elmúlt hónapokban a következő fejlesztéseket hajtottam végre.

A hosszú ajtónyílásokat önkapcsoló impulzusjel segítségével kezelje

Nyáron otthon hagyjuk néhány órára nyitva a hátsó ajtót. A futó ESP-01 WiFi kapcsolattal ezután szükségtelenül lemeríti az akkumulátort. Ezért beépítettem egy ki/be kapcsolót, hogy ilyen esetekben ki lehessen kapcsolni a modult.

Ez azonban néha azt eredményezte, hogy egy tartósan kikapcsolt modult (amikor elfelejtettem bekapcsolni) és egy lemerült akkumulátort néhány délután egy nyitott ajtó és egy futó modul után (amikor elfelejtettem kikapcsolni).

Ezért azt akartam, hogy a modult a szoftver segítségével ki lehessen kapcsolni, miután a modul be volt kapcsolva egy előre meghatározott ideig (1 perc).

Azonban, amikor az ESP-01 „DONE” impulzusa kikapcsolta a TPL5111-et, amikor az ajtót becsukta, rájöttem, hogy a TPL5111-et nem kapcsolta ki a „DONE” impulzus, miközben a DELAY/M_DRV csap MAGAS volt. Ezt a HIGH jelet a DELAY/M_DRV érintkezőn a nyitott ajtó és az akkumulátorfeszültséghez csatlakoztatott nádkapcsoló NC érintkezője okozta.

Tehát a jelzés a DELAY/M_DRV érintkezőbe nem lehet folyamatosan HIGH, hanem pulzálni kell. A TPL5111 adatlapon megtalálhatja, hogy az impulzusnak> 20 ms -nak kell lennie. Ezt az önkapcsoló jelet P-csatornás mosfeten, kondenzátoron és 10K és 300K ellenálláson keresztül készítettem, lásd a mellékelt sémát.

A következőképpen működik:

  • Ha a nádkapcsoló NC érintkezője le van zárva, a kapu LOW és a Mosfet be van kapcsolva, ami HIGH jelet eredményez a DELAY/M_DRV csapon, amely aktiválja a modult.
  • A kondenzátor gyorsan feltöltődik, ami növekvő feszültséget eredményez a kapun.
  • Körülbelül 20 ms elteltével a kapun lévő feszültség az akkumulátor feszültségének 97% -a (300K/(300K+10K), ami magas, és a Mosfet ki van kapcsolva, ami LOW jelzést eredményez a DELAY/M_DRV érintkezőn.
  • Ha a DELAY/M_DRV tű LOW, az ESP-01 DONE jele a modul leállását eredményezi.

Ez a szoftverben valósul meg; A while-loop nem csak azt ellenőrzi, hogy az ajtó nyitva van-e, hanem azt is, hogy a modul nincs-e túl hosszú ideig bekapcsolva. Ha túl hosszú ideig van bekapcsolva, NULL értéket tesz közzé (az ajtó nem definiált állapota). Ebben az esetben nem tudom, hogy az ajtó nyitva vagy csukva van -e, és nem érem el a bevezetőben említett összes célt, de az akkumulátor élettartama fontosabb, és legtöbbször aznap újra kinyitjuk az ajtót, ami megerősített zárt állapotot eredményez az ajtóról.

Fontos, hogy olyan P-csatornás Mosfetet használjon, amely megfelel az itt használt feszültségtartománynak. A Mosfetnek teljesen be kell kapcsolnia a körülbelül 3,8 V -os VGS -nél, és teljesen ki kell kapcsolnia a körülbelül -0,2 V -os VGS -nél. Több Mosfet -et is kipróbáltam, és megtudtam, hogy egy IRLML6401TRPBF jól működik erre a célra a 10K és 300K ellenállásokkal kombinálva. Az 1 uF kondenzátor jól működik, és körülbelül 20 ms impulzushosszat kap. A nagyobb kondenzátor hosszabb impulzust eredményez, ami nem szükséges, mivel a TPL5111 aktiválódott. A DSO150 oszcilloszkópomat használtam a feszültségek és az impulzus hosszának ellenőrzésére.

Tervezett fejlesztés: OTA frissítés

Tervezem egy OTA frissítés beépítését a következő eljárással, amely már részben benne van a jelenlegi szoftverben

  • A NodeRed Openhabján keresztül közzéteszek egy megtartott "frissítési" üzenetet és "frissítési témát".
  • Ha a modul be van kapcsolva, és csatlakozik az MQTT szerverhez, és feliratkozik a "frissítési témára", akkor megkapja a frissítési üzenetet.
  • A frissítési üzenet megakadályozza a modul kikapcsolását, és elindítja a HTTPUpdateServer szolgáltatást.
  • A HTTPUpdateServer webhelyén keresztül frissítheti a szoftvert.
  • A NodeRed Openhabján keresztül közzéteszek egy megtartott „üres” üzenetet és egy „frissítési témát”.

Tervezett fejlesztés: hardver leállítás előre meghatározott idő után

A jelenlegi rendszerben 200K ellenállást használok a TPL5111 DELAY/M_DRV és GND között. Ez több mint 2 órán keresztül bekapcsolja a modult (lásd a TPL5111 adatlap 7.5.3. Pontját). Nem akarom azonban, hogy a modul ilyen sokáig be legyen kapcsolva, mert az akkumulátor lemerül. Ha a szoftvermegoldás (lásd fent) nem kapcsolja ki a modult, vagy ha a frissítési üzenet nem szándékosan állítja a modult frissítési módba, akkor a modul hosszú ideig be van kapcsolva.

Ezért jobb egy kisebb ellenállást használni a TPL5111 DELAY/M_DRV és GND között, így a modul rövid idő után kikapcsol, például egy 50K ellenállás, ami 7 perces bekapcsolási időt eredményez.

Ajánlott: