前言
大家好,安信可又出活动了,抱着重在参与的态度给大家带来了我的作品智能台灯。
不知道大家是否还记得这个帖子里的台灯。https://bbs.ai-thinker.com/forum ... ad&tid=44226&extra=
没错,它被我拆了。就剩个LED灯板了。然后我把它稍作改造,便成了今天的主角。 用HA控制的台灯。由于本人并没有什么好的灵感,来DIY,所以本篇教程将会是抛砖引玉来仔细说明如何使用M61-32S接入HA,从而使大家DIY出好的作品。
在本篇教程你将会学到
1- 如何连接WIFI
2- 如何连接MQTT
3- 如何配置HA的MQTT集成
4- 如何配置HA的configuration.yml 使其HA可以自动发现实体。
5- 如何将上述的实体开关添加到Dashboard从而实现控制开关灯。
正文
在我们开始之前呢,我希望你已经安装好了HomeAssistant,那么如果你没有安装好的话。我这边也有准备好的教程。
1- 前置工作准备(安装HA 和 eclipse-mosquitto )
Home Assistant 树莓派4B安装
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44598&fromuid=13075
(出处: 物联网开发者社区-安信可论坛)
在你安装好之后呢,还需要你准备好一个MQTT服务器,用来使开发板和HA通讯。那么我这里推荐的是eclipse-mosquitto 教程如下
https://blog.csdn.net/Navyyy/article/details/122398020
在上述两个服务成功安装到Docker里之后呢,容器列表如下所示
2- 集成MQTT到HA
打开已经安装好的HA的Web网站。在左侧导航菜单里依次选择,配置, 设备和服务,添加集成,搜索MQTT
之后呢,配置你上述安装好的eclipse-mosquitto 的账号和密码。 此时MQTT完成配置
当然你可以测试你是否配置成功。 点击MQTT, 点击配置
随便订阅一个主题,并且打开MQTT客户端工具,往这个订阅的主题发送一条消息。检查是否可以正常接收。
3- 配置HA,使其可以自动发现支持的MQTT设备(via yml)
Ha官网 有详细的介绍关于如何使HA可以发现MQTT的设备 。 我们这次使用的使通过YML的方式使其HA识别。由于我这次DIY的是一个台灯。所以我们在可以在HA官网中找到对Switch的描述。
选择Switch,在Switch的最下面有一个完整的Switch的配置。
我们拷贝这个配置,并且打开Shell。使用命令 docker exec -it [你的容器ID] /bin/bash 登录到HA中
使用vi 命令编辑这个configuration.yml 文件,并且将上述的拷贝的内容粘贴到这个文件的最下方(其他的传感器等也是一样的道理)。注意上述文件中,需要把optimistic 改成 Ture 关于Ture和False的区别请查看HA关于Switch的详细描述
然后 按下Shift + : 输入wq 并且按下enter键进行保存。同时打开HA的Web界面。从左侧的导航打开开发者工具。 重载手动配置的MQTT实体
此时HA已经配置完毕。我们只需要向home/bedroom/switch1/set 这个主题中发送一个ON的命令。那么HA便会自动发现这个实体
那么这个实体在哪里呢?在HA的Web页面,点击配置, 设备与服务,选择实体,搜索 switch 你便可以看到这个实体。
此时如果你点击这个开关的话,你可以在MQTT的客户端的当前队列中看到HA向这个Message queue 的 topic 发送消息
聪明的你肯定想到了。那么只需要使M61-32S订阅这个主题,并且监听这个主题的Message当接收到的message为 ON的时候就打开台灯。等为OFF的时候就关闭台灯。
4- 使用M61-32S 连接Wifi 订阅MQTT主题,接收消息实现台灯控制
当前项目的代码是在Aipi-open-kits 中的Wifi6-test中修改实现的。
我这里移除了无用的代码,仅仅保留了WIFI相关的MQTT相关的。并且自己写了一个控制IO15的LED.h (移除了无用的easyflash 和其他的Wifi6-led等等)。
WIFI和MQTT的连接代码部分如下图所示,只需要在这里修改成你自己的Wifi账号和密码已经MQTT服务器的账号密码以及队列信息。(我的是部署在香橙派Zero3 1G上的,实际占用RAM 500 mb左右。)
然后在user_mqtt.c的MQTT回调函数中,判断当前接收到的消息,如果接收到的消息为ON那么IO15输出高电平。 如果为OFF的话则输出低电平。控制继电器关闭台灯。
代码如下
视频效果如下:
【M61-32s接入HA 控制台灯-哔哩哔哩】 https://b23.tv/uKs6i1V
|