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, Juli
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 sisteme, ali sam htio da ih napravim sam.

Moji ciljevi:

  • Senzor koji detektira i prijavljuje brzo otvaranje vrata (<5 sekundi)
  • Senzor koji otkriva 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 prednja i zadnja vrata. Jedina razlika je LED položaj i vanjski prekidač za napajanje (na stražnjem senzoru).

Napravio sam nekoliko poboljšanja tokom razvoja hardvera i softvera, vidi se na fotografijama.

Supplies

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 - kolo
Hardver - kolo
Hardver - kolo
Hardver - kolo
Hardver - kolo
Hardver - kolo

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, tako da sam ga mogao ukloniti radi programiranja putem adaptera prikazanog u koraku 3 ove upute.

Krug radi na sljedeći način:

  • Kada se vrata otvore, TPL5111 prima hitac na DELAY/M_DRV pin i omogućava TPS73733 LDO koji napaja ESP-01. Za ovu operaciju EN/ONE_SHOT mora biti spušten prema dolje, pogledajte tehnički 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 prekidače sa 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 kad 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, inspirisano ovim videom od strane 'tipa sa švajcarskim naglaskom'.

STL datoteke tri dijela:

  • Box
  • Poklopac
  • Nosač magneta

objavljeni su na mojoj stranici Thingiverse.

Korak 3: Softver

Softver
Softver

Program je na mom Githubu.

Tok programa prikazan je na slici. Pogledajte moj drugi Instructable za objašnjenje kako koristim ESP-NOW.

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 se, barem u mojim postavkama, poruka 'ZATVORENO' nije uspješno poslala putem ESP-SADA, pa sam ovo uklonio iz programa i koristio 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 kada su vrata zatvorena, mora poslati samo izmjereni napon i poruku ZATVORENO, a zatim direktno ide u san.

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

Korak 4: Automatizacija doma i Telegram

Kućna automatizacija i Telegram
Kućna automatizacija i Telegram
Kućna automatizacija i Telegram
Kućna automatizacija i Telegram
Kućna automatizacija i Telegram
Kućna automatizacija i Telegram

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

Glavne aplikacije:

  • Pročitajte stanje vrata: OTVORENO ili ZATVORENO.
  • Alarmirajte me putem telegrama ako su vrata otvorena (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 odmoru, a komšija uđe zalijevati biljke, dobijam poruku. Pogledajte video u uvodu.

Moje Openhab stavke, pravila i datoteke web stranice nalaze se u mom Githubu. U ovim datotekama možete vidjeti i moj senzor vrata šupe, koji koristi običan ž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 dalja poboljšanja

Poboljšanja i dalja poboljšanja
Poboljšanja i dalja poboljšanja
Poboljšanja i dalja poboljšanja
Poboljšanja i dalja poboljšanja

Proteklih meseci napravio sam sledeće poboljšanje.

Rukujte dugim otvorima vrata pomoću 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. Zbog toga 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 na unaprijed definirano vrijeme (1 minut).

Međutim, tamo gdje je impuls ‘DONE’ na ESP-01 isključio TPL5111 kada su vrata zatvorena, otkrio sam da TPL5111 nije isključen pomoću ‘DONE’ impulsa 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 visok, već bi trebao biti pulsiran. U listu s podacima o TPL5111 možete pronaći da bi trebao biti puls> 20 ms. Taj sam signal sam sam uključio preko P-kanalnog MOSFET-a, kondenzatora i 10K i 300K otpornika, pogledajte priloženu shemu.

Radi na sljedeći način:

  • Ako je NC kontakt trske sklopke zatvoren, kapija je NISKA i Mosfet je 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 kapiji čini 97% napona baterije (300K/(300K+10K) koji je VISOK i Mosfet se isključuje, što rezultira NISKIM signalom na kontaktu DELAY/M_DRV.
  • Kada je pin DELAY/M_DRV LOW, DONE signal ESP-01 dovodi do gašenja modula.

Ovo je implementirano u softver; while-loop ne samo da provjerava jesu li vrata još uvijek otvorena, već provjerava i 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 trajanje baterije je važnije i najčešće otvaramo vrata kasnije tog dana, što rezultira potvrđenim zatvaranjem 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. Probao sam nekoliko mosfetova i otkrio da IRLML6401TRPBF radi dobro za ovaj cilj u kombinaciji s 10K i 300K otpornicima. Kondenzator od 1 uF radi dobro kako bi dobio impulsnu duljinu od oko 20 ms. Veći kondenzator rezultira dužim impulsom, što nije potrebno jer je TPL5111 aktiviran. Koristio sam osciloskop DSO150 za provjeru napona i dužine impulsa.

Planirano poboljšanje: OTA ažuriranje

Planiram uključiti OTA ažuriranje putem sljedeće procedure, koja je već djelomično uključena u trenutni softver

  • Preko Openhaba iz NodeReda objavljujem zadržanu poruku 'ažuriranje' i 'temu ažuriranja'.
  • Ako je modul uključen i povezan na MQTT server i pretplaćen na 'temu ažuriranja', prima poruku o ažuriranju.
  • Poruka za ažuriranje 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. Ovim 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 tako dugo, jer se baterija tada ispraznila. 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 otpornik od 50K što rezultira uključivanjem od 7 minuta.

Preporučuje se: