当前位置: 首页 > news >正文

CH582M低功耗蓝牙温湿度传感器接入HASS

一、低功耗温湿度仪

  1. 参考开源温湿度仪进行制作:https://oshwhub.com/hotant/wireless-temperature-and-humidity-detector-414381a
  2. 使用V3版本,即CH582F的芯片,具有更低的功耗。
  3. 在源码中,可以增加广播时间,默认是1s,可以通过手机蓝牙识别到。更改到10s后,减少功耗,并仍可以通过后续的网关进行识别。
    在这里插入图片描述

二、ESP32 MQTT网关

  1. 使用硬件ESP32-C3,其具有4M的flash。
  2. 使用固件OpenMQTTGateway,需要进行相应的配置才可以适配,配置可以参考视频。
  3. 下载OpenMQTTGateway后,路径不能存在中文,否则编译错误。
  4. 进行配置,选择C3芯片,打开BT和HA找寻,设置MQTT的地址和账号密码(即后续的HASS中的MQTT)。
  5. 烧录后,使用wifi进行配网,其中注意配置MQTT的前缀,默认是home,但是需要根据HASS中的MQTT进行相应修改,最后可以在HASS中的MQTT中找到对应设备:
    在这里插入图片描述

三、HASS+Nodered配置

  1. 通过MQTT EXPLORER连接到HASS的MQTT,查看网关上传的数据。发现并未识别到温湿度仪的数据,需要在MQTT中对网关进行配置(设置更快的scan、关闭只找传感器的选项)。
  2. 发现设备后,在nodered中进行配置,逻辑如下:
    在这里插入图片描述
  3. 获取温湿度数据,即通过mqtt进行获取,找到对应的topic即可:
    在这里插入图片描述
  4. 从名字中解析温湿度数据并转换成合理数据
var dat = { payload: msg.payload.name };
// dat类型为 26.4C 69.3H 或者 " 26.4C 69.3H" 或者 "-26.4C 69.3H"
var temp = 0.0;
var humi = 0.0;// 使用正则表达式解析温度和湿度数据
var matches = dat.payload.match(/([ -]?\d+\.\d+)C\s+(\d+\.\d+)H/);if (matches && matches.length === 3) {// 第一个匹配项是温度temp = parseFloat(matches[1].trim());// 第二个匹配项是湿度humi = parseFloat(matches[2].trim());
}var newMsg = { payload: { "temp": temp, "humi": humi } };
return newMsg;
  1. 发布数据到hass
    在这里插入图片描述
    在这里插入图片描述
  2. 之后就可以在HASS中看到数据,加入到主页即可。

四、WCH MESH测试

上述已经基本完成了功能,设置成10s,纽扣可以使用一两年时间。但是这种方式需要防止很多的esp32网关,同时实时性存在问题。
蓝牙mesh一直是我想要学习并测试的,参考资料如下:
https://www.cnblogs.com/cchHers/p/15470049.html
https://www.cnblogs.com/JayWellsBlog/category/2160216.html
https://www.cnblogs.com/JayWellsBlog/p/16266404.html

  1. 配网方式
    配网方式有两种,配网器配网和手机自配网。其中、手机自配网就得所有的节点都设置为自配网,可以实现更多的节点配网并可以通过手机进行设置。配网器配网可以实现 配网器+朋友节点+低功耗节点的方式,但是配网器flash限制、朋友节点内存限制,都导致无法存在太多的节点。
  2. 手机自配网注意事项:自配网中,需要将4个(包括MESH_LIB)都烧录到节点中,才可以正常运行。
    在这里插入图片描述
  3. 配网器配网:由于需要使用串口进行debug,而没有相应的设备,暂时无法进行测试。

五、后续待测试

  1. 测试配网器
  2. 测试低功耗节点
  3. 测试自定义数据,实现灯开关、pwm等功能。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IDS 与 IPS:网络安全的两道防线
  • 数字孪生技术框架:从数据到决策的桥梁
  • Python进阶知识点--总结
  • Vue 生命周期详解含demo、面试常问问题案例
  • Java服务实现多数据源切换
  • HTTPS通讯全过程
  • docker容器引用glibc库
  • spring揭秘06-Autowired自动绑定依赖及组件自动扫描
  • 「Unity3D」属性面板(Inspector)上增删操作,序列化的Dictionary对象的k-v数值
  • 【C语言篇】深入理解指针4(模拟实现qsort函数)
  • DIGITEL1500Ion Pump System离子泵系统控制器说明含电路图电路板图
  • 理解和控制 OBS 媒体源 - 前提条件与操作
  • C++ //练习 17.2 定义一个tuple,保存一个string、一个vector<string>和一个pair<string, int>。
  • ECMAScript6中的模块:export导出、import导入
  • MFC将类A中的事件在类B中处理采用回调函数实现
  • “大数据应用场景”之隔壁老王(连载四)
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • JavaScript对象详解
  • Map集合、散列表、红黑树介绍
  • Markdown 语法简单说明
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Protobuf3语言指南
  • session共享问题解决方案
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 动态规划入门(以爬楼梯为例)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 记录:CentOS7.2配置LNMP环境记录
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用putty远程连接linux
  • 双管齐下,VMware的容器新战略
  • 详解NodeJs流之一
  • 消息队列系列二(IOT中消息队列的应用)
  • 移动端 h5开发相关内容总结(三)
  • ​ubuntu下安装kvm虚拟机
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # wps必须要登录激活才能使用吗?
  • #每天一道面试题# 什么是MySQL的回表查询
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $forceUpdate()函数
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (四)库存超卖案例实战——优化redis分布式锁
  • (四)模仿学习-完成后台管理页面查询
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)大道至简,职场上做人做事做管理
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .“空心村”成因分析及解决对策122344
  • .htaccess 强制https 单独排除某个目录
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /3GB和/USERVA开关
  • /bin、/sbin、/usr/bin、/usr/sbin