# Primera conexión: ESP32 DevKit V1 de 30 pines (ESP-WROOM-32)

El piloto está en https://transbook.mx/homecore/ y la conexión del dispositivo
es `wss://transbook.mx/homecore/ws` (puerto 443). No necesitas abrir puertos
en el router ni mantener el túnel SSH de tu Mac.

## 1. Registrar en HomeCore

Inicia sesión como propietario, entra a tu hogar y crea una habitación si
no existe. En **Monitoreo → Agregar dispositivo**, escribe “Clima de la sala”
y selecciona la habitación. Guarda el identificador y la clave que se
muestran. La clave no se puede consultar de nuevo; puedes generar otra.
No envíes tu contraseña de Wi-Fi ni la clave del dispositivo por chat.

## 2. Preparar Arduino IDE en tu Mac

Instala Arduino IDE desde https://www.arduino.cc/en/software/.
En preferencias, agrega a las URL adicionales de tarjetas:

```text
https://espressif.github.io/arduino-esp32/package_esp32_index.json
```

En el gestor de tarjetas instala **esp32 by Espressif Systems 3.3.11**.
Selecciona **DOIT ESP32 DEVKIT V1**. Conecta la placa por USB usando un
cable de datos y selecciona su puerto en Herramientas → Puerto.
Si el puerto no aparece, revisa el cable y el chip USB de tu placa antes
 de instalar un controlador.

En el gestor de bibliotecas instala:

- **WebSockets** de Markus Sattler, versión **2.7.2**.
- **ArduinoJson** de Benoit Blanchon, versión **7.4.3**.

## 3. Configurar el firmware

Abre `HomeCoreMonitor/HomeCoreMonitor.ino`. Copia `secrets.example.h` a
`secrets.h` dentro de la misma carpeta y completa:

```cpp
#define HOMECORE_WIFI_SSID "NOMBRE_DE_TU_WIFI"
#define HOMECORE_WIFI_PASSWORD "CONTRASENA_DE_TU_WIFI"
#define HOMECORE_DEVICE_UID "IDENTIFICADOR_QUE_GENERO_HOMECORE"
#define HOMECORE_DEVICE_TOKEN "CLAVE_QUE_GENERO_HOMECORE"
```

Usa una red Wi-Fi de **2.4 GHz**. El dominio, puerto y ruta ya apuntan al
piloto. `trusted-root.h` incluye la CA pública ISRG Root X1, validada contra
el certificado actual de Transbook. No desactives la validación TLS.
Mantén `HOMECORE_SENSOR_TYPE 0`: en esta primera prueba la placa envía valores
simulados, claramente marcados como tales en la app. No hace falta conectar
ningún sensor, relé ni otro componente.

## 4. Cargar y comprobar

Pulsa Verificar y luego Subir en Arduino IDE. Si se queda en “Connecting…”,
mantén presionado BOOT mientras comienza la carga y suéltalo al iniciar la
escritura. Abre el monitor serie a **115200 baudios**.

Debes ver “HomeCore conectado y autenticado” y “Lectura confirmada por
HomeCore”. Cada 20 segundos publica temperatura y humedad. Abre el hogar en
la app: aparecerá conectado y con “Datos de prueba simulados”. La pantalla
se actualiza cada 5 segundos. Si desenchufas la placa, debe pasar a
Desconectado en aproximadamente un minuto; la última lectura permanece con
su fecha y se identifica como antigua después de 90 segundos.

Si no conecta, comprueba Wi-Fi, UID/clave, reloj NTP, dominio y si el
propietario pausó o regeneró las credenciales. Una sola conexión por UID.
No ejecutes el simulador y la placa con las mismas credenciales a la vez.

## Sensor real ARD-360 confirmado

El usuario tiene un Steren ARD-360 / DHT11 de cuatro patitas. Consulta
[ARD-360.md](ARD-360.md) para cableado, resistencia y actualización del
firmware. Usa HOMECORE_SENSOR_TYPE 11 y GPIO27. DHT22 sigue disponible con
selector 22; selector 0 conserva simulación.

## Verificación realizada

Firmware compilado para `esp32:esp32:esp32doit-devkit-v1`, core 3.3.11.
El flujo HTTPS/WSS se verificó con cliente de prueba contra el piloto;
la placa física ya se conectó y publicó simulación. La lectura del sensor
real debe verificarse tras conectar el ARD-360.
El firmware solo monitorea; no recibe comandos de encendido/apagado.

Fuentes de configuración:
- https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
- https://github.com/Links2004/arduinoWebSockets
- https://arduinojson.org/
- https://letsencrypt.org/certificates/
