
Domotizando nuestra vieja Roomba Serie 5/6 con ESP-01 y MQTT
Buenas tardes a todos. En esta entrada voy a explicar como llevar a cabo un proyecto que me ha costado muchas semanas conseguir hacer funcionar.
El proyecto original no es mio y podéis verlo aquí (en inglés).
Bueno vamos al lio.
Materiales (no son enlaces referidos, pero prefiero poner ejemplos para que no tengamos errores luego):
1x - ESP-01 + Un programador - aquí
1x - Transistor PNP 2N3906 - aquí
1x Regulador de voltaje - aquí
Varios cables de Arduino Hembra-Macho - aquí
El Sketch de Arduino: https://github.com/thehookup/MQTT-Roomba-ESP01/blob/master/RoombaESP01_CONFIGURE.ino
Estas tres librerias de Arduino:
https://github.com/jfturcot/SimpleTimer
https://github.com/knolleary/pubsubclient
Soldador, estaño, termoretractil, cinta aislante y muchas ganas.
Procedimiento
Podemos dividir este proyecto en 4 pasos:
- Compilar y cargar el Sketch al ESP-01
- Soldar todo el cableado
- Integrarlo en nuestro Roomba Serie 5/6
- Integrarlo en Home Assistant
Preparar el programador
Lo primero que debemos hacer para poder compilar el Sketch en el ESP-01 es modificar el programador para que este sea capaz de poner el ESP-01 en modo programación.
Lo que haremos será soldar un pulsador a los pines 5 y 3 del ESP-01 y un puente entre los pines 6 y 2.
Dejo un par de fotos del pinout del ESP-01 y del programador con el cable ya soldado y el puente realizado.
PASO 1: Compilar y cargar el Sketch en el ESP-01
Incluimos las librerias en nuestro IDE de Arduino y cargamos el Sketch. Lo unico que debemos hacer es modificar estos valores marcados en rojo
//USER CONFIGURED SECTION START//
const char* ssid = "YOUR_WIRELESS_SSID";
const char* password = "YOUR_WIRELESS_SSID";
const char* mqtt_server = "YOUR_MQTT_SERVER_ADDRESS";
const int mqtt_port = YOUR_MQTT_SERVER_PORT;
const char *mqtt_user = "YOUR_MQTT_USERNAME";
const char *mqtt_pass = "YOUR_MQTT_PASSWORD";
const char *mqtt_client_name = "Roomba"; // Client connections can't have the same connection name
//USER CONFIGURED SECTION END//
El resto del sketch no hay que modificarlo ( existe un sketch especifico para el Roomba Serie 6 en el git, yo tengo un 630 y con el de la serie 5 me funciona perfecto)
PASO IMPORTANTE>>> Ahora conectamos nuestro ESP-01 al programador, mantenemos pulsado el pulsador y lo conectamos al puerto USB del pc (si no hacemos eso no podremos cargar el Sketch). Configuramos nuestro IDE así:
y le damos a compilar y subir. Una vez termine de cargar deberemos ver en nuestra red wifi un nuevo dispositivo, eso significa que todo ha ido ok.
PASO 2: Soldar todo el cableado.
Aqui una imagen vale mas que mil palabras asi que aqui va el circuito.
OJO SUPER IMPORTANTE!!! >>> Antes de soldar el ESP-01 hay que establecer la salida del regulador a 3.1v. para eso soldaremos cable negro y cable rojo al regulador y conectaremos los otros extremos los puertos de positivo y negativo del roomba. colocar el tester en la salida del regulador en positivo y negativo y con un destornillador regular a 3.1v PELIGRO DE QUEMAR EL ESP-01
PASO 3: Integrarlo en el Roomba
En la lista de materiales hay cables de arduino hembra-macho, esto es para que ahora, cuando conectemos los cables al Roomba tengamos pines que sean fáciles de colocar. Yo lo que he hecho es quitar los cabezales de plástico y dejar el pin con el cable y luego aplicar este procedimiento:
1- Mete pin en el puerto del Roomba correspondiente
2- Aisla el pin con cinta o termoretractil para que no haga contacto (doblarlo con cuidado para que quede lo mas arras posible y poder taparlo)
3- repite con el resto hasta terminar.
luego aislar con cinta todas las partes que puedan crear un corte, sobre todo aislar bien el regulador. Fija luego todos los cables al chasis para que no se muevan y pon la tapa, ves despacio hasta que quepa todo bien. A mi me sobresale cuanto apenas en la parte del chip pero si lo ves ni se nota.
PASO 4: Integrarlo en el Home Assistant.
Esto es lo mas fácil, dejo los yaml que tengo yo y que cada uno se lo ponga a su gusto:
SENSOR:
- platform: mqtt
name: "Roomba Charging"
state_topic: "roomba/charging"
- platform: mqtt
name: "Roomba Battery"
unit_of_measurement: '%'
state_topic: "roomba/battery"
- platform: template
sensors:
roomba_status:
friendly_name: "Estado Roomba"
value_template: >-
{% if (is_state('sensor.roomba_charging', '4') and is_state('sensor.roomba_battery', '100')) %}
En la Dock
{% elif (is_state('sensor.roomba_charging', '4') and not is_state('sensor.roomba_battery', '100')) %}
Limpiando
{% elif is_state('sensor.roomba_charging', '3') %}
En la Dock
{% elif is_state('sensor.roomba_charging', '2') %}
Cargando
{% elif is_state('sensor.roomba_charging', '12') %}
Parado fuera de Dock
{% else %}
Desconocido
{% endif %}
SWITCH
- platform: mqtt
name: "Roomba"
command_topic: "roomba/commands"
payload_on: "start"
payload_off: "stop"
CUSTOMIZED
switch.roomba:
friendly_name: Roomba
icon: mdi:broom
sensor.roomba_battery:
friendly_name: Bateria Roomba
icon: mdi:battery
sensor.roomba_status:
friendly_name: Estado Roomba
icon: mdi:eye
Si quieres conocer otros artículos parecidos a Domotizando nuestra vieja Roomba Serie 5/6 con ESP-01 y MQTT puedes visitar la categoría Generales.
-
hola !! enhorabuena por tu trabajo ,estoy preparado para realizarlo en mi 555 pero hay dos fotos que no veo la del esquema a las conexiones del Roomba y el de customize ,este último imagino que hay que meter cada uno en su apartado Yaml imagino no? muchas gracias y un saludo .
mi correo : crispy_82@hotmail.com
Deja una respuesta
Hola estoy haciendo el proyecto de Roomba y no puedo ver la foto del cableado, me la puedes enviar a carrinton 00@hotmail.com
Por cierto enhorabuena por tus proyectos