Ampliar cobertura BT con un ESP32 & OpenMQTTGateway

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.

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!!

 

 

Proyecto

Un comentario sobre “Ampliar cobertura BT con un ESP32 & OpenMQTTGateway

Deja un comentario

Síguenos

Siguenos en facebook