Taula de continguts:
- Pas 1: Esquema, requisits previs i parts
- Pas 2: Maquinari: caixa, commutador i cablejat
- Pas 3: Maquinari: l'ESP-01
- Pas 4: Programació de l'ESP-01
- Pas 5: Muntatge de tot
- Pas 6: utilitzar Node-RED per actuar sobre el missatge MQTT
- Pas 7: reflexions posteriors
Vídeo: Marcador de la bústia de correu amb tecnologia MQTT i Wifi: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Nota: s'actualitza amb un nou firmware, un esquema i consells per a un programador
Un parell d’anys em vaig embarcar en el meu propi projecte domòtic. Va començar creant un transmissor de 433 MHz controlat pel servidor amb un Arduino per canviar molts commutadors remots basats en PT2262. Més tard, vaig afegir un receptor basat en Arduino per a la meva estació meteorològica, vaig connectar el contacte de control del meu carregador EV, etc. Les coses creixien cada cop més entrellaçades (i complicades!). Així doncs, fa uns mesos vaig decidir estandarditzar tot basat en MQTT per a missatgeria, Node-RED per a automatització (ambdues funcionant en un únic Raspberry Pi B +) i MariaDb per a registre (executant-se al meu Synology NAS). Més tard, també vaig traslladar el broker MQTT (Mosquitto) i Node-RED al NAS.
Aquest instructiu descriu un projecte ximple i divertit que connecta la meva bústia de correu muntada al carrer en aquesta infraestructura domèstica. La idea és que si algú obre la bústia de correu muntada a la tanca a uns 10 metres de la porta d’entrada, em senyalitza al telèfon i, possiblement, a altres dispositius.
Pas 1: Esquema, requisits previs i parts
Esquema
En un nivell alt, la bústia hauria d’enviar un missatge MQTT únic al corredor quan s’obri, de manera que se n’informi els subscriptors d’aquest tema. Node-RED també es subscriu i fa certa automatització, en aquest cas enviant un missatge de correu electrònic i / o un missatge push al meu telèfon.
La bústia hauria de funcionar amb bateries i funcionar durant un any com a mínim i hauria de fer-ho mitjançant la meva xarxa WiFi. Com que despertar un microcontrolador i connectar-se a una xarxa WiFi pot trigar uns quants segons, no he pogut utilitzar l’interruptor d’activació per tallar l’alimentació. En lloc d'això, s'hauria de permetre que el processador acabi el seu negoci després que la tapa de la bústia ja s'hagi tancat.
Prerequisits
Suposo que teniu una modesta capacitat de soldar, heu treballat una mica amb l'IDE d'Arduino i heu instal·lat les plaques ESP8266 mitjançant el gestor de plaques. També heu de tenir un adaptador sèrie USB de 3,3 volts per programar el microcontrolador.
També suposo que teniu un corredor MQTT i un servidor Node-RED funcionant. Si no, hi ha moltes instruccions a Internet, però us aconsellaria fer una ruta mandrosa i utilitzar l'excel·lent script d'instal·lació de Peter Scargill si voleu executar-ho en qualsevol Pi o Ubuntu, o bé utilitzar la imatge d'Andreas Spiess per al Pi Zero W (enllaços a la descripció d’aquest vídeo), cosa que us estalviarà unes quantes hores de veure executar els scripts d’instal·lació. Com a alternativa, podeu fer que el firmware enviï un correu electrònic directament, però perdrà molta flexibilitat en fer-ho.
Parts
- 1 caixa de bateries tancada, 3 AA
- 2 piles AA
- 1 mòdul ESP8266. Per a aquest projecte he utilitzat un ESP-01
- 1 microinterruptor
- 1 resistència de 47K
- 1 resistència 4M7
- 1 condensador de 2.2uF
- 1 tub prim de plàstic. Vaig utilitzar un bolígraf
- 1 llumí gruixut o bastó de piruleta. Ha d’adaptar-se i moure’s fàcilment al tub de plàstic
Pas 2: Maquinari: caixa, commutador i cablejat
Vaig començar amb una antiga caixa de bateries d’una decoració nadalenca desapareguda. Va ser dissenyat per a tres bateries de mida AA. Com que l’ESP8266 funcionarà bé a 3 volts, podria utilitzar dues bateries i utilitzar la tercera posició per al microcontrolador. Fixeu-vos que la caixa tenia un petit compartiment addicional que podia utilitzar per a l’interruptor d’activació. He utilitzat un tipus d’interruptor molt comú que es mostra a les imatges, però he tret la molla que el bloqueja a la posició d’encès o apagat. Vaig soldar dos cables fins als contactes NC i els vaig enganxar a la caixa amb una petita gota de súper cola.
A continuació, vaig perforar un forat a la coberta superior que coincidia amb un tub de plàstic extret d’un bolígraf. El forat s’alinea exactament amb l’interruptor i guia un émbol fet amb un pal gruixut de llumins.
Finalment, he soldat dos cables més als contactes de la bateria i he guiat els quatre cables cap a la posició de la tercera bateria, on hi hauria de ser el microcontrolador.
Pas 3: Maquinari: l'ESP-01
Donat el requisit de WiFi, tot el projecte crida ESP8266. Aquest petit controlador WiFi s’ha convertit en el cavall de batalla preferit de la comunitat que fa jocs com a mòdul que es compra a menys de 2,50 EUR i integra una pila WiFi i TCP / IP completa, amb una capacitat més que suficient per executar els vostres propis programes. L’Arduino IDE (o Atom amb el connector PlatformIO) admet totalment l’ESP8266.
Normalment agafava un ESP-12F, però tenia una petita placa ESP-01 que era perfecta per al treball i s’adapta molt bé a la caixa de la bateria. L'únic problema és que és bastant complicat fer flash de firmware a l'ESP-01. Més informació al següent pas. Hi ha una modificació que cal fer: heu de treure el LED d’alimentació vermell de la placa, ja que dibuixa contínuament 3 mA. Amb el LED eliminat, el mòdul utilitza només unes poques desenes d’UA en mode deepsleep, que durarà més d’un any amb dues bateries AA de qualitat.
Va resultar que podia fer servir dues tires de capçaleres femelles de 4 pins i soldar els pocs components addicionals de forma gratuïta per poder treure l’ESP-01 per actualitzar el microprogramari, tot i que encara cabia al tercer compartiment de la bateria.
És molt important connectar correctament l'ESP. Feu servir el full de trucs anterior per connectar-lo de la manera següent.
- Bateria més a Vcc (D2), CH_PD (B2), RXD (D1), GPIO0 (C1), GPIO2 (B1) i una resistència de 47K.
- Bateria menys a GND (A1) i un cable del commutador.
- L'altre cable del commutador a un condensador 100nF i una resistència 4M7.
- Els extrems oberts de les dues resistències i el condensador a RST (C2).
- TXD (A2) pot romandre sense connexió.
Edició: Vaig haver de substituir l'ESP-01 perquè vaig cometre un error ximple i el vaig destruir. Va resultar que, per sorpresa meva, el nou ESP-01 no es va reiniciar amb el condensador 100nF original. Probablement té un disseny lleugerament diferent. El vaig substituir per un 2.2 uF i ara torna a funcionar
En acabar, tot es pot muntar a la caixa, però espereu, primer hem de programar el mòdul.
Pas 4: Programació de l'ESP-01
Per llançar el firmware del vostre ESP-01, podeu construir un equip petit o comprar un programador (gairebé) complet per aproximadament 1 euro.
Plataforma de maquinari de programació
Construeix una petita plataforma amb dues capçaleres femenines de nou per a l’ESP-01. A més, necessiteu un mòdul USB de sèrie, capaç de proporcionar 3,3 volts. Tingueu en compte que el xip ESP8266 no està endurit a 5 volts, de manera que un error aquí podria acabar amb el vostre mòdul. De totes maneres, usant de nou el full de trucs, connecteu el vostre equip de la manera següent:
- 3,3 V del mòdul USBSerial a Vcc, CH_PD, RST i GPIO2.
- GND del mòdul USBSerial a GND i GPIO0.
- TXD del mòdul USBSerial a RXD.
- RDX del mòdul USBSerial a TXD.
Programador previ a la construcció
Per divertit que sigui crear el vostre propi material, l’enfocament més mandrós és obtenir una interfície ESP-01 de sèrie des del vostre lloc de subhastes preferit. Vegeu la imatge superior. Això és molt més fàcil, compacte i fiable que una plataforma. Tanmateix, alguns d’aquests no són programadors, només interfícies en sèrie. Cal soldar un pont de filferro entre GND (pin A1) i GPIO0 (pin C1) a la part posterior de la interfície, vegeu la segona imatge. Tingueu en compte que l’ESP-01 s’ha de connectar amb l’antena cap al connector USB, no al revés.
Nota: també existeixen amb un interruptor, vegeu la tercera imatge, molt maca.
Carregueu el firmware
Suposant un IDE Arduino de 1.8.3 o posterior, seleccioneu Eines> Tauler i seleccioneu la placa que teniu. Per a un ESP-01 com he utilitzat, trieu "Mòdul ESP8266 genèric" i configureu les opcions següents (haurien de ser tots els valors predeterminats):
- Mode de flaix: DIO
- Freqüència de flaix: 40 MHz
- Freqüència de la CPU: 80 MHz
- Mida del flaix: 512 KB (64 KB SPIFFS) Nota: si utilitzeu una placa ESP-01 negra, trieu 1 MB (64 KB SPIFFS)
- Port de depuració: desactivat
- Nivell de depuració: cap
- Mètode de restabliment: ck
- Velocitat de càrrega 115200
- Port: seleccioneu el port connectat a la vostra interfície sèrie USB. Per al meu PC Ubuntu que era / dev / ttyUSB0
Connecteu l’equip / programador, carregueu l’esbós que podeu trobar aquí https://gitlab.com/jeroenmeijer/Mailbox.git. Proporcioneu les vostres credencials d’agent WiFi i MQTT i la vostra configuració d’IP a config.h i trieu Penja.
Pas 5: Muntatge de tot
Vaig perforar un forat per al tub de plàstic de la tapa interior de la bústia, el més a prop possible de la frontissa, i després vaig enganxar la caixa de la bateria a la part inferior d’aquesta tapa. A continuació, vaig fer servir un llumí gruixut com a pistó. Vaig fer servir un retall per tallar la llumina de manera que l’interruptor s’obrís si es tapava la tapa exterior. Vaig comprovar la connectivitat obrint la tapa mentre executava mosquitto_sub per supervisar els missatges MQTT (substituïu mqttbroker, usuari i contrasenya per la vostra configuració MQTT):
$ mosquitto_sub -h mqttbroker -v -t "stat / #" -u usuari -P contrasenya
Aproximadament sis segons després d'obrir la tapa exterior, es publica el següent missatge MQTT. Es fa servir el temps per activar el microcontrolador i establir la connexió WiFi i broker.
stat / mailbox / trigger {"vcc": 3050, "flap": true, "prev": 0, "RSSI": 29, "version": "005"}
Durant aquest temps, el microcontrolador va utilitzar aproximadament 70 mA. En acabar, entra en son profund i, en el meu cas, utilitza menys de 20uA. "flap" sempre és cert, "vcc" indica que el voltatge de la bateria en mV i "prev" hauria de ser 0. Si és 1 o 2, significa que la bústia de correu no ha pogut enviar un missatge abans, ja sigui perquè no es podia connectar a el WiFi, o perquè no es podia connectar al broker MQTT. "RSSI" és la força del senyal WiFi. Tots dos són molt útils per diagnosticar problemes.
És una bona idea controlar el voltatge de la bateria durant uns quants dies per assegurar-vos que el dispositiu funcioni tal com es volia i que no esgoti la bateria per algun motiu.
El microprogramari també es pot actualitzar per si mateix (OTA), però això està una mica més enllà de l’abast d’aquest instructiu. Per als interessats, la configuració OTA també es troba a config.h.
Pas 6: utilitzar Node-RED per actuar sobre el missatge MQTT
Finalment, he creat un flux senzill a Node-RED. El primer node es subscriu al tema de la bústia de correu (stat / postbox / trigger). Quan es rep un missatge, el segon node forma un correu electrònic *). L’últim node l’envia a la meva adreça de Gmail, fent servir gmail com a servidor SMTP. Aleshores, el meu telèfon m’avisarà del correu electrònic nou.
He afegit el flux Node-RED a un fragment de gitlab perquè pugueu importar-lo als vostres fluxos Node-RED.
Per descomptat, podeu afegir alguns nodes més, per exemple per registrar els esdeveniments de la bústia de correu a MariaDb o SqlLite, o crear alarmes addicionals quan el voltatge de la bateria baixi de 2,7 volts.
Feliç caça de correu!
*) Vegeu la pàgina següent, ara estic fent servir PushBullet en lloc de correu electrònic.
Pas 7: reflexions posteriors
Sempre hi ha aquesta sensació que les coses s’haurien pogut fer millor.
Interruptor
Hauria preferit utilitzar un (súper) imant i un contacte de canya en lloc de l’enfocament de l’èmbol una mica maldestre. Hi havia dues raons. Una d’elles és que no hi havia cap manera de fer funcionar això amb el tancament del contacte quan es va obrir la caixa, i que sempre estigués tancada significava que sempre fluiria un petit corrent. Retrospectivament, els menys d’1uA que circulen per la resistència 4M7 no haurien estat un gran problema en termes de durada de la bateria. L’altra era més pràctica. Vaig inventar aquest projecte dissabte i vaig escriure el programari, vaig construir-ho tot diumenge a partir del que hi havia al voltant. Simplement no tenia cap contacte de canya a la caixa brossa.
Nota: com comentava diy_bloke, els contactes de canya tendeixen a quedar-se enganxosos quan s’imanten durant molt de temps, de manera que potser l’èmbol no era una idea tan dolenta. Veurem. *)
Missatge sobre el buidatge
La bústia també envia un missatge en buidar-lo. Això no és un gran problema, però amb més gent de la casa rebent l'avís, es pot acabar en un bucle comprovant la bústia de correu desafiant tot el seu propòsit. Hi ha algunes maneres d’evitar-ho, com ara comprovar si s’aixeca la tapa interior i, si és així, no envieu cap missatge. O en lloc d’utilitzar l’interruptor de la tapa, instal·leu un detector a la part inferior de la bústia. O bé un petit botó de restabliment per prémer en buidar-lo. Tot i això, tot complicaria les coses i probablement empitjoraria la fiabilitat.
Missatgeria
L’enviament de correu electrònic és una manera bastant eficaç però crua de publicar l’advertència. Una manera més elegant seria una aplicació per a telèfons, però no he trobat cap aplicació de tauler de control Android MQTT que es pugui configurar per activar una alerta del sistema operatiu quan es rebi un missatge determinat. Si n’hi ha algun, afegiu-lo als comentaris. **)
*) Després de més d'un any en funcionament, resulta que el pal de piruletes que vaig utilitzar, bàsicament paper laminat dur, té tendència a escurçar-se sota la pressió constant del moll de l'interruptor. Després d'algunes solucions de problemes, el vaig substituir per un pal de fusta.
**) Ara faig servir PushBullet per a missatges push, separats del tauler de MQTT. Aquí es pot trobar una petita interfície Node-RED baixa a l'API. Assegureu-vos que proporcioneu el testimoni d’accés al node "Prepara per a pushbullet" i la vostra adreça de correu electrònic amb finalitats alternatives al node "Torna-ho a provar".
Recomanat:
Bústia intel·ligent de paquets (Packr): 13 passos (amb imatges)
Smart Parcel Letterbox (Packr): algunes persones no reben sovint cartes ni paquets. Han d’anar cada dia a la seva bústia per comprovar si hi ha correu nou, tant quan plou com quan brilla el sol. Per utilitzar aquest temps millor a la seva vida, aquí teniu aquesta bústia intel·ligent. Aquest ma
Notificador de bústia i porta de garatge: 5 passos (amb imatges)
Notificador de bústia i porta de garatge: aquest manual es basa en el notificador de bústia de Johan Moberg. En comparació amb aquest projecte, vaig fer alguns canvis: molt lluny de casa no només hi ha la bústia, sinó també el garatge. Es troben en un lloc prop de la carretera i la casa es troba a uns 5
Bústia connectada alimentada per energia solar: 12 passos (amb imatges)
Connected Letterbox Solar Powered: per al meu segon Ible, us descriuré els meus treballs sobre la meva bústia connectada. Després de llegir aquest manual (+ molts altres), i com que la meva bústia no és a prop de casa, em volia inspirar Obre les obres de Green Energy per connectar la meva bústia a
Sí - No: una bústia de correu basada en Arduino: 4 passos (amb imatges)
Sí - No: una bústia basada en Arduino: en aquest projecte us mostrarem com fer que la vostra bústia sigui més divertida i útil. Amb aquesta bústia, si hi ha una carta al vostre correu, teniu una bona llum que es mostra si teniu correu i podeu controlar aquesta bústia amb bluetooth per automàticament
Com reenviar el correu TIGERweb al vostre compte de correu electrònic: 5 passos
Com reenviar el vostre correu TIGERweb al vostre compte de correu electrònic: Siguem sincers, el correu TIGERweb és un problema que cal comprovar. El Microsoft Outlook Web Access és lent, complicat i, en general, desagradable d’utilitzar. Aquí és on entra aquest tutorial. Un cop hàgiu acabat aquí, esperem que pugueu comprovar tot el vostre correu electrònic de TIGERweb