[智能家居] ESP32+OpenMQTTGateWay自制蓝牙网关
文章目录
前言
OpenMQTTGateWay项目是一个开源的多模网关项目,项目支持蓝牙、LoRa、RF433MHz/315MHz、GSM/GPRS、红外 通信方式,支持多个智能家居平台,并且已经适配了大量物联网终端设备,支持的设备列表可以在此处查看
第一部分 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
-
设置AP的密码,用于初次开机的配网
-
设置MQTT服务器的账号密码和地址
-
选择需要的功能
我这里选择了蓝牙、GPIO输入和HomeAssistant的自动发现 三个,可以按照自己的需求去选择。
-
-
修改引脚
如果使能了GPIO输入功能,则可以在config_GPIO文件中修改引脚,这里我们暂时没有用到,可以忽略
3. 编译下载
编译下载按钮在状态栏中,点击Build后会自动下载需要的包。
下载时遇到github无法访问 ,下载失败的情况,多重试几次,或者挑一个月黑风高的夜晚,访问Github会比较稳定。
4. 烧录和配网
使用USB线连接ESP32到PC
点击烧录按钮,等待烧录完成后,ESP32会自动重启
使用手机连接OpenMQTTGateway 热点,配置网络
以上都是常规操作,就没有截图。
5. 串口监控
系统运行日志在串口输出,可以打开串口查看。
5.擦除
如果上一步配网错误的话,通过重新烧录程序是无法修改的。需要擦除ESP板载Flash。
主要操作流程如下:
安装esptool
pip install esptool
安装pyserial。
pip install pyserial
在python/Scripts路径下执行命令
./esptool.py.exe --port /COM3 erase_flash
第三部分 MQTT配置
1.安装MQTT Explorer
使用MQTT Explorer方便调试
下载地址:http://mqtt-explorer.com/
创建连接, 输入HomeAssistant的IP地址,用户名和密码
如果网关配置无误的话,此时应该可以看到Home节点的数据
以小米体脂秤为例,成功获取到体重数据,如果是小米/米家的设备,需要用官方APP绑定后进入正常工作状态后,才能正确解析数据。
2. 在HomeAssistant中配置
新版本会自动添加以下信息,包括网关的一些配置按钮和状态属性,已经读取到的蓝牙设备信息
如果需要自定义内容,可以在编辑仪表盘页面中手动添加
效果如下,6.4Kg是我家猫的体重:
总结
以上就是本次分享的全部内容了,如果你对智能家居或人工智能感兴趣,欢迎关注我的个人公众号,获取更多精彩内容。
更多推荐
所有评论(0)