『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1310|回复: 9

[经验分享] 用安信可Rd-01雷达做“老板检测器”的实现方法

[复制链接]

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
发表于 2024-5-7 10:24:36 | 显示全部楼层 |阅读模式
前言
还记得之前小美让我做的“老板检测器”吗?不记得不要紧,连接在这:神器在手,摸鱼我有?巧用雷达感应器的惊险一刻
就是这个小东西:

                               
登录/注册后可看大图

所用的就是安信可的Rd-01 人体存在雷达传感器,这个雷达传感器的特点参考这个:https://docs.ai-thinker.com/rd-01
上自带的WiFi 功能,可以接入任何云平台,这次接入的就是HomeAssistant,通过配置自动化检测,实现平板电脑或手机的弹窗提示,达到警告作用。
这次要讲的就是类似Rd-01 雷达传感器这种只有0和1的二进制传感器如何使用我写HomeAssistant-C 库接入HomeAssistant。

                               
登录/注册后可看大图


一、binary Sensor 介绍
binary Sensor 实体,中文名叫:二进制传感器,顾名思义,数据只有0和1两种状态我们所用过的红外人体存在传感器、火焰传感器、Rd-01人体存在雷达、甚至是手扶梯的人体检测都属于二进制传感器。所以,这些传感器在HomeAssistant对它们的配置是最简单的。
好的,binary Sensor 就(实)(在)(编)(不)(下去了)!

二、binary Sensor 实体创建
这一小节需要大家已经实现了“switch”实体的创建并完成点灯,如果你还没有是实现这个,马上、立刻给我去看:智能家居之旅,第三站:Ai-M61/M62 接入HomeAssistant 实现点灯。(管理员这不是广告,求放过)
因为之后的介绍,只介绍对应的实体怎么使用,不会继续介绍其他内容,为了方便测试,代码更不会重新建立工程。
打开之前我们创建的"HomeAssistant_switch"工程中的"main.c"文件,在"ha_event_cb"回调函数中的 HA_EVENT_MQTT_CONNECED 事件下创建实体:


 //创建二进制实体
            static ha_Bsensor_entity_t entity_binary_sensor = {
                .name = "二进制传感器",//给个名字
                .unique_id = "binary_sensor1",//声明一个唯一的id 号
            };
            //向HomeAssistant 添加二进制实体
            homeAssistant_device_add_entity(CONFIG_HA_ENTITY_BINARY_SENSOR, &entity_binary_sensor);


代码如下:

                               
登录/注册后可看大图

就这样,一个二进制实体就这么创建好了,烧录验证一下:

                               
登录/注册后可看大图

可以看到,刚刚创建的"二进制传感器"已经在之前我们建立的设备当中了,但是它处于不可用状态,这个怎么办呢?
方法一:复位一下开发板
方法二:等我修复...........

三、上传binary Sensor
可以看到 binary Sensor 传感器已经创建好了,那下一步就是数据上传了嘛。其实HomeAssistant-C 上传数据只需要一个函数:homeAssistant_device_send_state。上传binary sensor 数据:


homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_BINARY_SENSOR, <实体节点>, <0/1>);
比如:

                               
登录/注册后可看大图

烧录并且重新复位之后,你就能看到HomeAssistant中的 "二进制传感器"处于"开启"状态。这个效果我就不贴图了。homeAssistant_device_send_state 函数的第二个,是一个实体的节点,为了大家能够在任何地方能够正确获取到需要的节点,HomeAssistant-C 库提供了一个函数:
homeAssistant_fine_entity(char* entity_type,const char* unique_id)

在使用这个函数的时候,只需要传递实体的类型和 unique id,比如找到unique id=binary_sensor1 的二进制实体:

ha_Bsensor_entity_t* entity_bs = homeAssistant_fine_entity(CONFIG_HA_ENTITY_BINARY_SENSOR, "binary_sensor1");


有了这个函数,你可以在其他代码段使用homeAssistant_device_send_entity_state 函数发送数据,像这样:
homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_BINARY_SENSOR,homeAssistant_fine_entity(CONFIG_HA_ENTITY_BINARY_SENSOR, "binary_sensor1"), 1);




四、测试

延续上一节的问题:三个开关怎么识别只有开关1能控制蓝灯?
答案:可以通过unique id来识别。
可以通过homeAssistant_fine_entity,先找到需要判断的实体,然后再通过双方的unique id 来识别就能确认下发的命令是否就是"开关1"的,同时上传一下二进制传感器的状态:

ha_sw_entity_t* sw1_s = homeAssistant_fine_entity(CONFIG_HA_ENTITY_SWITCH, "sw1");//找到"开关1实体"
//判断是否是开关1的命令
            if (ha_dev->entity_switch->command_switch->unique_id==sw1_s->unique_id&&ha_dev->entity_switch->command_switch->switch_state) {
                bflb_gpio_set(gpio, GPIO_PIN_15);


然后你就可以看到这样的效果:

                               
登录/注册后可看大图

最后的最后:

                               
登录/注册后可看大图





回复

使用道具 举报

2

主题

116

帖子

1920

积分

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1804
HASS币
0
发表于 2024-5-7 11:06:47 | 显示全部楼层
坐等下文@@@@@
回复

使用道具 举报

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
 楼主| 发表于 2024-5-7 11:08:59 | 显示全部楼层

好呀,具体的视频演示在“安信可”视频号,哈哈
回复

使用道具 举报

9

主题

225

帖子

2118

积分

论坛UI达人

积分
2118
金钱
1893
HASS币
0
发表于 2024-5-7 11:48:48 | 显示全部楼层
不得不说,小美还是阔以的
回复

使用道具 举报

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
 楼主| 发表于 2024-5-7 11:53:11 | 显示全部楼层
hhh. 发表于 2024-5-7 11:48
不得不说,小美还是阔以的

那当然啦,也顺便用我们的产品给大家提供新思路,啊哈哈
回复

使用道具 举报

1

主题

103

帖子

676

积分

高级会员

Rank: 4

积分
676
金钱
573
HASS币
0
发表于 2024-5-7 17:23:52 | 显示全部楼层
能提供一个通过WIFI接入HA的教程吗?手上刚好有十几个RD-01
回复

使用道具 举报

11

主题

27

帖子

152

积分

注册会员

Rank: 2

积分
152
金钱
125
HASS币
0
 楼主| 发表于 2024-5-8 13:47:25 | 显示全部楼层
Juices 发表于 2024-5-7 17:23
能提供一个通过WIFI接入HA的教程吗?手上刚好有十几个RD-01

您可以看看这个合集里的教程https://bbs.ai-thinker.com/forum.php?mod=forumdisplay&fid=195
回复

使用道具 举报

1

主题

103

帖子

676

积分

高级会员

Rank: 4

积分
676
金钱
573
HASS币
0
发表于 2024-5-8 16:09:59 | 显示全部楼层
安信可科技 发表于 2024-5-8 13:47
您可以看看这个合集里的教程https://bbs.ai-thinker.com/forum.php?mod=forumdisplay&fid=195 ...

感谢回复,我看看
回复

使用道具 举报

2

主题

32

帖子

953

积分

高级会员

Rank: 4

积分
953
金钱
921
HASS币
0
发表于 2024-5-9 08:50:33 | 显示全部楼层
能不能固件里加一个mqtt客户端,这样就可以直接接入home assistant了
回复

使用道具 举报

3

主题

73

帖子

573

积分

高级会员

Rank: 4

积分
573
金钱
500
HASS币
0
发表于 2024-5-9 14:07:08 | 显示全部楼层
虽然,但是还是不够易用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 03:55 , Processed in 0.110317 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表