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

 找回密码
 立即注册
查看: 12540|回复: 124

[人体存在] 人体存在传感器1115H,可在线调参的配置文件[更新串口显示]

  [复制链接]

2

主题

47

帖子

502

积分

高级会员

Rank: 4

积分
502
金钱
455
HASS币
10
发表于 2022-7-15 15:06:22 | 显示全部楼层 |阅读模式
本帖最后由 lannister 于 2022-7-19 18:14 编辑

2022年7月19日 第二次更新:

应坛友的要求,更新了串口信息的相关的功能:
1、能够显示串口实时的雷达数据输出;
2、更改数据后显示串口的修改反馈以便确认;
3、获取当前雷达的全部配置参数;

下面2份文件,第一份为 esp8266 的 yaml,另一份为 c++ 文件。
接入方法:
1、将下列 c++ 文件命名为 UartReadLineSensor.h 放置到 esphome 的 config 文件夹中。
注:如果不知道文件夹位置,就直接编译这个 yaml, 会编译报错:Could not find file 'config/uart_read_line_sensor.h'. Please make sure it exists (full path: /Users/XXXXXXX/config/uart_read_line_sensor.h),把文件放到这个地址就可以。
2、使用新版 yaml 编译到设备就可以了。

二更注意事项:

1、1115H 的串口每秒发送大概26次数据,因此 C++ 文件中做了限制 update_frq = 26 即每秒显示一次,可根据需求进行修改,不建议更新频率太快


2、这里使用了 GPIO 2 作为 Tx,GPIO 0 作为 Rx,在 esp8265-01s 上是软件模拟的 Uart,建议 IO 多的其他板子换硬件 UART 会效率会好些,当然不换也没多少差


3、设置参数后 “串口输出” 先立即显示 XXX is XXX, 说明设置成功。亦可点击“查看配置” 显示所有参数(没有格式化输出,就凑合看看吧,反正不常用)


4、建议参数调好后就可以禁用 Rx 了,毕竟 hass 中会日志会不断记录数值

QQ20220719-171048.png

QQ20220719-170847.png






其他感悟:


基本上 1115h 相关的功能玩到头了,后面大概率不会再更新本帖相关的内容了,有疑问回帖会解答


同时个人感觉 2410 可玩性会比 1115 高,可以设置不同距离的不同的灵敏度,以达到屏蔽扰动的功能,并且能够获得物体的距离


但 up 主本人只会将雷达扔在洗手间的角落里,只需要判断有没有人,不需要那么复杂的功能 ~

ps: 坛友 moe1983 写了个 2410 配置文件,传送门:https://bbs.hassbian.com/thread-17143-1-1.html,进阶玩家可以去试试,调参会比 1115 复杂



游客,如果您要查看本帖隐藏内容请回复




==================== 以下为首发内容 ==================

最近在折腾人体存在传感器,写了个 esp8266-01s 可调参的配置文件,这样就可以直接把原件放置在指定位置后进行调参,不用反复连接电脑折腾了。

效果如下:

hass 样式

hass 样式


其他事项:
1、连接前最好先记住旧参数,连接后需要将每个参数点击一次以同步 1115h 与 esp8266 的参数,否则可能实际值与显示值不同
2、在 hass 上调节参数后会立即设置并自动保存,即1115h、8266 均会写入flash,掉电后数值依然记录
3、默认只开放了 th1、th2 两个参数,要调节其他参数可以在实体设置中启用即可
4、上述数值显示可以使用 滑块 来显示,但由于滑块需要点击才显示数值不够直观,所以本人没使用。喜欢滑块的可以把配置中的 mode: box 改为 mode: slide
5、配置中的 binary_sensor 设置了 delayed_off: 15,即雷达Vout为低(无人)15秒后,hass才变为无人状态,可避免hass中有人\无人反复的情况,可视个人需要调节
6、配置中使用 Tx_pin: 2 接入到 1115h 的 Rx , 未设置 Rx_pin(本人不需要读取雷达数据),1115h 的 Vout 接入 GPIO3,可视个人需要调节。

雷达参数释义: (详见 1115h 手册 )

th1移动灵敏度:默认值:120。值越大,模块越不灵敏。感应距离及范 围就越小
th2存在灵敏度:默认值:250。值越大,模块对存在检测越不灵敏。感应距离及范围就越小。(一般该灵敏度可不调整)
GPIO检测延时:默认值: 5 秒。
mov触发条件:检测到多少次大幅度数据时,拉高 Vout。默认值:3 ,设置越大越不灵敏,当有大幅度误报时可以调高。
occ维持条件:GPIO拉高后,检测到多少次小幅度数据来維持GPIO高电平。默认值: 5,设置越大越不灵敏,不建议调高。





esp8266-01的 yaml 文件
esphome:
  name: "main-toilet-motion"
  

esp8266:
  board: esp01_1m
  restore_from_flash: true

# Enable logging
logger: 
  
# Enable Home Assistant API
api:
  encryption:
    key: "kPzhXXTr2OwAm2GPFfZlDTMvFsYCo5cMNAwj1Otm2f8="

ota:
  password: "7e93cc276712a312371a64d2f5d4b237"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "main-toilet-motion Hotspot"
    password: "iYYGq0Tr27Y9"

captive_portal:


binary_sensor:
  - platform: gpio
    id: motion
    pin: 3
    name: "main-toilet-motion"
    device_class: motion
    filters:
      delayed_off: 15s
  
uart:
  id: uart_bus
  #rx_pin: 1
  tx_pin: 2
  baud_rate: 115200
      
number:
  - platform: template
    id: motion_th1
    name: "th1 移动灵敏度"
    mode: box
    optimistic: true
    min_value: 0
    max_value: 500
    step: 1
    restore_value: true
    initial_value: 120
    on_value:
      then:
      - uart.write: !lambda
          int v = (int)x;
          std::string cmd = "th1=" + to_string(v);
          return std::vector<unsigned char>(cmd.begin(), cmd.end());
      - delay: 100ms
      - uart.write: "save"
      - delay: 100ms
      - uart.write: "get_all"
      - logger.log:
          format: "th1 is %.1f"
          args: [ 'id(motion_th1).state' ]
        
  - platform: template
    id: motion_th2
    name: "th2 存在灵敏度"
    mode: box
    optimistic: true
    min_value: 0
    max_value: 500
    step: 1
    restore_value: true
    initial_value: 250
    on_value:
      then:
      - uart.write: !lambda
          int v = (int)x;
          std::string cmd = "th2=" + to_string(v);
          return std::vector<unsigned char>(cmd.begin(), cmd.end());
      - delay: 100ms
      - uart.write: "save"
      - delay: 100ms
      - uart.write: "get_all"
      - logger.log:
          format: "th2 is %.1f"
          args: [ 'id(motion_th2).state' ]
          
  - platform: template
    id: occ_sn
    name: "occ 维持条件"
    disabled_by_default: true
    optimistic: true
    mode: box
    min_value: 1
    max_value: 100
    step: 1
    restore_value: true
    initial_value: 3
    on_value:
      then:
      - uart.write: !lambda
          int v = (int)x;
          std::string cmd = "occ_sn=" + to_string(v);
          return std::vector<unsigned char>(cmd.begin(), cmd.end());
      - delay: 100ms
      - uart.write: "save"
      - delay: 100ms
      - uart.write: "get_all"
      - logger.log:
          format: "occ_sn set %.1f"
          args: [ 'id(occ_sn).state' ]
            
  - platform: template
    id: motion_dtime
    name: "gpio 检测延迟"
    icon: "mdi:clock-time-four"
    mode: box
    disabled_by_default: true
    optimistic: true
    min_value: 1
    max_value: 300
    step: 1
    restore_value: true
    initial_value: 5
    on_value:
      then:
      - uart.write: !lambda
          int v = (int)x;
          std::string cmd = "dtime=" + to_string(v);
          return std::vector<unsigned char>(cmd.begin(), cmd.end());
      - delay: 100ms
      - uart.write: "save"
      - delay: 100ms
      - uart.write: "get_all"
      - logger.log:
          format: "dtime set %.1f"
          args: [ 'id(motion_dtime).state' ]
  
  - platform: template
    id: mov_sn
    name: "mov 触发条件"
    optimistic: true
    disabled_by_default: true
    min_value: 1
    max_value: 100
    step: 1
    restore_value: true
    mode: box
    initial_value: 5
    on_value:
      then:
      - uart.write: !lambda
          int v = (int)x;
          std::string cmd = "mov_sn=" + to_string(v);
          return std::vector<unsigned char>(cmd.begin(), cmd.end());
      - delay: 100ms
      - uart.write: "save"
      - delay: 100ms
      - uart.write: "get_all"
      - logger.log:
          format: "mov_sn set %.1f"
          args: [ 'id(mov_sn).state' ]
 




本来想设置回复可见的...才发现没有权限 - - ,  各位看官回帖子支持一下呗~






评分

参与人数 18金钱 +148 HASS币 +10 收起 理由
rayyy1109 + 5
flyice + 5 感谢楼主分享!
phofun + 5 感谢楼主分享!
yuangel45 + 5
独心 + 5 论坛有你更精彩!
windgo + 16 感谢楼主分享!
hejie127 + 8 高手,这是高手!
book123 + 8 高手,这是高手!
DDDear + 5 高手,这是高手!
mrjc0331 + 5 高手,这是高手!
mcone + 8 高手,这是高手!
sxrcm + 8
+ 20 + 10 高手,这是高手!
moe1983 + 5 感谢楼主分享!
dscao + 10 感谢楼主分享!
jjcs + 10 论坛有你更精彩!
sasukebinbin + 10 厉害了word楼主!
情非殇 + 10 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

2

主题

165

帖子

1787

积分

金牌会员

Rank: 6Rank: 6

积分
1787
金钱
1622
HASS币
0
发表于 2022-7-15 15:19:10 | 显示全部楼层
赶紧占个位置
回复

使用道具 举报

4

主题

126

帖子

1899

积分

金牌会员

Rank: 6Rank: 6

积分
1899
金钱
1773
HASS币
0
发表于 2022-7-15 15:48:43 | 显示全部楼层
支持一下
回复

使用道具 举报

20

主题

459

帖子

2819

积分

金牌会员

Rank: 6Rank: 6

积分
2819
金钱
2360
HASS币
0
发表于 2022-7-15 15:50:53 来自手机 | 显示全部楼层
大佬威武
回复

使用道具 举报

3

主题

118

帖子

771

积分

高级会员

Rank: 4

积分
771
金钱
653
HASS币
0
发表于 2022-7-15 15:57:36 | 显示全部楼层

支持一下
回复

使用道具 举报

39

主题

477

帖子

2689

积分

金牌会员

Rank: 6Rank: 6

积分
2689
金钱
2212
HASS币
10
发表于 2022-7-15 16:47:43 | 显示全部楼层
本帖最后由 yinghu183 于 2022-7-15 16:49 编辑

感谢分享,正好有闲置01s
回复

使用道具 举报

14

主题

249

帖子

1988

积分

金牌会员

Rank: 6Rank: 6

积分
1988
金钱
1734
HASS币
50
发表于 2022-7-15 17:03:28 | 显示全部楼层
太棒了,感谢分享!
回复

使用道具 举报

0

主题

210

帖子

2173

积分

金牌会员

Rank: 6Rank: 6

积分
2173
金钱
1963
HASS币
0
发表于 2022-7-15 17:22:24 来自手机 | 显示全部楼层
感谢分享!!!
回复

使用道具 举报

24

主题

623

帖子

2756

积分

金牌会员

Rank: 6Rank: 6

积分
2756
金钱
2123
HASS币
40
发表于 2022-7-15 17:54:05 | 显示全部楼层
支持一下
回复

使用道具 举报

41

主题

1286

帖子

5299

积分

论坛元老

Rank: 8Rank: 8

积分
5299
金钱
4008
HASS币
20
发表于 2022-7-15 21:09:26 | 显示全部楼层
这才是esphome的高阶用法
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 14:59 , Processed in 0.324080 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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