Kazalo:

Senzor vrat z baterijskim napajanjem z integracijo domače avtomatizacije, WiFi in ESP-NOW: 5 korakov (s slikami)
Senzor vrat z baterijskim napajanjem z integracijo domače avtomatizacije, WiFi in ESP-NOW: 5 korakov (s slikami)

Video: Senzor vrat z baterijskim napajanjem z integracijo domače avtomatizacije, WiFi in ESP-NOW: 5 korakov (s slikami)

Video: Senzor vrat z baterijskim napajanjem z integracijo domače avtomatizacije, WiFi in ESP-NOW: 5 korakov (s slikami)
Video: Multimetr laboratoryjny Tenma 72-8720 - video-recenzja 2024, Julij
Anonim
Image
Image

V tem navodilu vam pokažem, kako sem izdelal senzor vrat na baterijsko napajanje z integracijo avtomatizacije doma. Videl sem še nekaj lepih senzorjev in alarmnih sistemov, vendar sem jih želel narediti sam.

Moji cilji:

  • Senzor, ki zazna in poroča o hitrem odpiranju vrat (<5 sekund)
  • Senzor, ki zazna zapiranje vrat
  • Senzor, ki deluje na baterije in deluje nekaj mesecev na bateriji

Strojno in programsko opremo navdihuje

  • Sklopna plošča Kevina Darraha (TPL5111 in TPS73733).
  • Ta video

Naredil sem senzor za sprednja in zadnja vrata. Edina razlika je v položaju LED in zunanjem stikalu za vklop (na zadnjem senzorju).

Med razvojem strojne in programske opreme sem naredil več izboljšav, kar je razvidno iz fotografij.

Zaloge

Elektronske komponente sem kupil pri Aliexpressu, glavni deli:

  • LiPo baterija
  • TPS73733 LDO
  • TPL5111
  • Reed stikalo
  • M-kanalni kanal P: IRLML6401TRPBF
  • Magnet
  • PCB adapter plošča za SMD komponente in drugo.

1. korak: Strojna oprema - vezje

Strojna oprema - vezje
Strojna oprema - vezje
Strojna oprema - vezje
Strojna oprema - vezje
Strojna oprema - vezje
Strojna oprema - vezje

Za vezje glejte priložene sheme. Spajal sem SMD dele na adapter PCB ploščo in vse komponente spajkam na dvostransko perf ploščo. ESP-01 sem povezal prek ženskih glav, zato sem ga lahko odstranil za programiranje prek adapterja, prikazanega v 3. koraku tega navodila.

Vezje deluje na naslednji način:

  • Ko se vrata odprejo, TPL5111 prejme posnetek na zatiču DELAY/M_DRV in omogoči TPS73733 LDO, ki napaja ESP-01. Za to operacijo je treba EN/ONE_SHOT potegniti nizko, glejte podatkovni list TPL5111.
  • Ko se program zažene (glejte korak Programska oprema), ESP-01 pošlje signal Končano na TPL5111, ki nato onemogoči TPS73733, kar povzroči stanje zelo nizke porabe za TPL5111 in TPS73733.

Uporabljam trstična stikala z NO in NC povezavami. Priključil sem NC vodnik, saj mora trstično stikalo zapreti vezje, ko je magnet odstranjen (vrata odprta) in se odprejo, ko je magnet blizu (vrata zaprta).

Ko sem odkril nekaj nestabilnosti, sem za zadnji senzor dodal nekaj kondenzatorjev in uporov, vendar je nestabilnost povzročila programska oprema (esp_now_init), kot sem odkril kasneje.

2. korak: Strojna oprema - ohišje

Strojna oprema - ohišje
Strojna oprema - ohišje
Strojna oprema - ohišje
Strojna oprema - ohišje
Strojna oprema - ohišje
Strojna oprema - ohišje

Ohišje sem zasnoval v Autodesku Fusion360, ki ga je navdihnil ta videoposnetek "fant s švicarskim naglasom".

Datoteke STL treh delov:

  • Škatla
  • Pokrov
  • Nosilec magneta

so objavljeni na moji strani Thingiverse.

3. korak: Programska oprema

Programska oprema
Programska oprema

Program je v mojem Githubu.

Potek programa je prikazan na sliki. Za razlago, kako uporabljam ESP-NOW, si oglejte moj drugi Instructable.

Ko je modul vklopljen, najprej poskuša poslati sporočilo 'OPEN' prek ESP-NOW. Če to ne uspe, preklopi na povezavo WiFi in MQTT.

Ugotovil sem, da vsaj v mojih nastavitvah sporočilo 'ZAPRTO' ni bilo uspešno poslano prek ESP-NOW, zato sem to odstranil iz programa in uporabljal samo WiFi in MQTT.

V času, ko se vrata odprejo in modul čaka, da se vrata zaprejo, ta čas porabi za povezavo z WiFi in MQTT, zato mora, ko so vrata zaprta, poslati le izmerjeno napetost in sporočilo ZAPRTO. gre neposredno spat.

Program preveri, ali sprejemnik sprejme zaprto sporočilo s poslušanjem sporočila MQTT na pravi temi.

4. korak: Domača avtomatizacija in Telegram

Domača avtomatizacija in Telegram
Domača avtomatizacija in Telegram
Domača avtomatizacija in Telegram
Domača avtomatizacija in Telegram
Domača avtomatizacija in Telegram
Domača avtomatizacija in Telegram

Moji senzorji vrat komunicirajo z mojo Openhab Home Automation na mojem Raspberry Pi Zero.

Glavne aplikacije:

  • Preberite stanje vrat: ODPRTO ali ZAPRTO.
  • Če se odprejo vrata, me opozori preko telegrama (če je alarm vklopljen ali je vklopljena funkcija Monitor).
  • Preberite, kdaj so bila vrata nazadnje odprta ali zaprta.
  • Preštejte število odprtin, ki jih lahko zazna senzor vrat, preden se baterija izprazni.

Na primer, če smo na počitnicah in sosed pride zalivati rastline, dobim sporočilo. Oglejte si video v uvodu.

Moji predmeti, pravila in zemljevidi spletnih mest Openhab so v mojem Githubu. V teh datotekah lahko vidite tudi moj senzor vrat lope, ki uporablja običajno žično trstično stikalo in majhno stikalo (konec) iz 3D tiskalnika v odprtini za zaklepanje (glejte slike).

Tukaj je opisano, kako uporabljati dejanje Telegram v Openhabu.

5. korak: Izboljšave in nadaljnje izboljšave

Izboljšave in nadaljnje izboljšave
Izboljšave in nadaljnje izboljšave
Izboljšave in nadaljnje izboljšave
Izboljšave in nadaljnje izboljšave

V preteklih mesecih sem naredil naslednje izboljšanje.

Ročajte z dolgimi odprtinami vrat s samopreklopnim impulznim signalom

Poleti pustimo zadnja vrata odprta za nekaj ur, ko smo doma. Tekoči ESP-01 s povezavo WiFi bi po nepotrebnem izpraznil baterijo. Zato sem vključil stikalo za vklop/izklop, da lahko v teh situacijah izklopim modul.

Vendar je to včasih povzročilo trajno izklopljen modul (ko sem ga pozabil vklopiti) in izpraznjeno baterijo po nekaj popoldnevih pri odprtih vratih in delujočem modulu (ko sem pozabil izklopiti).

Zato sem želel izklopiti modul s programsko opremo, potem ko je bil modul vklopljen za vnaprej določen čas (1 minuto).

Kadar pa je impulz „DONE“na ESP-01 izklopil TPL5111, ko so bila vrata zaprta, sem ugotovil, da TPL5111 ni bil izklopljen z impulzom „DONE“, medtem ko je bil zakasnitev/M_DRV VISOKA. Ta VISOKI signal na zatiču DELAY/M_DRV je bil posledica odprtih vrat in NC kontakta trstičnega stikala, priključenega na napetost akumulatorja.

Torej signal na zatič DELAY/M_DRV ne sme biti neprekinjeno VISOK, ampak mora biti impulzen. V podatkovnem listu TPL5111 lahko ugotovite, da mora biti impulz> 20 ms. Ta samopreklopni signal sem naredil prek mosfeta P-kanala, kondenzatorja in upora 10K in 300K, glej priloženo shemo.

Deluje na naslednji način:

  • Če je NC -kontakt trstičnega stikala zaprt, so vrata NIZKA in Mosfet vklopljen, kar ima za posledico VISOK signal na zatiču DELAY/M_DRV, ki aktivira modul.
  • Kondenzator se hitro napolni, kar povzroči naraščajočo napetost na vratih.
  • Po približno 20 ms je napetost na vratih 97% napetosti akumulatorja (300K/(300K+10K), ki je VELIKA in se MOSFET izklopi, kar ima za posledico NIZKI signal na zatiču DELAY/M_DRV.
  • Ko je nožica DELAY/M_DRV NIZKA, signal DONE na ESP-01 povzroči zaustavitev modula.

To se izvaja v programski opremi; zanka while ne samo preveri, ali so vrata še odprta, ampak tudi, če modul ni predolgo vklopljen. Če je vklopljen predolgo, objavi vrednost NULL (nedefinirano stanje vrat). V tem primeru ne vem, ali so vrata odprta ali zaprta, in ne dosežem vseh ciljev, omenjenih v uvodu, vendar je življenjska doba baterije pomembnejša in večino dni znova odpremo vrata, kar ima za posledico potrjeno zaprto stanje od vrat.

Pomembno je, da uporabite P-kanalni Mosfet, ki je primeren za tukaj uporabljeno napetostno območje. Mosfet mora biti popolnoma vklopljen pri VGS približno - 3,8 V in popolnoma izklopljen pri VGS približno -0,2 V. Poskusil sem več mosfetov in ugotovil, da IRLML6401TRPBF za ta cilj dobro deluje v kombinaciji z 10K in 300K upori. Kondenzator 1 uF dobro deluje, da doseže dolžino impulza približno 20 ms. Večji kondenzator povzroči daljši impulz, kar ni potrebno, saj je bil aktiviran TPL5111. Z osciloskopom DSO150 sem preveril napetosti in dolžino impulza.

Načrtovano izboljšanje: posodobitev OTA

Nameravam vključiti posodobitev OTA po naslednjem postopku, ki je delno že vključen v trenutno programsko opremo

  • Prek Openhaba v NodeRedu objavim ohranjeno sporočilo o posodobitvi in temo o posodobitvi.
  • Če je modul vklopljen in povezan s strežnikom MQTT ter naročen na 'temo posodobitve', prejme sporočilo o posodobitvi.
  • Sporočilo o posodobitvi prepreči izklop modula in zažene strežnik
  • Prek spletnega mesta strežnika HTTPUpdateServer lahko posodobite programsko opremo.
  • Prek Openhaba v NodeRedu objavim ohranjeno "prazno" sporočilo in "temo posodobitve".

Načrtovano izboljšanje: zaustavitev strojne opreme po vnaprej določenem času

V trenutni shemi uporabljam 200K upor med DELAY/M_DRV in GND TPL5111. S tem se modul vklopi za več kot 2 uri (glejte 7.5.3. Podatkovnega lista TPL5111). Ne želim pa, da bi bil modul tako dolgo vklopljen, ker se nato baterija izprazni. Če programska rešitev (glejte zgoraj) ne uspe izklopiti modula ali če sporočilo o posodobitvi nenamerno nastavi modul v način posodobitve, ostane modul dolgo vklopljen.

Zato je bolje uporabiti manjši upor med DELAY/M_DRV in GND TPL5111, tako da se modul po kratkem času izklopi, na primer 50K upor, kar povzroči vklop 7 minut.

Priporočena: