Taula de continguts:
- Subministraments
- Pas 1: Maquinari: circuit
- Pas 2: maquinari: recinte
- Pas 3: programari
- Pas 4: domòtica i telegrama
- Pas 5: millores i millores addicionals
Vídeo: Sensor de porta alimentat per bateria amb integració domòtica, WiFi i ESP-NOW: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest instructiu us mostro com he fabricat un sensor de porta amb bateria amb integració domòtica. He vist alguns altres sensors i sistemes d'alarma agradables, però volia fer-ne jo mateix.
Els meus objectius:
- Un sensor que detecta i informa que una porta s’obre ràpidament (<5 segons)
- Un sensor que detecta el tancament de la porta
- Un sensor que funciona amb bateria i funciona durant uns mesos amb una bateria
El maquinari i el programari estan inspirats en
- El quadre de comandament de Kevin Darrah (TPL5111 i TPS73733).
- Aquest vídeo
Vaig fer un sensor per a la porta principal i la porta posterior. L'única diferència és la posició del led i l'interruptor d'alimentació extern (en el sensor de la porta posterior).
Vaig fer diverses millores durant el desenvolupament de maquinari i programari, es pot veure a les fotos.
Subministraments
Vaig comprar els components electrònics a Aliexpress, les parts principals:
- Bateria LiPo
- TPS73733 LDO
- TPL5111
- Interruptor Reed
- Mosfet de canal P: IRLML6401TRPBF
- Imant
- Placa adaptadora de PCB per a components SMD i una altra.
Pas 1: Maquinari: circuit
Vegeu els esquemes adjunts del circuit. He soldat les peces SMD en una placa adaptadora de PCB i he soldat tots els components a una placa de perfils de doble cara. Vaig connectar l'ESP-01 mitjançant capçaleres femenines, de manera que podia eliminar-lo per programar-lo mitjançant l'adaptador que es mostra al pas 3 d'aquesta instrucció.
El circuit funciona de la següent manera:
- Quan s’obre la porta, el TPL5111 rep un tret al pin DELAY / M_DRV i habilita el TPS73733 LDO que alimenta l’ESP-01. Per a aquesta operació, cal baixar EN / ONE_SHOT, consulteu el full de dades del TPL5111.
- Després que el programa s'hagi executat (vegeu el pas de programari), l'ESP-01 envia un senyal Fet al TPL5111 que desactiva el TPS73733, donant lloc a un estat de potència molt baix per al TPL5111 i el TPS73733.
Faig servir interruptors reed amb connexions NO i NC. Vaig connectar el cable NC, ja que l’interruptor reed ha de tancar el circuit quan es retira l’imant (porta oberta) i s’ha d’obrir quan l’imant està a prop (porta tancada).
Per al sensor de portes posteriors, vaig afegir alguns condensadors i resistències quan vaig descobrir algunes inestabilitats, però la instabilitat va ser causada pel programari (esp_now_init) com vaig descobrir més tard.
Pas 2: maquinari: recinte
Vaig dissenyar el recinte a Autodesk Fusion360, inspirat en aquest vídeo de "el noi amb accent suís".
Els fitxers STL de les tres parts:
- Caixa
- Tapa
- Porta imants
es publiquen a la meva pàgina de Thingiverse.
Pas 3: programari
El programa és al meu Github.
El flux del programa es mostra a la imatge. Consulteu la meva altra instrucció per obtenir informació sobre com faig servir ESP-NOW.
Quan el mòdul està engegat, primer intenta enviar el missatge 'OPEN' mitjançant ESP-NOW. Si això no funciona, passa a una connexió WiFi i MQTT.
Vaig descobrir que, almenys en la meva configuració, el missatge "TANCAT" no s'enviava correctament mitjançant ESP-NOW, així que ho vaig eliminar del programa i només utilitzo WiFi i MQTT.
Durant el temps que s’obre la porta i el mòdul espera que la porta es tanqui, utilitza aquest temps per connectar-se a WiFi i MQTT, de manera que quan la porta està tancada només ha d’enviar la tensió mesurada i un missatge TANCAT i després es dirigeix directament a dormir.
El programa comprova si el receptor rep el missatge tancat mitjançant una escolta d’un missatge MQTT sobre el tema adequat.
Pas 4: domòtica i telegrama
Els sensors de la porta es comuniquen amb la meva automatització domèstica Openhab al meu Raspberry Pi Zero.
Principals aplicacions:
- Llegiu l'estat de la porta: OBERTA o TANCADA.
- Alarma’m mitjançant telegrama si s’obre una porta (si l’alarma està activada o la funció Monitor està activada).
- Llegiu la darrera vegada que es va obrir o tancar una porta.
- Compteu el nombre d'obertures que un sensor de porta pot gestionar abans que s'acabi la bateria.
Per exemple, si estem de vacances i el veí entra a regar les plantes, rebo un missatge. Vegeu el vídeo a la introducció.
Els meus elements, regles i fitxers de mapes del lloc d’Openhab són al meu Github. En aquests fitxers també podeu veure el meu sensor de porta del cobert, que utilitza un interruptor de canya amb cable regular i un interruptor de contacte petit (final) d’una impressora 3D a l’obertura del pany (vegeu les imatges).
Aquí es descriu com utilitzar l’acció Telegram a Openhab.
Pas 5: millores i millores addicionals
En els darrers mesos vaig fer la següent millora.
Manejar obertures de portes llargues mitjançant un senyal d’impulsos autoconvertibles
A l’estiu, deixem la porta del darrere oberta durant unes hores quan som a casa. L’ESP-01 en funcionament amb connexió WiFi esgotaria innecessàriament la bateria. Per això, he inclòs un interruptor d’encesa / apagada per poder apagar el mòdul en aquestes situacions.
Tanmateix, això de vegades va resultar en un mòdul apagat permanentment (quan vaig oblidar-me d’encendre’l) i una bateria esgotada després d’unes tardes d’una porta oberta i un mòdul en funcionament (quan vaig oblidar apagar-lo).
Per això, volia poder apagar el mòdul mitjançant el programari després que el mòdul estigués encès durant un temps predefinit (1 minut).
No obstant això, on el pols "FET" de l'ESP-01 va apagar el TPL5111 quan la porta estava tancada, vaig descobrir que el TPL5111 no es canviava per un pols "FET" mentre el pin DELAY / M_DRV era ALT. Aquest senyal HIGH del pin DELAY / M_DRV va ser causat per la porta oberta i el contacte NC del commutador reed connectat a la tensió de la bateria.
Per tant, el senyal al pin DELAY / M_DRV no ha de ser contínuament ALTA, sinó que ha de ser pulsada. Al full de dades TPL5111 podeu trobar que ha de tenir un pols> 20 ms. Vaig fer aquest senyal d’autocomutació mitjançant un mosfet de canal P, un condensador i una resistència de 10K i 300K, vegeu l’esquema inclòs.
Funciona de la següent manera:
- Si el contacte NC del commutador reed està tancat, la porta és BAIXA i el Mosfet està engegat, donant lloc a un senyal ALTA al pin DELAY / M_DRV que activa el mòdul.
- El condensador es carrega ràpidament, cosa que provoca un augment de la tensió a la porta.
- Després d'aproximadament 20 ms, el voltatge a la porta és del 97% de la tensió de la bateria (300K / (300K + 10K) que és ALTA i el Mosfet està apagat, cosa que provoca un senyal BAIX al pin DELAY / M_DRV.
- Quan el pin DELAY / M_DRV és BAIX, el senyal FET de l’ESP-01 comporta l’aturada del mòdul.
Això s’implementa al programari; un loop de temps no només comprova si la porta encara està oberta, sinó que també comprova si el mòdul no està encès massa temps. Si s’activa massa temps, publica un valor NULL (estat no definit de la porta). En aquest cas, no sé si la porta està oberta o tancada i no arribo a tots els objectius esmentats a la presentació, però la durada de la bateria és més important i la majoria de les vegades tornem a obrir la porta més tard aquell dia, donant lloc a un estat tancat confirmat. de la porta.
És important utilitzar un Mosfet de canal P que sigui adequat per al rang de voltatge utilitzat aquí. El Mosfet ha d'estar completament encès a un VGS d'aproximadament - 3,8 V i completament apagat a un VGS d'aproximadament -0,2 V. He provat diversos Mosfets i he descobert que un IRLML6401TRPBF funciona bé per a aquest objectiu en combinació amb les resistències de 10 K i 300 K. Un condensador d’1 uF funciona bé per obtenir una longitud de pols d’uns 20 ms. Un condensador més gran resulta en un impuls més llarg, que no és necessari, ja que el TPL5111 es va activar. Vaig utilitzar el meu oscil·loscopi DSO150 per comprovar les tensions i la longitud de pols.
Millora prevista: actualització OTA
Tinc previst incorporar una actualització OTA mitjançant el següent procediment, que ja està inclòs en part al programari actual
- A través d'Openhab de NodeRed publico un missatge d'actualització retingut i un tema d'actualització.
- Si el mòdul està encès i connectat al servidor MQTT i està subscrit al "tema d'actualització", rebrà el missatge d'actualització.
- El missatge d'actualització evitarà que el mòdul s'apagui i s'iniciï el servidor
- A través del lloc web de HTTPUpdateServer, podeu actualitzar el programari.
- Via Openhab de NodeRed publico un missatge "buit" retingut i un "tema d'actualització".
Millora prevista: aturada del maquinari després d'un temps predefinit
En l’esquema actual, faig servir una resistència de 200K entre el DELAY / M_DRV i el GND del TPL5111. Això encén el mòdul durant més de 2 hores (vegeu 7.5.3. Del full de dades TPL5111). Tanmateix, no vull que el mòdul s'encengui tant de temps, perquè la bateria s'esgota. Si la solució de programari (vegeu més amunt) no apaga el mòdul o el missatge d'actualització no desitjat posa el mòdul en mode d'actualització, el mòdul romandrà encès durant molt de temps.
Per tant, és millor utilitzar una resistència més petita entre el DELAY / M_DRV i el GND del TPL5111, de manera que el mòdul s’apaga al cap de poc temps, per exemple, una resistència de 50K que resulta en un temps d’encès de 7 minuts.
Recomanat:
Sensor de nivell del col·lector d'aigua alimentat per bateria: 7 passos (amb imatges)
Sensor de nivell del col·lector d’aigua alimentat per piles: la nostra casa té un dipòsit d’aigua alimentat per la pluja que cau al terrat i s’utilitza per al vàter, la rentadora i les plantes del reg. Durant els darrers tres anys, els estius van ser molt secs, de manera que vam vigilar el nivell de l’aigua al dipòsit. S
Sensor d'humitat floral IOT WiFi (alimentat per bateria): 8 passos (amb imatges)
Sensor d’humitat de flor IOT WiFi (alimentat per bateria): en aquest instructiu us presentem com construir un sensor d’humitat / aigua WiFi amb un monitor de nivell de bateria en menys de 30 minuts. El dispositiu controla un nivell d'humitat i envia dades a un telèfon intel·ligent per Internet (MQTT) amb un interval de temps escollit. U
Tira LED de 12v controlada per Wifi mitjançant Raspberry Pi amb Tasker, integració Ifttt .: 15 passos (amb imatges)
Cinta de 12v controlada per Wifi mitjançant Raspberry Pi amb Tasker, integració Ifttt. estic fent servir un Raspberry Pi 1 Model B +) 1x RGB 12v Le
ESP IoT alimentat per bateria: 10 passos (amb imatges)
ESP IoT alimentat per bateria: aquests instructius mostren com fer una base IoT ESP alimentada per bateria en el disseny dels instructables anteriors
Disseny ESP alimentat per bateria: 3 passos (amb imatges)
Disseny d'ESP alimentat per bateria: aquest instructiu mostra com reduir l'ús de la bateria mentre es desenvolupa un dispositiu IoT basat en ESP