
Hola a tod@s!! Hoy vamos a hablar del ESP32, otro dispositivo IoT que depende del firmware que le pongamos, vamos a tener unas u otras opciones, hoy vamos a hablar de OpenMQTTGateway, un firmware que nos escanea la frecuencia BT y nos manda los datos via MQTT por wifi. Por eso nos va a venir genial para ampliar la cobertura BT.
Antes de seguir me gustaría agradecer este tutorial a @macs0 ya que me ha ayudado mucho con el ESP32.
Es un firmware muy básico que solo hace de repetidor BT a wifi vía mqtt, pero si queremos usar las salidas y entradas del ESP32 nos tendremos que ir a otro firmware tipo esphome del que hablaremos en el siguiente tutorial.
Tabla de contenidos
Paso 1º – Flashear el ESP32
Nos descargaremos el ultimo firmware reciente aqui, descomprimiremos el archivo donde queramos, a continuación abrimos el programa Arduino IDE y abrimos archivo y preferencias.
Debemos poner la ruta de nuestra carpeta que hemos descargado anteriormente. Una vez hecho esto le daremos a abrir y abriremos el archivo .ino \OpenMQTTGateway\OpenMQTTGateway.ino
Veremos que se nos cargan varias ventanas, solo modificaremos la de User_config.h y rellenaremos los datos que os he marcado, la wifi de nuestra casa y nuestro servidor mqtt.
Una vez realizado esto insertamos el esp32 mediante usb a nuestro PC, a continuación nos vamos a herramientas y seleccionamos el tipo de placa que tenemos, mi configuración es esta que es la gran mayoría de placas ESP32 pero hay que fijarse bien antes.
¡¡Atención!! Si vemos que no nos sale nuestra placa ESP32 nos iremos a Archivo > Preferencias > Gestor de URL,s y añadiríamos la siguiente dirección: https://dl.espressif.com/dl/package_esp32_index.json Una vez hecho esto cerramos el dialogo y nos vamos a Herramientas > Placa > Gestor de tajarjetas y buscariamos ESP32 y le daríamos a instalar.
Una vez terminado esto veremos que en placas nos saldrá ya la opciones de las placas ESP32.
Una vez verificado el tipo de placa y el Puerto correctamente compilaremos el firmware y lo cargaremos en nuestro ESP32.
Veremos el progreso de la compilación y carga en el log que nos sale en la barra inferior de arduino ide. Una vez que ya este cargado podemos quitar el usb del pc y alimentar el ESP32 donde queramos ya que se conectará el solo al wifi y empezara a emitir por MQTT.
Paso 2º – MQTT
Ahora en este punto nos apoyaremos de una herramienta llamada MQTT.Fix, tenemos un tutorial estupendo de nuestro amigo @gubenote aqui
Una vez abierto empezaremos a ver los datos que nos manda el ESP32 y podremos ver que salen datos de nuestros miflora si los tuviéramos o de nuestros sensores BT de xiaomi con pantalla. Deberemos apuntar el topic que publica para posteriormente agregarlo en nuestro HA.
Paso 3º – Añadir los Sensores en HA
Os voy a dejar unos ejemplos de Sensores miflora y de los Xiaomi BT sensor con pantalla para que os hagáis una idea.
miflora:
sensor:
- platform: mqtt
name: miflora_temperature
unit_of_measurement: "°F"
force_update: true
expire_after: 21600
state_topic: "esp32/OpenMQTTGateway/BTtoMQTT/XXXXXXXXXXXX/tem"
- platform: mqtt
name: miflora_moisture
force_update: true
expire_after: 21600
state_topic: "esp32/OpenMQTTGateway/BTtoMQTT/XXXXXXXXXXXX/moi"
- platform: mqtt
name: miflora_light_intensity
unit_of_measurement: lux
force_update: true
expire_after: 21600
state_topic: "esp32/OpenMQTTGateway/BTtoMQTT/XXXXXXXXXXXX/lux"
- platform: mqtt
name: miflora_conductivity
force_update: true
expire_after: 21600
state_topic: "esp32/OpenMQTTGateway/BTtoMQTT/XXXXXXXXXXXX/fer"
Sensor Xiaomi BT con pantalla:
sensor:
- platform: mqtt
name: xiaomi_bt_mqtt_temp
unit_of_measurement: "°C"
expire_after: 21600
force_update: true
state_topic: "esp32/esp32mqtt/BTtoMQTT/XXXXXXXXXXXX/tem"
value_template: "{{ (value | float) | round(1) }}"
- platform: mqtt
name: xiaomi_bt_mqtt_hum
unit_of_measurement: "%"
expire_after: 21600
force_update: true
state_topic: "esp32/esp32mqtt/BTtoMQTT/XXXXXXXXXXXX/hum"
- platform: mqtt
name: xiaomi_bt_mqtt_batt
unit_of_measurement: "%"
expire_after: 21600
force_update: true
state_topic: "esp32/esp32mqtt/BTtoMQTT/XXXXXXXXXXXX/batt"
Debemos sustituir nuestras XXXX del topic por lo que nos salga en el programa mqtt.fix
Como vemos el openmqttgateway saca mucha información, podemos jugar con eso para montarnos nuestros sensores a medida. Aquí os dejo unos ejemplos que encontramos en su pagina oficial
Terminado este paso ya podemos dar por finalizado el tutorial! Espero que os haya gustado y como siempre para cualquier duda o aclaración ya sabéis donde encontrarme!
Un saludo!!
Pingback: ESPHome en un ESP32 vía Docker | Domology 2.0