Cuprins:

Senzor de ușă alimentat de baterie cu integrare automată la domiciliu, WiFi și ESP-ACUM: 5 pași (cu imagini)
Senzor de ușă alimentat de baterie cu integrare automată la domiciliu, WiFi și ESP-ACUM: 5 pași (cu imagini)

Video: Senzor de ușă alimentat de baterie cu integrare automată la domiciliu, WiFi și ESP-ACUM: 5 pași (cu imagini)

Video: Senzor de ușă alimentat de baterie cu integrare automată la domiciliu, WiFi și ESP-ACUM: 5 pași (cu imagini)
Video: Cum legam in doza un intrerupator simplu cu un corp de iluminat 2024, Iunie
Anonim
Image
Image

În acest instructable vă arăt cum am realizat un senzor de ușă alimentat de la baterie cu integrare de automatizare la domiciliu. Am văzut și alți senzori și sisteme de alarmă drăguțe, dar am vrut să fac unul singur.

Obiectivele mele:

  • Un senzor care detectează și raportează deschiderea ușii rapid (<5 secunde)
  • Un senzor care detectează închiderea ușii
  • Un senzor care funcționează pe baterie și funcționează câteva luni pe o baterie

Hardware-ul și software-ul sunt inspirate din

  • Tabloul de comandă al lui Kevin Darrah (TPL5111 și TPS73733).
  • Acest video

Am realizat un senzor pentru ușa din față și cea din spate. Singura diferență este poziția led și comutatorul de alimentare extern (pe senzorul din spate).

Am făcut mai multe îmbunătățiri în timpul dezvoltării în hardware și software, se vede în fotografii.

Provizii

Am cumpărat componentele electronice de la Aliexpress, principalele părți:

  • Baterie LiPo
  • TPS73733 LDO
  • TPL5111
  • Comutator Reed
  • MOSFET canal P: IRLML6401TRPBF
  • Magnet
  • Placă adaptor PCB pentru componente SMD și alta.

Pasul 1: Hardware - Circuit

Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit

Vedeți schemele atașate pentru circuit. Am lipit piesele SMD pe o placă de adaptor PCB și am lipit toate componentele pe o placă de perfecționare pe două fețe. Am conectat ESP-01 prin anteturi de sex feminin, așa că aș putea să-l elimin pentru a-l programa prin adaptorul prezentat în pasul 3 al acestui instructabil.

Circuitul funcționează după cum urmează:

  • Când ușa este deschisă, TPL5111 primește o lovitură la pinul DELAY / M_DRV și activează TPS73733 LDO care alimentează ESP-01. Pentru această operațiune, EN / ONE_SHOT trebuie scăzut, a se vedea fișa tehnică a TPL5111.
  • După ce programul a rulat (vezi pasul Software), ESP-01 trimite un semnal Terminat către TPL5111 care apoi dezactivează TPS73733, rezultând o stare de putere foarte mică pentru TPL5111 și TPS73733.

Folosesc comutatoare reed cu conexiuni NO și NC. Am conectat cablul NC, deoarece întrerupătorul reed trebuie să închidă circuitul atunci când magnetul este scos (ușa deschisă) și să se deschidă când magnetul este aproape (ușa închisă).

Pentru senzorul din spate am adăugat niște condensatoare și rezistențe când am descoperit unele instabilități, cu toate acestea instabilitatea a fost cauzată de software (esp_now_init) așa cum am descoperit mai târziu.

Pasul 2: Hardware - Carcasă

Hardware - Carcasă
Hardware - Carcasă
Hardware - Carcasă
Hardware - Carcasă
Hardware - Carcasă
Hardware - Carcasă

Am proiectat incinta în Autodesk Fusion360, inspirată de acest videoclip de „tipul cu accent elvețian”.

Fișierele STL din cele trei părți:

  • Cutie
  • Capac
  • Suport magnet

sunt publicate pe pagina mea Thingiverse.

Pasul 3: Software

Software
Software

Programul este în Github al meu.

Fluxul programului este prezentat în imagine. Vedeți celălalt Instructable pentru explicații despre modul în care folosesc ESP-ACUM.

Când modulul este pornit, acesta încearcă mai întâi să trimită mesajul „DESCHIS” prin ESP-ACUM. Dacă acest lucru nu reușește, acesta trece la o conexiune WiFi și MQTT.

Am aflat că, cel puțin în configurarea mea, mesajul „ÎNCHIS” nu a fost trimis cu succes prin ESP-ACUM, așa că am eliminat acest lucru din program și folosesc doar WiFi și MQTT.

În timpul în care ușa este deschisă și modulul așteaptă închiderea ușii, se folosește de acest timp pentru a se conecta la WiFi și MQTT, deci atunci când ușa este închisă, trebuie doar să trimită tensiunea măsurată și un mesaj ÎNCHIS și apoi merge direct la culcare.

Programul verifică dacă mesajul închis este primit de către receptor printr-o ascultare a unui mesaj MQTT pe subiectul potrivit.

Pasul 4: Home Automation și Telegram

Home Automation și Telegram
Home Automation și Telegram
Home Automation și Telegram
Home Automation și Telegram
Home Automation și Telegram
Home Automation și Telegram

Senzorii de ușă comunică cu sistemul meu de automatizare la domiciliu Openhab de pe Raspberry Pi Zero.

Aplicații principale:

  • Citiți starea ușii: DESCHIS sau ÎNCHIS.
  • Alarmați-mă prin telegramă dacă este deschisă o ușă (Dacă alarma este pornită sau funcția Monitor este activată).
  • Citiți ultima dată când a fost deschisă sau închisă o ușă.
  • Numărați numărul de deschideri pe care le poate manipula un senzor de ușă înainte ca bateria să se epuizeze.

De exemplu, dacă suntem în vacanță și vecinul vine să udă plantele, primesc un mesaj. Vedeți videoclipul în prezentare.

Articolele mele Openhab, regulile și fișierele sitemap sunt în Github. În aceste fișiere puteți vedea, de asemenea, senzorul meu de ușă al magaziei, care folosește un întrerupător regulat cu fir și un comutator mic de contact (de capăt) de la o imprimantă 3D în deschiderea încuietorii (vezi imaginile).

Cum se folosește acțiunea Telegram în Openhab este descris aici.

Pasul 5: Îmbunătățiri și îmbunătățiri suplimentare

Îmbunătățiri și îmbunătățiri suplimentare
Îmbunătățiri și îmbunătățiri suplimentare
Îmbunătățiri și îmbunătățiri suplimentare
Îmbunătățiri și îmbunătățiri suplimentare

În ultimele luni am făcut următoarea îmbunătățire.

Manipulați deschiderile lungi ale ușilor printr-un semnal de impuls cu comutare automată

În timpul verii, lăsăm ușa din spate deschisă câteva ore când suntem acasă. ESP-01 care rulează cu o conexiune WiFi ar descărca apoi inutil bateria. Prin urmare, am inclus un comutator de pornire / oprire pentru a putea opri modulul în aceste situații.

Totuși, acest lucru a dus uneori la un modul oprit permanent (când am uitat să-l pornesc) și la o baterie descărcată după câteva după-amiezii a unei uși deschise și un modul în funcțiune (Când am uitat să îl opresc).

Prin urmare, am vrut să pot opri modulul prin intermediul software-ului după ce modulul a fost pornit pentru un timp predefinit (1 minut).

Cu toate acestea, în cazul în care pulsul „DONE” al ESP-01 a oprit TPL5111 când ușa a fost închisă, am aflat că TPL5111 nu a fost comutat de un impuls „DONE” în timp ce pinul DELAY / M_DRV era HIGH. Acest semnal HIGH pe pinul DELAY / M_DRV a fost cauzat de ușa deschisă și contactul NC al comutatorului reed conectat la tensiunea bateriei.

Deci, semnalul către pinul DELAY / M_DRV nu ar trebui să fie continuu HIGH, ci ar trebui să fie pulsat. În foaia de date TPL5111 puteți afla că ar trebui să aibă un impuls de> 20 ms. Am făcut acest semnal de auto-comutare prin intermediul unui mosfet cu canal P, un condensator și un rezistor de 10K și 300K, vezi schema inclusă.

Funcționează după cum urmează:

  • Dacă contactul NC al comutatorului reed este închis, Poarta este LOW și Mosfet este pornit, rezultând un semnal HIGH pe pinul DELAY / M_DRV care activează modulul.
  • Condensatorul este încărcat rapid, rezultând o creștere a tensiunii pe poartă.
  • După aproximativ 20 ms, tensiunea de pe Poartă este 97% din tensiunea bateriei (300K / (300K + 10K) care este HIGH și Mosfet este oprit, rezultând un semnal LOW pe pinul DELAY / M_DRV.
  • Când pinul DELAY / M_DRV este LOW, semnalul DONE al ESP-01 are ca rezultat o oprire a modulului.

Acest lucru este implementat în software; o buclă de timp nu numai că verifică dacă ușa este încă deschisă, dar verifică și dacă modulul nu este pornit prea mult. Dacă este pornit prea mult, publică o valoare NULL (starea nedefinită a ușii). În acest caz, nu știu dacă ușa este deschisă sau închisă și nu ating toate obiectivele menționate în prezentare, dar durata de viață a bateriei este mai importantă și de cele mai multe ori deschidem ușa din nou mai târziu în acea zi, rezultând o stare închisă confirmată a ușii.

Este important să utilizați un Mosfet cu canal P care este potrivit pentru domeniul de tensiune utilizat aici. Mosfet trebuie să fie complet pornit la un VGS de aproximativ - 3,8V și complet oprit la un VGS de aproximativ -0,2 V. Am încercat mai multe Mosfete și am aflat că un IRLML6401TRPBF funcționează bine pentru acest obiectiv în combinație cu rezistențele de 10K și 300K. Un condensator de 1 uF funcționează bine pentru a obține o lungime a impulsului de aproximativ 20 ms. Un condensator mai mare are ca rezultat un impuls mai lung, care nu este necesar, deoarece TPL5111 a fost activat. Am folosit osciloscopul DSO150 pentru a verifica tensiunile și lungimea impulsului.

Îmbunătățire planificată: actualizare OTA

Am de gând să încorporez o actualizare OTA prin următoarea procedură, care este deja parțial inclusă în software-ul actual

  • Prin Openhab din NodeRed, public un mesaj „actualizare” reținut și un „subiect de actualizare”.
  • Dacă modulul este pornit și conectat la serverul MQTT și abonat la „actualizarea subiectului”, acesta primește mesajul de actualizare.
  • Mesajul de actualizare va împiedica oprirea modulului și pornește
  • Prin intermediul site-ului web HTTPUpdateServer, puteți actualiza software-ul.
  • Prin Openhab al NodeRed, public un mesaj „gol” reținut și un „subiect de actualizare”.

Îmbunătățire planificată: oprire hardware după un timp predefinit

În schema actuală, folosesc un rezistor de 200K între DELAY / M_DRV și GND al TPL5111. Aceasta pornește modulul pentru mai mult de 2 ore (a se vedea 7.5.3 din foaia de date TPL5111). Cu toate acestea, nu vreau ca modulul să fie pornit atât de mult timp, deoarece bateria este apoi descărcată. Dacă soluția software (a se vedea mai sus) nu reușește să oprească modulul sau mesajul de actualizare neintenționat setează modulul în modul de actualizare, modulul rămâne pornit pentru o lungă perioadă de timp.

Prin urmare, este mai bine să utilizați un rezistor mai mic între DELAY / M_DRV și GND al TPL5111, deci modulul este oprit după un timp scurt, de exemplu un rezistor de 50K rezultând un timp de pornire de 7 minute.

Recomandat: