6.9 KiB
Configuración de Tasmota
ESP8266 en 192.168.1.42, firmware Tasmota 15.4.0.
Comandos a ejecutar (una sola vez)
Todos se ejecutan desde http://192.168.1.42 → Consola,
o vía HTTP API: http://192.168.1.42/cm?cmnd=<COMANDO>
1. Seguridad básica
# Contraseña para la interfaz web
Password <tu_contraseña_web>
# Credenciales MQTT (deben coincidir con .env)
MqttUser esp8266
MqttPassword <MQTT_ESP_PASSWORD del .env>
2. Broker MQTT — apuntar a este ordenador
MqttHost 192.168.1.41
MqttPort 1883
3. Esquema de topics — obligatorio para que las ACLs funcionen
Topic riego/bomba
FullTopic %prefix%/%topic%/
Esto genera:
cmnd/riego/bomba/POWER(recibe comandos)stat/riego/bomba/POWER(publica confirmaciones)tele/riego/bomba/SENSOR(publica telemetría)
4. Telemetría cada 30 segundos
TelePeriod 30
5. Estado seguro al arrancar — CRÍTICO
PowerOnState 0
Sin este ajuste, si la bomba estaba encendida y el ESP8266 se reinicia,
la bomba arranca automáticamente. Con 0 siempre arranca apagada.
6. Cableado y configuración de GPIOs
Hardware identificado
- Placa: NodeMCU ESP8266
- Relé: SunFounder 8 Relay Module (activo en LOW → usar
Relay1_i) - Sensor: HC-SR04 estándar (5V) → requiere divisor de tensión en Echo
⚠️ Divisor de tensión — OBLIGATORIO para HC-SR04 estándar
El pin Echo del HC-SR04 devuelve 5V pero el ESP8266 soporta máximo 3.3V. Sin el divisor puedes quemar el GPIO o dañar el chip con el tiempo.
El divisor va en el pin Echo → D5 (GPIO14). Trig va directo sin resistencias.
Con tres resistencias de 2.2 kΩ (las dos primeras en paralelo forman 1.1 kΩ):
Punto A Punto B
│ │
HC-SR04 Echo ──[2.2kΩ]────────┤
├──── D5 (GPIO14) NodeMCU → 3.33 V ✓
──[2.2kΩ]────────┤
│
[2.2kΩ]
│
GND
- Punto A: pin Echo del HC-SR04 + un extremo de cada una de las dos resistencias en paralelo
- Punto B: el otro extremo de las dos resistencias en paralelo + un extremo de la tercera + cable a D5
Esto reduce 5V → 3.33V: 5V × 2.2kΩ/(1.1kΩ+2.2kΩ) = 3.33V ✓
El pin Trigger (ESP8266 → sensor) va directo: 3.3V es suficiente para activar el HC-SR04.
Esquema de cableado completo
Alimentación mixta:
- NodeMCU → USB (ordenador o cargador)
- Relay module + HC-SR04 → fuente externa 5V / 1.5A
USB ──────────────────────── NodeMCU (alimentación + lógica 3.3V)
Fuente 5V/1.5A
├── (+) 5V ──┬── Relay module VCC
│ └── HC-SR04 VCC
└── (−) GND ─┬── Relay module GND
├── HC-SR04 GND
├── GND divisor de tensión (extremo inferior R2)
└── NodeMCU GND ← ⚠️ OBLIGATORIO aunque NodeMCU va por USB
Sin este cable los GPIOs no funcionan
NodeMCU señales:
D1 (GPIO5) ──────────────────────── IN1 relay module (bomba)
D2 (GPIO4) ──────────────────────── Trig HC-SR04 (directo, sin resistencias)
D5 (GPIO14) ──[divisor tensión]───── Echo HC-SR04 (3.3V tras el divisor)
Resistencias disponibles: solo 2.2 kΩ
Con dos resistencias de 2.2 kΩ en paralelo como R1 se obtiene 1.1 kΩ, que con una tercera de 2.2 kΩ como R2 da exactamente 3.33 V:
Echo HC-SR04
│
[2.2kΩ]──┐
│ ├── D5 (GPIO14) NodeMCU → 3.33 V ✓
[2.2kΩ]──┘
│
[2.2kΩ]
│
GND
Si también tienes una resistencia de 1 kΩ úsala como R1 (es más sencillo): R1=1kΩ + R2=2.2kΩ → 3.44 V ✓
Resistencias para el divisor de tensión
Necesitas dos resistencias con una relación R2 ≈ 2 × R1. Cualquiera de estas combinaciones es válida:
| R1 | R2 | Tensión en Echo→ESP | Observaciones |
|---|---|---|---|
| 1 kΩ | 2 kΩ | 3.33 V ✓ | Combinación ideal |
| 1 kΩ | 2.2 kΩ | 3.44 V ✓ | Muy común en kits |
| 2.2 kΩ | 4.7 kΩ | 3.40 V ✓ | Válida |
| 10 kΩ | 20 kΩ | 3.33 V ✓ | Misma ratio, menor corriente |
| 10 kΩ | 22 kΩ | 3.44 V ✓ | Muy común |
Cómo medir con multímetro: selector en Ω (ohmios), puntas en los dos extremos de la resistencia. Las más comunes en kits naranja/amarillo son colores de 4 bandas:
| Valor | Bandas de color |
|---|---|
| 1 kΩ | Marrón – Negro – Rojo – (tolerancia) |
| 2 kΩ | Rojo – Negro – Rojo – (tolerancia) |
| 2.2 kΩ | Rojo – Rojo – Rojo – (tolerancia) |
| 4.7 kΩ | Amarillo – Violeta – Rojo – (tolerancia) |
| 10 kΩ | Marrón – Negro – Naranja – (tolerancia) |
| 22 kΩ | Rojo – Rojo – Naranja – (tolerancia) |
Configuración en Tasmota (interfaz gráfica)
Menú → Configuración → Configurar módulo
Seleccionar en los desplegables:
| GPIO | Función a seleccionar | Nota |
|---|---|---|
| GPIO5 | Relay_i → 1 |
La i es crítica (inverted, SunFounder activo LOW) |
| GPIO4 | SR04 Tri/Tx → 1 |
Trig — salida directa sin resistencias |
| GPIO14 | SR04 Ech/Rx → 1 |
Echo — entrada con divisor de tensión obligatorio |
⚠️ Importante: Trig en GPIO4 (D2) y Echo en GPIO14 (D5), NO al revés. Verificado según documentación oficial Tasmota HC-SR04.
Pulsar Save — el dispositivo reinicia.
Alternativa: comandos por consola
Menú → Consola (o http://192.168.1.42/cm?cmnd=):
Backlog GPIO5 Relay_i 1; GPIO4 SR04Tri 1; GPIO14 SR04Ech 1
Verificar que el sensor funciona
Tras guardar, en la consola de Tasmota:
Status 10
Debe aparecer algo como:
{"StatusSNS":{"Time":"...","SR04":{"Distance":45.2}}}
Si no aparece SR04, el build estándar puede no incluirlo.
En ese caso descargar tasmota-sensors.bin:
OtaUrl http://ota.tasmota.com/tasmota/release/tasmota-sensors.bin
Upgrade 1
7. Verificar soporte HC-SR04
⚠️ Tasmota 15.4.0 estándar NO incluye SR04. Hay que instalar
tasmota-sensors.bin:
OtaUrl http://ota.tasmota.com/tasmota/release/tasmota-sensors.bin
Upgrade 1
Tras el reinicio, los desplegables de GPIO mostrarán SR04 Tri/Tx y SR04 Ech/Rx.
⚠️ La actualización OTA borra la configuración de GPIOs. Después del upgrade hay que volver a configurar GPIO4, GPIO5 y GPIO14 en Configurar módulo.
Verificar que todo funciona
Tras guardar los cambios, Tasmota reinicia. Comprueba:
# El ESP8266 debe conectar al broker local
curl -s "http://192.168.1.42/cm?cmnd=Status%205" | python3 -m json.tool
# MqttCount debe ser > 0