4. Diseño de hardware - Carvaa-7/Challenge1_IoT GitHub Wiki
Diseño de hardware
Para construir HydroSentry seleccionamos diferentes sensores y actuadores que nos permiten obtener información tanto del almacenamiento de agua como de las condiciones ambientales.
Todos los componentes se conectan al ESP32, que se encarga de recibir la información de los sensores y controlar los diferentes elementos de salida.
Componentes utilizados
| Componente | Tipo | Función |
|---|---|---|
| ESP32 | Controlador | Procesar la información y controlar el sistema. |
| HC-SR04 | Sensor | Medir la distancia hasta la superficie del agua y determinar el nivel. |
| HX711 + celda de carga | Sensor | Medir el peso del tanque. |
| DHT22 | Sensor | Medir temperatura y humedad relativa. |
| LDR | Sensor | Medir la iluminación y obtener una estimación de radiación solar. |
| BMP180 | Sensor | Medir la presión atmosférica. |
| LCD 16x2 | Salida | Mostrar las variables y el estado del sistema. |
| LEDs | Salida | Indicar visualmente el nivel de riesgo. |
| Buzzer | Salida | Generar alertas sonoras. |
| Relé | Actuador/control | Permitir al ESP32 controlar la bomba. |
| Bomba de agua | Actuador | Recuperar el nivel de agua del tanque. |
| Botones | Entrada | Permitir navegar entre las pantallas del LCD. |
HC-SR04 — Nivel del agua
El HC-SR04 se utiliza para determinar el nivel de agua del tanque.
El sensor envía una señal ultrasónica hacia la superficie del agua y mide el tiempo que tarda en regresar el eco. A partir de esta distancia podemos determinar qué tan lleno se encuentra el tanque.
En nuestro sistema utilizamos una distancia mínima y máxima para convertir la lectura en un porcentaje de nivel:
- 5 cm → aproximadamente 100 % de nivel.
- 30 cm → aproximadamente 0 % de nivel.
De esta manera, cuando la distancia medida disminuye significa que el agua está subiendo, mientras que una distancia mayor indica que el nivel está bajando.
HX711 + celda de carga — Peso
La celda de carga se utiliza para obtener el peso del almacenamiento de agua.
Debido a que la señal generada por la celda de carga es muy pequeña, utilizamos el módulo HX711 para amplificarla y digitalizarla antes de enviarla al ESP32.
Esta medición permite tener una segunda referencia sobre la cantidad de agua almacenada.
DHT22 — Temperatura y humedad
El DHT22 permite obtener dos variables ambientales:
- Temperatura.
- Humedad relativa.
Estas variables son utilizadas dentro del análisis del riesgo hídrico, ya que las condiciones ambientales pueden influir en la evaporación y en la disponibilidad del agua.
LDR — Luz y radiación solar estimada
El LDR permite medir la cantidad de luz presente en el ambiente.
En HydroSentry utilizamos esta información para obtener una estimación de la radiación solar.
Es importante aclarar que el LDR no es un instrumento meteorológico especializado para medir radiación solar, por lo que el valor utilizado por el sistema corresponde a una estimación basada en la lectura de iluminación.
BMP180 — Presión atmosférica
El BMP180 se utiliza para medir la presión atmosférica.
Esta información se incorpora a la visualización del sistema para permitir al usuario consultar las condiciones ambientales del entorno.
LCD — Visualización
El LCD permite mostrar la información obtenida por los sensores y el estado actual del sistema.
El usuario puede navegar entre diferentes pantallas utilizando los botones.
Entre las variables y estados que se pueden consultar se encuentran:
- Nivel del tanque.
- Estado del tanque.
- Distancia medida por el HC-SR04.
- Peso.
- Temperatura.
- Humedad.
- Tendencia del nivel.
- Radiación solar estimada.
- Presión atmosférica.
- Riesgo hídrico.
Cuando el sistema entra en un estado de riesgo alto o crítico, el LCD cambia automáticamente a la pantalla de riesgo para que el usuario pueda identificar la situación rápidamente.
LEDs indicadores
Utilizamos cuatro LEDs para representar los estados del sistema:
| LED | Estado |
|---|---|
| Verde | Normal |
| Amarillo | Preventivo |
| Naranja | Alto |
| Rojo | Crítico |
Los LEDs permiten identificar visualmente el estado del sistema sin necesidad de consultar constantemente el LCD.
Buzzer
El buzzer funciona como una alerta sonora.
Cuando el riesgo llega al estado alto, el buzzer comienza a emitir una señal intermitente.
Cuando el sistema llega al estado crítico, la frecuencia de la alerta aumenta para diferenciar una situación más grave.
Relé y bomba de agua
La bomba de agua funciona como el actuador principal del sistema.
El ESP32 no controla directamente la bomba, sino que utiliza un relé como elemento de control.
La lógica implementada establece que:
- Cuando el nivel es igual o inferior al 19 %, la bomba se enciende.
- Cuando el nivel alcanza o supera el 61 %, la bomba se apaga.
Utilizamos estos dos valores para crear una histéresis y evitar que la bomba esté encendiéndose y apagándose constantemente cuando el nivel se encuentra cerca de un mismo punto.
De esta manera, el sistema no solamente detecta una condición de riesgo, sino que también puede realizar una acción mediante un actuador.
Conexión de los componentes
La conexión general del sistema se organiza alrededor del ESP32.
Los sensores funcionan como entradas, mientras que el LCD, los LEDs, el buzzer y el relé funcionan como elementos de salida o control.
La distribución detallada de pines y conexiones será presentada en el esquemático del sistema.
Esquemático
A continuación se incluirá el esquemático de interconexión de HydroSentry, donde se podrán observar las conexiones entre el ESP32, los sensores, los botones, el LCD, los LEDs, el buzzer y el módulo de relé.