Taula de continguts:

Alarma d'aigua IoT: 5 passos (amb imatges)
Alarma d'aigua IoT: 5 passos (amb imatges)

Vídeo: Alarma d'aigua IoT: 5 passos (amb imatges)

Vídeo: Alarma d'aigua IoT: 5 passos (amb imatges)
Vídeo: Аномально вкусно‼️ ЧЕХОСЛОВАЦКИЙ СУП ИЗ ФАРША. Жена Липована в шоке. 2024, Juliol
Anonim
Alarma d’aigua IoT
Alarma d’aigua IoT

Recentment he experimentat una còpia de seguretat de drenatges de cuina. Si no hagués estat a casa en aquell moment, hauria causat danys al terra i al tauler de guix al meu apartament. Afortunadament, era conscient del problema i estava preparat per treure l’aigua amb una galleda. Això em va fer pensar en comprar una alarma d'inundació. Vaig descobrir molts productes assequibles a Amazon, però els que tenien connectivitat a Internet tenien un percentatge significatiu de ressenyes negatives, principalment a causa de problemes amb els serveis de notificació propietaris. Per això, vaig decidir crear la meva pròpia alarma d’aigua IoT que fes servir mitjans de notificació fiables que trie.

Pas 1: Principi de funcionament

Principi de funcionament
Principi de funcionament

L’alarma té com a cervell un microcontrolador AVR ATtiny85. Pren lectures de tensió de la bateria i del sensor d’aigua i les compara amb un valor predefinit per detectar la presència d’aigua o un estat de bateria baixa.

El sensor d’aigua és simplement de dos cables situats aproximadament a 1 mm de distància. Un dels cables està connectat a 3,3 V i l’altre està connectat a un pin de detecció del microcontrolador, que també es connecta a terra mitjançant una resistència de 0,5 MOhm. Normalment, la resistència entre els cables del sensor és molt elevada (molt més de 10 MOhm), de manera que el passador de detecció es tira fins a 0 V. Tot i això, quan hi ha aigua present entre els cables, la resistència baixa a menys d’1 MOhm, i el pin sensor detecta una mica de tensió (en el meu cas aproximadament 1,5 V). Quan ATtiny85 detecta aquest voltatge al pin de detecció, activa un MOSFET per encendre un brunzidor i envia el senyal de despertador al mòdul ESP8266 que s’encarrega d’enviar alertes (notificacions per correu electrònic i push). Després d'un minut de brunzit, l'alarma es desactiva i només es pot restablir mitjançant el funcionament en bicicleta.

Aquesta unitat surt de dues cèl·lules alcalines o de NiMH. El microcontrolador dorm la major part del temps per conservar les bateries i es desperta de manera intermitent per comprovar el sensor d’aigua i el voltatge de les bateries. Si les bateries són baixes, el microcontrolador desperta el mòdul ESP8266 per enviar un avís de bateria baixa. Després de l'advertiment, l'alarma es desactiva per evitar la sobrecàrrega de la bateria.

Atès que el mòdul ESP8266 és responsable d'enviar tant avisos de bateria baixa com alertes d'inundació, requereix un senyal de control d'ATiny85. A causa del nombre limitat de pins disponibles, aquest senyal de control el genera el mateix pin responsable de la indicació del LED de la bateria. Durant el funcionament normal (l'alarma està activada i les bateries carregades), el LED parpelleja de manera intermitent. Quan es detecta l’estat de la bateria baixa, el LED s’encén per proporcionar un senyal elevat al pin RX del mòdul ESP. Si es detecta aigua, el LED de la bateria s’apagarà mentre l’ESP8266 estigui despert..

Pas 2: Disseny i muntatge

Disseny i muntatge
Disseny i muntatge
Disseny i muntatge
Disseny i muntatge
Disseny i muntatge
Disseny i muntatge

Vaig dissenyar el circuit per construir-lo en una protoborda de 4x6 cm de doble cara amb la majoria de peces SMD de 0805. Els esquemes presentats es basen en aquesta construcció, però es poden adaptar fàcilment per a components de forats passants (consell: per minimitzar l’espai, soldar verticalment les resistències de forats passants).

Es requereixen les parts següents:

- Resistències: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Un condensador ceràmic de 10 µF - Un MOSFET de canal N de nivell lògic (per exemple, RFP30N06LE o AO3400) - Un LED vermell i un de color groc (o altres colors si ho desitgeu). és absolutament necessari, però faciliten la connexió i la desconnexió de la perifèria durant les proves): un sonor piezoofònic fort que és bo per a 3,3 V; un microcontrolador ATtiny85 (versió PDIP); un sòcol PDIP de 8 pins per al microcontrolador; un mòdul ESP-01 (es pot substituir per un altre mòdul basat en ESP8266, però hi haurà molts canvis en la disposició en aquest cas): un convertidor d’impulsió CC-CC de 3,3 V capaç d’oferir corrents de 200 mA (500 mA en ràfegues) a 2,2 V entrada. (Recomano https://www.canton-electronics.com/power-converter… a causa del seu corrent en repòs ultra-baix): una capçalera femella de 3 pins; per al sensor d'aigua: filferro filat de 22 AWG (o un altre tipus de fil exposat prim per crear traces)

Recomano els valors de resistència enumerats anteriorment, però podeu substituir la majoria per valors similars. Depenent del tipus de LED que vulgueu utilitzar, és possible que hàgiu d'ajustar els valors de la resistència que limiten el corrent per obtenir la brillantor desitjada. El MOSFET pot ser forat passant o SMT (SOT23). El tipus de MOSFET només afecta l’orientació de la resistència de 330 Ohm. Es recomana un fusible PTC (per exemple, nominal de 1 A) si teniu previst utilitzar aquest circuit amb bateries de NiMH. No obstant això, no és necessari amb bateries alcalines. Consell: les peces necessàries per a aquesta alarma es poden comprar econòmicament a ebay o aliexpress.

A més, necessitareu una placa de configuració, diverses resistències de 10 k a través dels forats, diversos cables jumper home-home i femella-home ("dupont") i un adaptador USB-UART per programar el mòdul ESP-01.

El sensor d'aigua es pot fabricar de diverses maneres, però el més senzill són dos cables de 22 AWG amb extrems exposats (1 cm de llarg) espaiats aproximadament a 1 mm de distància. L’objectiu és tenir una resistència inferior a 5 MΩ entre els contactes del sensor quan hi ha aigua.

El circuit està dissenyat per a la màxima economia de bateria. Dibuixa només 40-60 µA en el règim de supervisió (amb el LED d’alimentació retirat al mòdul ESP-01). Un cop activada l'alarma, el circuit atraurà 300-500 mA (a 2,4 V d'entrada) durant un segon o menys i, després, el corrent baixarà de 180 mA. Un cop el mòdul ESP estigui enviat notificacions, el consum actual baixarà de menys de 70 mA fins que el brunzidor s'apagui. Llavors, l'alarma es desarmarà i el consum actual serà inferior a 30 µA. Així, un conjunt de bateries AA podran alimentar el circuit durant molts mesos (probablement durant un any). Si utilitzeu un convertidor d’impulsió diferent, per exemple, amb un corrent en repòs de 500 µA, caldrà canviar les bateries molt més sovint.

Consells de muntatge:

Utilitzeu un marcador permanent per etiquetar totes les traces i components de la protoborda per facilitar la soldadura. Us recomano continuar en l'ordre següent:

- LED SMT laterals superiors i ponts de filferro aïllats

- MOSFET lateral superior (nota: si teniu un MOSFET SOT-23, col·loqueu-lo en diagonal com a la foto. Si feu servir un MOSFET de forat, col·loqueu-lo horitzontalment amb el passador de la porta a la posició I3).

- Part superior dels orificis de la part superior (nota: el brunzidor no està soldat ni tan sols s’ha de muntar al PCB)

- Peces i traços SMT del revers (per exemple, fils individuals de filferro AWG22)

Pas 3: Firmware

Codi ATtiny85

Main.c conté el codi que cal compilar i penjar al microcontrolador. Si utilitzeu una placa Arduino com a programador, podeu trobar el diagrama de cablejat en aquest tutorial. Només heu de seguir les seccions següents (ignorar la resta):

- Configuració d'Arduino Uno com a ISP (programació integrada al sistema)

- Connectant ATtiny85 amb Arduino Uno.

Per compilar i penjar el firmware, necessitareu CrossPack (per a Mac OS) o cadena d’eines AVR (per a Windows). Cal executar l'ordre següent per compilar el codi:

avr-gcc -Os -mmcu = attiny85 -c main.c; avr-gcc -mmcu = attiny85 -o main.elf main.o; avr-objcopy -j.text -j.data -O ihex main.elf main.hex

Per carregar el firmware, executeu el següent:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

En lloc de "/dev/cu.usbmodem1411" és probable que hàgiu d'inserir el port sèrie al qual està connectat el vostre Arduino (el trobareu a l'IDE d'Arduino: Port d'eines).

El codi conté múltiples funcions. deep_sleep () fa que el microcontrolador entri en un estat de potència molt baix durant aproximadament 8 segons. read_volt () s’utilitza per mesurar la tensió de la bateria i del sensor. La tensió de la bateria es mesura contra la referència de la tensió interna (2,56 V més o menys un percentatge), mentre que la tensió del sensor es mesura contra Vcc = 3,3 V. Les lectures es comparen amb BATT_THRESHOLD i SENSOR_THRESHOLD definits com 932 i 102 respectivament, que corresponen a ~ 2,3 i 0,3 V. És possible que pugueu reduir el valor del llindar de la bateria per millorar la durada de la bateria, però no es recomana (consulteu les consideracions sobre la bateria per obtenir informació detallada).

activate_alarm () notifica al mòdul ESP sobre la detecció d’aigua i fa sonar el brunzidor. low_batt_notification () notifica al mòdul ESP que la bateria està baixa i també sona el brunzidor. Si no voleu que us despertin a mitja nit per canviar la bateria, traieu "| 1 <" a low_batt_notification ().

Esbós Arduino per a ESP-01

Vaig optar per programar el mòdul ESP mitjançant Arduino HAL (seguiu l’enllaç per obtenir instruccions de configuració). A més, he utilitzat les dues biblioteques següents:

ESP8266 Enviar correu electrònic per Górász Péter

ESP8266 Pushover de l'equip Arduino Hannover

La primera biblioteca es connecta a un servidor SMTP i envia una alerta a la vostra adreça de correu electrònic. Només heu de crear un compte de Gmail per al vostre ESP i afegir les credencials al codi. La segona biblioteca envia notificacions push mitjançant el servei Pushover (les notificacions són gratuïtes, però heu de pagar una vegada per instal·lar l’aplicació al telèfon / tauleta). Descarregueu les dues biblioteques. Introduïu el contingut de la biblioteca Enviar correu electrònic a la carpeta d'esbossos (arduino el crearà quan obriu l'esbós d'arduino per primera vegada). Instal·leu la biblioteca Pushover mitjançant l’IDE (Sketch -> Include Library -> Add. ZIP library).

Per programar el mòdul ESP-01, podeu seguir el següent tutorial: https://www.allaboutcircuits.com/projects/breadbo… No us heu de preocupar de tornar a soldar una fila de pins, tal com es mostra a la guia; només cal que utilitzeu dupont femella-home per connectar els pins del mòdul a la placa de control. No oblideu que el convertidor boost i l’adaptador USB-UART han de compartir terra (nota: és possible que pugueu utilitzar la sortida de 3,3 V de l’adaptador USB-UART en lloc del convertidor boost, però és probable que no poder generar prou corrent).

Pas 4: Consideracions sobre la bateria

El codi de firmware subministrat està preconfigurat per enviar un avís de bateria baixa i apagar-se a ~ 2,3 V. Aquest llindar es basa en el supòsit que s’utilitzen dues bateries NiMH en sèrie. No es recomana descarregar cap cèl·lula individual de NiMH inferior a 1 V. Suposant que ambdues cèl·lules tenen la mateixa capacitat i característiques de descàrrega, totes dues es tallaran a ~ 1,15 V - bé dins del rang de seguretat. No obstant això, les cèl·lules de NiMH que s’utilitzen durant molts cicles de descàrrega tendeixen a diferir en la seva capacitat. Es pot tolerar fins a un 30% de diferència de capacitat, ja que encara resultaria en un punt de tall de la cèl·lula de voltatge més baix d’uns 1 V.

Tot i que és possible reduir el llindar baix de la bateria al microprogramari, fer-ho eliminaria el marge de seguretat i podria provocar una sobrecàrrega i danys de la bateria, mentre que només s’espera un augment marginal de la durada de la bateria (una cèl·lula NiMH és> 85% de descàrrega a 1,15 V).

Un altre factor que cal tenir en compte és la capacitat del convertidor d’impulsió per proporcionar com a mínim 3,0 V (2,5 V segons evidències anecdòtiques) a 300-500 mA de intensitat màxima en bateries baixes. La baixa resistència interna de les bateries de NiMH només provoca una caiguda insignificant de 0,1 V en els corrents màxims, de manera que un parell de cèl·lules de NiMH descarregades a 2,3 V (circuit obert) podran proporcionar almenys 2,2 V al convertidor d’impulsió. No obstant això, és més complicat amb les bateries alcalines. Amb un parell de bateries AA assegudes a 2,2-2,3 V (circuit obert), s’espera una caiguda de tensió de 0,2-0,4 V als corrents màxims. Tot i que he comprovat que el circuit funciona amb el convertidor d’augment recomanat amb només 1,8 V subministrats a corrents màxims, probablement això farà que la tensió de sortida caigui momentàniament per sota del valor suggerit per l’Espressiff. Per tant, el llindar de tall de 2,3 V deixa poc marge de seguretat amb les bateries alcalines (tingueu en compte que una mesura de voltatge realitzada pel microcontrolador només és precisa en un percentatge més o menys). Per tal de garantir que el mòdul ESP no falli quan les bateries alcalines estan baixes, recomano augmentar el voltatge de tall a 2,4 V (#define BATT_THRESHOLD 973). A 1,2 V (circuit obert), una cèl·lula alcalina està descarregada al voltant del 70%, que és només 5-10 punts percentuals inferior al grau de descàrrega a 1,15 V per cèl·lula.

Tant el NiMH com les cèl·lules alcalines tenen avantatges i desavantatges per a aquesta aplicació. Les bateries alcalines són més segures (no prenen foc si són curtes) i tenen una taxa d’autodescàrrega molt inferior. Tot i això, les bateries NiMH garanteixen un funcionament fiable de l’ESP8266 en un punt de tall inferior gràcies a la seva baixa resistència interna. Però, en última instància, qualsevol dels dos tipus es pot utilitzar amb algunes precaucions, de manera que només és qüestió de preferència personal.

Pas 5: avís legal

Aquest circuit ha estat dissenyat per un aficionat no professional només per a aplicacions de passatemps. Aquest disseny es comparteix de bona fe, però sense cap mena de garantia. Utilitzeu-lo i compartiu-lo amb la vostra responsabilitat. En recrear el circuit, accepteu que l’inventor no es farà responsable dels danys (inclosos, entre d'altres, el deteriorament dels actius i lesions personals) que es puguin produir directament o indirectament per un mal funcionament o per l'ús normal d'aquest circuit. Si les lleis del vostre país anul·len o prohibeixen aquesta renúncia a la responsabilitat, no podeu utilitzar aquest disseny. Si compartiu aquest disseny o un circuit modificat basat en aquest disseny, heu d'abonar l'inventor original indicant-ne l'URL.

Recomanat: