# 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=` ### 1. Seguridad básica ``` # Contraseña para la interfaz web Password # Credenciales MQTT (deben coincidir con .env) MqttUser esp8266 MqttPassword ``` ### 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](https://tasmota.github.io/docs/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: ```json {"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: ```bash # 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 ```