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