前言

OpenMQTTGateWay项目是一个开源的多模网关项目,项目支持蓝牙、LoRa、RF433MHz/315MHz、GSM/GPRS、红外 通信方式,支持多个智能家居平台,并且已经适配了大量物联网终端设备,支持的设备列表可以在此处查看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YB2e0yIi-1617900839581)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e58687fe-9362-4aa1-b529-f6594355f6da/Untitled.png)]

第一部分 HA部署MQTT

1. 安装mqtt服务器

在Add-on商店中添加mqtt服务器
在这里插入图片描述
点击install安装
在这里插入图片描述
设置登录名和密码,保存后点击Start运行Add-on,这一步是可选的,如果不设置密码的话,可以通过HomeAssistant的用户名和密码登录MQTT服务器
在这里插入图片描述

2. 添加MQTT集成

在配置→集成中添加MQTT,Add-on启动成功后应该可以自动发现,点击配置,点击提交。第一次配置应该可以自动登录,如果需要填写服务器信息的话,就填写
在这里插入图片描述
在这里插入图片描述

3. 查看MQTT的账户密码等信息

点击配置,点击RE-CONFIGURE MQTT 按钮,可以看到自动生成的密码,比较长。在这里插入图片描述
此页面同时也可以对MQTT服务进行简单的调试,不过不是很好用,稍后会介绍更好用的调试工具。
在这里插入图片描述

第二部分 蓝牙网关

本部分配置蓝牙网关可以使用官方预编译的固件,也可以使用源码自行编译,为了可以灵活配置,我们选择第二种方式。

1. 安装开发工具

使用PlatFormIO开发,开发环境比较简单,VSCode中安装PlatformIO IDE插件,然后重启即可。
在这里插入图片描述

2. PlatformIO工程

下载OpenMQTT源代码https://github.com/1technophile/OpenMQTTGateway

如果使用git克隆比较慢的话,依然是通过迅雷下载然后解压,使用VScode打开文件夹,会被自动解析为PlatformIO工程。
在这里插入图片描述

3. 修改源代码

  • 选择开发环境

    在platformio.ini文件中,将所选的开发环境取消注释,我使用的开发板是ESP32,因此将esp32dev-ble取消注释
    在这里插入图片描述

  • 修改user_config.h

    1. 设置AP的密码,用于初次开机的配网 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DJLbCg9h-1617900839591)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/633ab139-3a5c-4d96-9566-ec09b6f19de4/Untitled.png)]

    2. 设置MQTT服务器的账号密码和地址
      在这里插入图片描述

    3. 选择需要的功能

      我这里选择了蓝牙、GPIO输入和HomeAssistant的自动发现 三个,可以按照自己的需求去选择。
      在这里插入图片描述

  • 修改引脚

    如果使能了GPIO输入功能,则可以在config_GPIO文件中修改引脚,这里我们暂时没有用到,可以忽略
    在这里插入图片描述

3. 编译下载

编译下载按钮在状态栏中,点击Build后会自动下载需要的包。
在这里插入图片描述
下载时遇到github无法访问 ,下载失败的情况,多重试几次,或者挑一个月黑风高的夜晚,访问Github会比较稳定。
在这里插入图片描述

4. 烧录和配网

使用USB线连接ESP32到PC
点击烧录按钮,等待烧录完成后,ESP32会自动重启
使用手机连接OpenMQTTGateway 热点,配置网络
以上都是常规操作,就没有截图。

5. 串口监控

系统运行日志在串口输出,可以打开串口查看。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yd3zfsjn-1617900839594)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/05a2c884-c922-468f-97d7-12af897c452c/Untitled.png)]

5.擦除

如果上一步配网错误的话,通过重新烧录程序是无法修改的。需要擦除ESP板载Flash。
主要操作流程如下:

安装esptool
pip install esptool
安装pyserial。
pip install pyserial

在python/Scripts路径下执行命令

./esptool.py.exe --port /COM3 erase_flash

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uPaUgFES-1617900839595)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2202e0b1-2b4d-4623-bca0-611f66f919e6/Untitled.png)]

第三部分 MQTT配置

1.安装MQTT Explorer

使用MQTT Explorer方便调试

下载地址:http://mqtt-explorer.com/

创建连接, 输入HomeAssistant的IP地址,用户名和密码
在这里插入图片描述
如果网关配置无误的话,此时应该可以看到Home节点的数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ys0TM2a7-1617900839596)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ef47d128-1928-4813-a679-9d780f648ac3/Untitled.png)]
以小米体脂秤为例,成功获取到体重数据,如果是小米/米家的设备,需要用官方APP绑定后进入正常工作状态后,才能正确解析数据。
在这里插入图片描述

2. 在HomeAssistant中配置

新版本会自动添加以下信息,包括网关的一些配置按钮和状态属性,已经读取到的蓝牙设备信息
在这里插入图片描述
如果需要自定义内容,可以在编辑仪表盘页面中手动添加
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1O9MjUSa-1617900839597)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d230aed8-9b99-49d8-b084-90583470f7a0/Untitled.png)]
效果如下,6.4Kg是我家猫的体重:
在这里插入图片描述

总结

以上就是本次分享的全部内容了,如果你对智能家居或人工智能感兴趣,欢迎关注我的个人公众号,获取更多精彩内容。
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐