Saltar a contenido
esp32

Microcontrolador · IoT · WiFi

📌 Sin versionar

ESP32 — Microcontrolador de campo

Los dispositivos que conectan el mundo físico con SmallCountry. Los ESP32 leen sensores (humedad, temperatura, peso de colmenas) y controlan actuadores (riego, válvulas). Son la Capa 1 de la arquitectura.

Como usuario

No se interactúa con ellos directamente. Están repartidos por la finca y el hogar, funcionando de forma autónoma. Si falla la comunicación con el servidor, cada ESP32 mantiene su último estado y sigue operando con lógica local de supervivencia.

Integración con otros servicios de SmallCountry

Servicio Relación
Mosquitto Publican y se suscriben a topics MQTT (protocolo de mensajería ligera para IoT)
Node-RED Procesa los datos y envía comandos
Shelly Actuadores complementarios para cargas de mayor potencia
Grafana Los datos de los sensores se visualizan en dashboards
Para el administrador (diseño previsto)

Comunicación por WiFi en la red IoT (vmbr3). Firmware versionado en Forgejo y desplegado vía OTA (PlatformIO). Cada ESP32 tiene watchdog hardware y lógica de supervivencia en modo isla: si pierde MQTT, opera con umbrales preprogramados. Healthcheck: verificar últimos mensajes MQTT en Node-RED.

Para el arquitecto (diseño previsto)

Relaciones con otros servicios

flowchart LR
    ESP32[ESP32 microcontroladores] -->|Publica sensores| Mosquitto[Mosquitto MQTT LXC 170]
    Mosquitto[Mosquitto MQTT LXC 170] -->|Suscribe comandos| ESP32[ESP32 microcontroladores]
    Mosquitto[Mosquitto MQTT LXC 170] -->|Envía datos| NodeRED[Node-RED LXC 161]
    NodeRED[Node-RED LXC 161] -->|Procesa y envía comandos| Mosquitto[Mosquitto MQTT LXC 170]
    NodeRED[Node-RED LXC 161] -->|Controla actuadores| Shelly[Shelly actuadores]
    Mosquitto[Mosquitto MQTT LXC 170] -->|Alimenta dashboards| Grafana[Grafana LXC 171]

Firmware estándar: PlatformIO + esp-ota-cicd. Código versionado en Forgejo. OTA (actualización de firmware por WiFi) unificado para todos los dispositivos. Lógica de supervivencia: si MQTT perdido > N segundos, usar últimos valores válidos o valores por defecto seguros.

Secciones relacionadas


🧩 Módulos y sensores por proyecto

🐔 Gallinero — 5 ESP32

Cantidad Módulo / Sensor Protocolo Ubicación Función
×15 RDM6300 / PN532 UART / SPI Puertas entrada, ponederos, paso pastoreo Lector RFID 125 kHz / 13.56 MHz para anillas en pata de gallina
×15 Bobina de cobre Marcos de puerta y ponederos Antena RFID: detecta paso de gallina por el umbral (rango 5-10 cm)
×15 HX711 + celda de carga GPIO Nidales del ponedero Detección de huevo puesto (>50 g) en cada nidal
×5 DHT22 1-Wire Interior gallinero Temperatura y humedad para bienestar animal
×5 Electrovalla perimetral Pastoreo Protección contra depredadores. Alerta vía ntfy si cae tensión
Anillas RFID Pasiva 125 kHz / 13.56 MHz Pata de cada gallina (<2 g) Identificación individual: ID único por ejemplar

🐝 Corral del Viento — Colmenas instrumentadas

Cantidad Módulo / Sensor Protocolo Ubicación Función
×N HX711 + célula de carga Bosche H30A GPIO Base de colmena Peso en tiempo real (detección de flujo de néctar, enjambrazón, reservas)
×N DHT22 1-Wire Interior colmena Temperatura y humedad de la cámara de cría
×N LoRa RFM95 SPI Colmenas sin WiFi Transmisión de datos a 2-5 km → gateway LoRa → MQTT
×1 Gateway LoRa (ESP32 + RFM95) SPI + Serial Casa Corazón Concentrador: recibe datos LoRa de colmenas Z1/Z2/Z6 y publica en MQTT

🌾 Agricultura Regenerativa — Suelo y biodiversidad

Cantidad Módulo / Sensor Protocolo Ubicación Función
×N Sensor capacitivo ×3 ADC Bancales clave (5, 15, 30 cm prof.) Humedad del suelo a tres profundidades
×N DS18B20 ×3 1-Wire Bancales clave Temperatura del suelo a tres profundidades
×N DHT22 1-Wire Casa Corazón + puntos cultivo Temperatura y humedad ambiental cada 5 min
×N ESP32-CAM + PIR HC-SR501 WiFi Refugios de poda, riberas Detección de fauna por movimiento → ráfaga 3 fotos → HTTP POST → MegaDetector
×N ESP32-CAM (interior) WiFi Cajas nido Ocupación, puesta, pollos (1 foto/día)
×N ESP32-CAM (macro) WiFi Hoteles de insectos Ocupación de tubos, identificación de especies
×1 INMP441 I2S Z1 (Cinco Fuentes, ~810 m) Micrófono MEMS 20Hz-20kHz para bioacústica BirdNET
×N Shelly WiFi Electroválvulas de riego Actuadores: abren/cierran riego por goteo según datos de humedad

🌦️ Proyecto Clima — 8 estaciones + 9 cámaras

Sensores base (todas las estaciones Z1-Z6, G1, G2):

Módulo / Sensor Protocolo Función
BME280 I2C Presión atmosférica, temperatura, humedad
DS18B20 ×3 1-Wire Temperatura del suelo a 5, 15 y 30 cm
Sensor capacitivo ×3 ADC Humedad del suelo a 5, 15 y 30 cm

Sensores específicos por zona:

Zona Ubicación Altitud Uso Sensores extra Cámara
Z1 Cinco Fuentes ~810 m Colmenas 🎤 INMP441 bioacústica 📷 PIR fauna
Z2 Casa Margarita ~790 m Colmenas 📷 PIR fauna
Z3 Huerto kiwis ~800 m Kiwis + frutales + cerezos 🔥 MLX90614 (CWSI) · mojado foliar 📷 Verdor + PIR
Z4 Castaños principal ~830 m Castaños + pasto (referencia) 🌧️ Pluviómetro · SHT31 alta precisión 📷 Verdor + PIR
Z5 Castaños secundario ~820 m Castaños (umbría) 📷 Verdor + PIR
Z6 Peña Redonda 🏔️ ~760 m Finca externa 1 ha 🌧️ Pluviómetro propio 📷 PIR fauna
G1 Gallinero 1 🐔 ~790 m Aves · huevos 🌡️ DHT22 int+ext · MQ-135 (NH₃) · 💡 BH1750 (luz) 📷 Bienestar
G2 Gallinero 2 🐔 ~795 m Aves · huevos 🌡️ DHT22 int+ext · MQ-135 (NH₃) · 💡 BH1750 (luz) 📷 Bienestar

🏠 Chapinería — Casa

Cantidad Módulo / Sensor Protocolo Función
×1 ESP32 + RT/P1P2 UART Climatización Daikin Altherma: congela última consigna si cae MQTT
×1 Shelly 1PM WiFi Bomba de achique del sótano: lógica local con sensor de nivel

🔌 Firmware estándar

PlatformIO + Arduino framework
├── WiFi Manager (conexión a red IoT vmbr3)
├── MQTT client (Mosquitto)
├── Watchdog hardware (reinicio en milisegundos si se bloquea)
├── Modo isla: si pierde MQTT > 60s → buffer SPIFFS → sincroniza al reconectar
├── Lógica de supervivencia: umbrales preprogramados para riego/climatización
├── OTA (Over-The-Air): actualización de firmware vía PlatformIO + WiFi
└── Drivers específicos según proyecto:
    ├── RFID reader (SPI/UART, polling 500ms) → Gallinero
    ├── HX711 load cell (lectura cada 5s, media móvil) → Gallinero + Colmenas
    ├── DHT22 (lectura cada 60s) → Gallinero + Agricultura
    ├── INMP441 I2S (buffer 10min WAV) → Proyecto Clima Z1
    ├── LoRa RFM95 → Colmenas + Z6 remoto
    └── ESP32-CAM OV2640 (programada 1/día o evento PIR) → Agricultura
Característica Detalle
Build PlatformIO (VS Code / CLI)
Versionado Forgejo (firmware/esp32-{proyecto}/)
Despliegue OTA vía PlatformIO + Forgejo Actions
Red vmbr3 (IoT finca) — WiFi dedicada, solo MQTT a Mosquitto
Debug Logs vía MQTT (topic/+/log), monitor serie USB

🌐 Enlaces de interés

Espressif · PlatformIO · Hiveeyes (LoRa) · MegaDetector