224 lines
6.9 KiB
Markdown
224 lines
6.9 KiB
Markdown
# 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](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
|
||
``` |