Sadržaj:

Senzor vrata na baterije s integracijom kućne automatizacije, WiFi i ESP-SADA: 5 koraka (sa slikama)
Senzor vrata na baterije s integracijom kućne automatizacije, WiFi i ESP-SADA: 5 koraka (sa slikama)

Video: Senzor vrata na baterije s integracijom kućne automatizacije, WiFi i ESP-SADA: 5 koraka (sa slikama)

Video: Senzor vrata na baterije s integracijom kućne automatizacije, WiFi i ESP-SADA: 5 koraka (sa slikama)
Video: The new THREAD Door Sensor for Apple Home! 2024, Srpanj
Anonim
Image
Image

U ovom uputstvu pokazat ću vam kako sam napravio senzor vrata na baterije s integracijom kućne automatizacije. Vidio sam neke druge lijepe senzore i alarmne sustave, ali sam ih želio sam napraviti.

Moji ciljevi:

  • Senzor koji detektira i prijavljuje brzo otvaranje vrata (<5 sekundi)
  • Senzor koji detektira zatvaranje vrata
  • Senzor koji radi na baterije i radi nekoliko mjeseci na bateriji

Hardver i softver inspirirani su

  • Trigboard Kevina Darraha (TPL5111 i TPS73733).
  • Ovaj video

Napravio sam senzor za svoja i stražnja vrata. Jedina razlika je LED položaj i vanjski prekidač napajanja (na stražnjem osjetniku).

Napravio sam nekoliko poboljšanja tijekom razvoja hardvera i softvera, to se može vidjeti na fotografijama.

Pribor

Elektroničke komponente kupio sam od Aliexpressa, glavni dijelovi:

  • LiPo baterija
  • TPS73733 LDO
  • TPL5111
  • Reed prekidač
  • M-kanalni P-kanalni kanal: IRLML6401TRPBF
  • Magnet
  • PCB adapterska ploča za SMD komponente i drugo.

Korak 1: Hardver - krug

Hardver - krug
Hardver - krug
Hardver - krug
Hardver - krug
Hardver - krug
Hardver - krug

Za shemu pogledajte priložene sheme. Lemio sam SMD dijelove na adapterskoj PCB ploči i lemio sve komponente na dvostranu perf ploču. Spojio sam ESP-01 putem ženskih zaglavlja, pa sam ga mogao ukloniti radi programiranja putem adaptera prikazanog u koraku 3 ove upute.

Krug radi na sljedeći način:

  • Kad se vrata otvore, TPL5111 prima hitac na zakašnjenju DELAY/M_DRV i omogućuje TPS73733 LDO koji napaja ESP-01. Za ovu operaciju EN/ONE_SHOT mora biti spušten prema dolje, pogledajte podatkovni list TPL5111.
  • Nakon pokretanja programa (pogledajte korak Softver), ESP-01 šalje signal Done na TPL5111 koji tada onemogućuje TPS73733 što rezultira vrlo niskim stanjem napajanja za TPL5111 i TPS73733.

Koristim trskaste sklopke s NO i NC priključcima. Priključio sam NC vod, jer trstični prekidač mora zatvoriti krug kada se magnet ukloni (vrata otvorena) i otvoriti se kada je magnet blizu (vrata zatvorena).

Za stražnji senzor dodao sam neke kondenzatore i otpornike kada sam otkrio neke nestabilnosti, međutim nestabilnost je uzrokovala softver (esp_now_init) kao što sam kasnije otkrio.

Korak 2: Hardver - kućište

Hardver - kućište
Hardver - kućište
Hardver - kućište
Hardver - kućište
Hardver - kućište
Hardver - kućište

Dizajnirao sam kućište u Autodesku Fusion360, inspirirano ovim videom od strane 'tipa sa švicarskim naglaskom'.

STL datoteke tri dijela:

  • Kutija
  • Poklopac
  • Nosač magneta

objavljeni su na mojoj stranici Thingiverse.

Korak 3: Softver

Softver
Softver

Program je u mom Githubu.

Tijek programa prikazan je na slici. Za objašnjenje o tome kako koristim ESP-NOW pogledajte moj drugi Instructable.

Kada se modul uključi, on prvo pokušava poslati poruku 'OTVOREN' putem ESP-SADA. Ako to ne uspije, prebacuje se na WiFi i MQTT vezu.

Otkrio sam da, barem u mojim postavkama, poruka 'ZATVORENO' nije uspješno poslana putem ESP-SADA, pa sam to uklonio iz programa i koristim samo WiFi i MQTT.

Za vrijeme otvaranja vrata i modula koji čeka da se vrata zatvore, ovo vrijeme koristi za povezivanje na WiFi i MQTT, pa kad su vrata zatvorena, mora poslati samo izmjereni napon i poruku ZATVORENO, a zatim izravno ide na spavanje.

Program provjerava je li primatelj primio zatvorenu poruku putem preslušavanja MQTT poruke na odgovarajućoj temi.

Korak 4: Automatizacija doma i Telegram

Automatizacija doma i Telegram
Automatizacija doma i Telegram
Automatizacija doma i Telegram
Automatizacija doma i Telegram
Automatizacija doma i Telegram
Automatizacija doma i Telegram

Moji senzori vrata komuniciraju s mojom Openhab kućnom automatizacijom na mom Raspberry Pi Zero.

Glavne aplikacije:

  • Pročitajte stanje vrata: OTVORENA ili ZATVORENA.
  • Alarmiraj me putem telegrama ako su otvorena vrata (ako je alarm uključen ili je uključena funkcija monitora).
  • Pročitajte kada ste zadnji put otvorili ili zatvorili vrata.
  • Izbrojite broj otvora koje senzor vrata može podnijeti prije nego se baterija isprazni.

Na primjer, ako smo na godišnjem odmoru, a susjed dođe zalijevati biljke, dobijem poruku. Video pogledajte u uvodu.

Moje Openhab stavke, pravila i datoteke karti web stranica nalaze se u mom Githubu. U ovim datotekama možete vidjeti i moj senzor vrata šupe, koji koristi obični žičani trskasti prekidač i mali kontaktni (krajnji) prekidač s 3D pisača u otvoru za zaključavanje (pogledajte slike).

Ovdje je opisano kako se koristi akcija Telegram u Openhabu.

Korak 5: Poboljšanja i daljnja poboljšanja

Poboljšanja i daljnja poboljšanja
Poboljšanja i daljnja poboljšanja
Poboljšanja i daljnja poboljšanja
Poboljšanja i daljnja poboljšanja

Proteklih mjeseci napravio sam sljedeće poboljšanje.

Rukujte dugim otvorima vrata putem impulsa koji se sam prebacuje

Ljeti ostavimo stražnja vrata otvorena nekoliko sati dok smo kod kuće. Pokrenuti ESP-01 s WiFi vezom nepotrebno bi ispraznio bateriju. Stoga sam uključio prekidač za uključivanje/isključivanje kako bih mogao isključiti modul u ovim situacijama.

Međutim, to je ponekad rezultiralo trajno isključenim modulom (kad sam ga zaboravila uključiti) i ispražnjenom baterijom nakon nekoliko popodneva otvorenih vrata i aktivnog modula (kad sam ga zaboravila isključiti).

Zbog toga sam htio moći isključiti modul putem softvera nakon što je modul bio uključen unaprijed definirano vrijeme (1 minuta).

Međutim, tamo gdje je impuls ‘DONE’ na ESP-01 isključio TPL5111 kad su vrata bila zatvorena, otkrio sam da TPL5111 nije isključen impulsom ‘DONE’ dok je pin DELAY/M_DRV bio VISOK. Ovaj VISOKI signal na kontaktu DELAY/M_DRV uzrokovan je otvorenim vratima i NC kontaktom trska sklopke spojenom na napon baterije.

Dakle, signal na pin DELAY/M_DRV ne bi trebao biti neprekidno VISAK, već bi trebao biti pulsiran. U podatkovnom listu TPL5111 možete pronaći da bi trebao biti puls> 20 ms. Napravio sam ovaj samopreklapajući signal putem P-kanalnog mosfeta, kondenzatora i 10K i 300K otpornika, pogledajte priloženu shemu.

Radi na sljedeći način:

  • Ako je NC kontakt trske sklopke zatvoren, Vrata su NISKA, a Mosfet uključen, što rezultira VISOKIM signalom na DELAY/M_DRV pinu koji aktivira modul.
  • Kondenzator se brzo puni, što rezultira povećanjem napona na vratima.
  • Nakon otprilike 20 ms, napon na vratima čini 97% napona baterije (300K/(300K+10K) koji je VISOK i Mosfet se isključuje, što rezultira NISKIM signalom na kontaktu DELAY/M_DRV.
  • Kad je pin DELAY/M_DRV LOW, DONE signal ESP-01 dovodi do gašenja modula.

To je implementirano u softver; while petlja ne samo da provjerava jesu li vrata još uvijek otvorena, nego također provjerava nije li modul predugo uključen. Ako je uključeno predugo, objavljuje NULL vrijednost (nedefinirano stanje vrata). U ovom slučaju ne znam jesu li vrata otvorena ili zatvorena i ne postižem sve ciljeve navedene u uvodu, ali je vijek trajanja baterije važniji i većinu vrata ponovno otvaramo kasnije tog dana, što rezultira potvrđenim zatvorenim stanjem od vrata.

Važno je koristiti P-kanalni Mosfet koji je prikladan za raspon napona koji se ovdje koristi. Mosfet mora biti potpuno uključen na VGS od oko - 3,8 V i potpuno isključen na VGS od oko -0,2 V. Pokušao sam s nekoliko MOSFET -ova i otkrio da IRLML6401TRPBF radi dobro za ovaj cilj u kombinaciji s 10K i 300K otpornicima. Kondenzator od 1 uF radi kako bi dobio impulsnu duljinu od oko 20 ms. Veći kondenzator rezultira dužim impulsom, što nije potrebno jer je aktiviran TPL5111. Koristio sam osciloskop DSO150 za provjeru napona i duljine impulsa.

Planirano poboljšanje: OTA ažuriranje

Planiram ugraditi OTA ažuriranje sljedećim postupkom, koji je već djelomično uključen u trenutni softver

  • Putem Openhaba tvrtke NodeRed objavljujem zadržanu poruku 'ažuriranje' i 'temu ažuriranja'.
  • Ako je modul uključen i spojen na poslužitelj MQTT i pretplaćen na 'temu ažuriranja', prima poruku o ažuriranju.
  • Poruka o ažuriranju spriječit će isključivanje modula i pokrenuti
  • Preko web stranice HTTPUpdateServera možete ažurirati softver.
  • Putem Openhaba iz NodeReda objavljujem zadržanu "praznu" poruku i "temu ažuriranja".

Planirano poboljšanje: gašenje hardvera nakon unaprijed definiranog vremena

U trenutnoj shemi koristim 200K otpornik između DELAY/M_DRV i GND TPL5111. Time se modul uključuje na više od 2 sata (vidi 7.5.3. Podatkovne tablice TPL5111). Međutim, ne želim da modul bude uključen toliko dugo jer se baterija tada isprazni. Ako softversko rješenje (vidi gore) ne uspije isključiti modul ili poruka o ažuriranju nenamjerno postavlja modul u način ažuriranja, modul ostaje uključen dugo vremena.

Zbog toga je bolje koristiti manji otpornik između DELAY/M_DRV i GND TPL5111, tako da se modul isključuje nakon kratkog vremena, na primjer 50K otpornik što rezultira uključivanjem od 7 minuta.

Preporučeni: