Tabla de contenido:

Alarma de agua IoT: 5 pasos (con imágenes)
Alarma de agua IoT: 5 pasos (con imágenes)

Video: Alarma de agua IoT: 5 pasos (con imágenes)

Video: Alarma de agua IoT: 5 pasos (con imágenes)
Video: Cámara 360 wifi app HD IOT CAMERA conexión configuración ap router datos funciones empezás a usar. 2024, Noviembre
Anonim
Alarma de agua de IoT
Alarma de agua de IoT

Recientemente he experimentado un desagüe en la cocina. Si no hubiera estado en casa en ese momento, habría causado daños en el piso y los paneles de yeso en mi apartamento. Afortunadamente, era consciente del problema y estaba listo para sacar el agua con un balde. Esto me hizo pensar en comprar una alarma contra inundaciones. Descubrí muchos productos asequibles en Amazon, pero los que tenían conectividad a Internet tenían un porcentaje significativo de críticas negativas, principalmente debido a problemas con los servicios de notificación de propiedad. Es por eso que decidí hacer mi propia alarma de agua de IoT que usaría los medios de notificación confiables de mi elección.

Paso 1: Principio de funcionamiento

Principio de funcionamiento
Principio de funcionamiento

La alarma tiene un microcontrolador AVR ATtiny85 como cerebro. Toma lecturas de voltaje de la batería y el sensor de agua y las compara con un valor predefinido para detectar la presencia de agua o una condición de batería baja.

El sensor de agua es simplemente dos cables colocados aproximadamente a 1 mm de distancia. Uno de los cables está conectado a 3.3 V, y el otro está conectado a un pin de detección en el microcontrolador, que también está conectado a tierra a través de una resistencia de 0.5 MOhm. Normalmente, la resistencia entre los cables del sensor es muy alta (más de 10 MOhm), por lo que el pin de detección se tira hasta 0 V. Sin embargo, cuando hay agua presente entre los cables, la resistencia cae a menos de 1 MOhm. y el pin de detección ve algo de voltaje (en mi caso, alrededor de 1,5 V). Cuando ATtiny85 detecta este voltaje en el pin de detección, activa un MOSFET para encender un zumbador y envía la señal de activación al módulo ESP8266 que es responsable de enviar alertas (correo electrónico y notificaciones automáticas). Después de un minuto de zumbido, la alarma se desactiva y solo se puede restablecer mediante un ciclo de energía.

Esta unidad funciona con dos pilas alcalinas o NiMH. El microcontrolador está dormido la mayor parte del tiempo para conservar las baterías, despertando intermitentemente para verificar el sensor de agua así como el voltaje de las baterías. Si las baterías están bajas, el microcontrolador activa el módulo ESP8266 para enviar una advertencia de batería baja. Después de la advertencia, la alarma se desactiva para evitar la descarga excesiva de la batería.

Dado que el módulo ESP8266 es responsable de enviar tanto advertencias de batería baja como alertas de inundación, requiere una señal de control de ATiny85. Debido al número limitado de pines disponibles, esta señal de control es generada por el mismo pin responsable de la indicación del LED de la batería. Durante el funcionamiento normal (la alarma está armada y las baterías están cargadas), el LED parpadea intermitentemente. Cuando se detecta la condición de batería baja, el LED se enciende para proporcionar una señal alta al pin RX del módulo ESP. Si se detecta agua, el LED de la batería se apagará mientras el ESP8266 esté activo.

Paso 2: diseño y montaje

Diseño y Montaje
Diseño y Montaje
Diseño y Montaje
Diseño y Montaje
Diseño y Montaje
Diseño y Montaje

Diseñé el circuito para que se construyera en un protoboard de 4x6 cm de doble cara utilizando principalmente piezas 0805 SMD. Los esquemas presentados se basan en esta construcción, pero se puede adaptar fácilmente para componentes de orificio pasante (consejo: para minimizar el espacio, suelde las resistencias de orificio pasante verticalmente).

Se requieren las siguientes partes:

- Resistencias: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Un condensador cerámico de 10 µF - Un MOSFET de canal N de nivel lógico (por ejemplo, RFP30N06LE o AO3400) - Un LED rojo y uno amarillo (u otros colores si lo desea) - Conectores de terminal de tornillo de dos hilos x 3 (no lo son) absolutamente necesario, pero facilitan la conexión y desconexión de la periferia durante la prueba) - Un zumbador piezoeléctrico fuerte que es bueno para 3.3 V - Un microcontrolador ATtiny85 (versión PDIP) - Un enchufe PDIP de 8 pines para el microcontrolador - Un módulo ESP-01 (puede ser sustituido por otro módulo basado en ESP8266, pero habrá muchos cambios en el diseño en ese caso) - Un convertidor elevador CC-CC de 3.3 V capaz de entregar corrientes de 200 mA (ráfaga de 500 mA) a 2.2 V aporte. (Recomiendo https://www.canton-electronics.com/power-converter … debido a su corriente de reposo ultrabaja) - Un conector hembra de 3 pines - Dos conectores hembra de 4 pines o un conector 2x4 - Cables sólidos 22 AWG para el sensor de agua: cable trenzado de 22 AWG (u otro tipo de cable delgado expuesto para crear rastros)

Recomiendo los valores de resistencia enumerados anteriormente, pero puede sustituir la mayoría de ellos por valores similares. Dependiendo del tipo de LED que desee utilizar, es posible que deba ajustar los valores de la resistencia limitadora de corriente para obtener el brillo deseado. El MOSFET puede ser de orificio pasante o SMT (SOT23). Solo la orientación de la resistencia de 330 ohmios se ve afectada por el tipo de MOSFET. Se recomienda un fusible PTC (por ejemplo, clasificado para 1 A) si planea usar este circuito con baterías de NiMH. Sin embargo, no es necesario con pilas alcalinas. Consejo: las piezas necesarias para esta alarma se pueden comprar a bajo precio en ebay o aliexpress.

Además, necesitará una placa de pruebas, varias resistencias de 10k de orificio pasante, varios cables de puente macho-macho y hembra-macho ("dupont") y un adaptador USB-UART para programar el módulo ESP-01.

El sensor de agua se puede fabricar de varias formas, pero la más simple son dos cables 22 AWG con extremos expuestos (1 cm de largo) separados aproximadamente 1 mm. El objetivo es tener una resistencia de menos de 5 MΩ entre los contactos del sensor cuando hay agua.

El circuito está diseñado para una máxima economía de batería. Extrae solo 40-60 µA en el régimen de monitoreo (con el LED de encendido quitado en el módulo ESP-01). Una vez que se activa la alarma, el circuito consumirá 300-500 mA (a una entrada de 2,4 V) durante un segundo o menos, y luego la corriente caerá por debajo de 180 mA. Una vez que el módulo ESP haya terminado de enviar notificaciones, el consumo de corriente caerá por debajo de 70 mA hasta que el zumbador se apague. Entonces la alarma se desarmará sola y el consumo de corriente será inferior a 30 µA. Por lo tanto, un juego de baterías AA podrá alimentar el circuito durante muchos meses (probablemente más de un año). Si usa un convertidor elevador diferente, digamos con una corriente de reposo de 500 µA, las baterías deberán cambiarse con mucha más frecuencia.

Consejos de montaje:

Use un marcador permanente para etiquetar todos los rastros y componentes en el protoboard para facilitar la soldadura. Recomiendo proceder en el siguiente orden:

- LED SMT del lado superior y puentes de cables aislados

- MOSFET de la parte superior (nota: si tiene un MOSFET SOT-23, colóquelo en diagonal como en la foto. Si está usando un MOSFET de orificio pasante, colóquelo horizontalmente con el pasador de la puerta en la posición I3).

- partes del orificio pasante del lado superior (nota: el zumbador no está soldado y ni siquiera tiene que montarse en la PCB)

- Partes y trazas SMT del reverso (por ejemplo, hebras individuales de cable AWG22)

Paso 3: firmware

Código C para ATtiny85

Main.c contiene el código que debe compilarse y cargarse en el microcontrolador. Si va a utilizar una placa Arduino como programador, puede encontrar el diagrama de cableado en este tutorial. Debe seguir solo las siguientes secciones (ignore el resto):

- Configuración de Arduino Uno como ISP (programación en el sistema)

- Conectando ATtiny85 con Arduino Uno.

Para compilar y cargar el firmware, necesitará CrossPack (para Mac OS) o la cadena de herramientas AVR (para Windows). Es necesario ejecutar el siguiente comando para compilar el código:

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

Para cargar el firmware, ejecute lo siguiente:

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

En lugar de "/dev/cu.usbmodem1411", probablemente necesitará insertar el puerto serie al que está conectado su Arduino (puede encontrarlo en el IDE de Arduino: Puerto de herramientas).

El código contiene múltiples funciones. deep_sleep () hace que el microcontrolador entre en un estado de muy bajo consumo de energía durante aproximadamente 8 segundos. read_volt () se utiliza para medir los voltajes de la batería y del sensor. El voltaje de la batería se mide contra la referencia de voltaje interno (2.56 V más o menos un pequeño porcentaje) mientras que el voltaje del sensor se mide contra Vcc = 3.3 V. Las lecturas se comparan con BATT_THRESHOLD y SENSOR_THRESHOLD definidos como 932 y 102 respectivamente, que corresponden a ~ 2,3 y 0,3 V. Es posible que pueda reducir el valor del umbral de la batería para mejorar la vida útil de la batería, pero no se recomienda (consulte Consideraciones sobre la batería para obtener información detallada).

active_alarm () notifica al módulo ESP sobre la detección de agua y hace sonar el timbre. low_batt_notification () notifica al módulo ESP que la batería está baja y también hace sonar el timbre. Si no desea que lo despierten en medio de la noche para cambiar la batería, elimine "| 1 <" en low_batt_notification ().

Boceto de Arduino para ESP-01

Elegí programar el módulo ESP usando Arduino HAL (siga el enlace para las instrucciones de configuración). Además utilicé las siguientes dos bibliotecas:

ESP8266 Enviar correo electrónico por Górász Péter

ESP8266 Pushover por el equipo de Arduino Hannover

La primera biblioteca se conecta a un servidor SMTP y envía una alerta a su dirección de correo electrónico. Simplemente cree una cuenta de Gmail para su ESP y agregue las credenciales al código. La segunda biblioteca envía notificaciones automáticas a través del servicio Pushover (las notificaciones son gratuitas, pero debe pagar una vez para instalar la aplicación en su teléfono / tableta). Descarga ambas bibliotecas. Coloque el contenido de la biblioteca Enviar correo electrónico en su carpeta de bocetos (arduino lo creará cuando abra el boceto de arduino por primera vez). Instale la biblioteca Pushover a través del IDE (Sketch -> Incluir biblioteca -> Agregar biblioteca. ZIP).

Para programar el módulo ESP-01, puede seguir el siguiente tutorial: https://www.allaboutcircuits.com/projects/breadbo … No es necesario que se moleste en volver a soldar una fila de pines como se muestra en la guía, solo use dupont hembra-macho cables para conectar los pines del módulo a la placa de pruebas. No olvide que el convertidor elevador y el adaptador USB-UART tienen que compartir tierra (nota: es posible que pueda usar la salida de 3.3 V del adaptador USB-UART en lugar del convertidor elevador, pero lo más probable es que no sea así ser capaz de generar suficiente corriente).

Paso 4: Consideraciones sobre la batería

El código de firmware suministrado está preconfigurado para enviar una advertencia de batería baja y se apaga a ~ 2,3 V. Este umbral se basa en la suposición de que se utilizan dos baterías de NiMH en serie. No se recomienda descargar ninguna celda individual de NiMH por debajo de 1 V. Suponiendo que ambas celdas tengan la misma capacidad y características de descarga, ambas se cortarán a ~ 1,15 V, dentro del rango seguro. Sin embargo, las celdas de NiMH que se han utilizado durante muchos ciclos de descarga tienden a diferir en capacidad. Se puede tolerar una diferencia de capacidad de hasta un 30%, ya que aún resultaría en el punto de corte de celda de voltaje más bajo alrededor de 1 V.

Si bien es posible reducir el umbral de batería baja en el firmware, hacerlo eliminaría el margen de seguridad y podría provocar una descarga excesiva de la batería y daños, mientras que solo se espera un aumento marginal en la vida útil de la batería (una celda de NiMH es> 85% descargado a 1,15 V).

Otro factor que debe tenerse en cuenta es la capacidad del convertidor elevador para proporcionar al menos 3,0 V (2,5 V según la evidencia anecdótica) a una corriente máxima de 300-500 mA con baterías bajas. La baja resistencia interna de las baterías de NiMH provoca solo una caída insignificante de 0,1 V en las corrientes máximas, por lo que un par de pilas de NiMH descargadas a 2,3 V (circuito abierto) podrán proporcionar al menos 2,2 V al convertidor elevador. Sin embargo, es más complicado con pilas alcalinas. Con un par de baterías AA a 2.2-2.3 V (circuito abierto), se espera una caída de voltaje de 0.2-0.4 V en las corrientes máximas. Aunque he verificado que el circuito funciona con el convertidor elevador recomendado con tan solo 1.8 V suministrados a corrientes pico, esto probablemente hace que el voltaje de salida caiga momentáneamente por debajo del valor sugerido por el Espressiff. Por lo tanto, el umbral de corte de 2,3 V deja poco margen de seguridad con las baterías alcalinas (tenga en cuenta que una medición de voltaje realizada por el microcontrolador es precisa solo dentro de más o menos un pequeño porcentaje). Para asegurarse de que el módulo ESP no falla cuando las baterías alcalinas están bajas, recomiendo aumentar el voltaje de corte a 2.4 V (#define BATT_THRESHOLD 973). A 1,2 V (circuito abierto), una celda alcalina se descarga aproximadamente en un 70%, lo cual es solo 5-10 puntos porcentuales más bajo que el grado de descarga a 1,15 V por celda.

Tanto las pilas de NiMH como las alcalinas tienen ventajas y desventajas para esta aplicación. Las pilas alcalinas son más seguras (no se incendian si están en cortocircuito) y tienen una tasa de autodescarga mucho más baja. Sin embargo, las baterías de NiMH garantizan un funcionamiento fiable del ESP8266 en un punto de corte más bajo gracias a su baja resistencia interna. Pero, en última instancia, cualquier tipo se puede usar con algunas precauciones, por lo que es solo una cuestión de preferencia personal.

Paso 5: descargo de responsabilidad legal

Este circuito fue diseñado por un aficionado no profesional solo para aplicaciones de afición. Este diseño se comparte de buena fe, pero sin garantía alguna. Úselo y compártalo con otros bajo su propio riesgo. Al recrear el circuito, usted acepta que el inventor no será responsable de ningún daño (incluidos, entre otros, el deterioro de los bienes y las lesiones personales) que puedan ocurrir directa o indirectamente a través del mal funcionamiento o el uso normal de este circuito. Si las leyes de su país anulan o prohíben esta exención de responsabilidad, no puede utilizar este diseño. Si comparte este diseño o un circuito modificado basado en este diseño, debe acreditar al inventor original indicando la URL de este instructivo.

Recomendado: