请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 12115|回复: 21

[经验分享] 利用M1传感器DIY空气检测仪(一)

[复制链接]

5

主题

31

帖子

129

积分

论坛DIY达人

积分
129
金钱
98
HASS币
0
发表于 2019-5-26 03:16:24 | 显示全部楼层 |阅读模式
本帖最后由 qgyhd1234 于 2019-5-27 11:19 编辑

之前手里有一个悟空 m1,想将其连接到 HA,利用官方 APP 配网,一直失败。在论坛看到有大神出了 M1 的固件,按照教程,拆开,刷机,进入 bootloader 后一直有 error 打印,无法完成升级流程,索性将 M1 的传感器拆下来,自己开发,将传感器的数据利用 mqtt 发往 HA。

自己开发的固件,希望实现以下功能:
- 可以利用控制台配网
- 可以利用微信配网
- 可以利用控制台设置数据更新时间
- 实现设备的自动发现
- 实现 OTA 升级

手上有一块空闲的 RTL8710 的开发板,正好拿来废物利用。操作系统使用 rt-thread,使用操作系统的好处是操作系统自带了控制台,调试和配置很方便,再者,rt-thread 拥有数量众多的软件包,本次开发中需要用到的 mqtt,rt-thread 也已经提供了,省去了开发的时间。

RTL8710的照片如下图所示,是个类似 ESP8266 的 wifi soc
rtl8710.jpg

ZE08 模块预留了 7 个 IO 出来,我们只要用到其中的 4 个,我已经在图中标了出来 ze08.jpg


M1 使用的甲醛传感器型号是 ZE08,这个传感器,5V 供电,使用串口发送数据,读取数据比较简单。ZE08 有两种模式,一种是主动上报模式,一直是问答模式。我用的是问答模式,也就是要读取数据,要先发读取数据的命令,ZE08 才会把数据返回过来。这里列出需要用到的命令和数据结构体:
const char ze08_cmd_initiative_upload_mode[] = {0xFF, 0x01, 0x78, 0x40, 0x00, 0x00, 0x00, 0x00, 0x47};
const char ze08_cmd_question_answer_mode[]   = {0xFF, 0x01, 0x78, 0x41, 0x00, 0x00, 0x00, 0x00, 0x46};
const char ze08_cmd_read_data[]              = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};

struct ze08_data_fromat
{
    volatile uint8_t start;
    volatile uint8_t cmd;
    volatile uint8_t ug_h;
    volatile uint8_t ug_l;
    volatile uint8_t retain1;
    volatile uint8_t retain2;
    volatile uint8_t ppb_h;
    volatile uint8_t ppb_l;
    volatile uint8_t verify;
};


现在的读取数据是 5s 读取一次,数据读取成功,结果如下:
ze08.png
mqtt 服务器使用 HA 自带的 HBMQTT,需要在 HA 的 mqtt 里设置登陆用密码,用户名为默认的 homeassistant

mqtt:
  password: your_password


在 sensor 里添加 mqtt 传感器的相关配置

sensor:
  ...
  - platform: mqtt
    state_topic: 'home/bedroom/methanal/state'
    name: ze08
    unit_of_measurement: ug/m3


然后利用 mqtt 将数据发往 topic:home/bedroom/methanal/state 即可,最终效果如下所示:
VBEY5WJIOFF73PW]OZ%{H`L.png
ze08 已经连接上了 HA,现在的数据是直接发往 state topic的,看教程,M1 的 3 个传感器可以通过 json 一起发送过去,等将 3 个传感器都对接上后再改改,第一篇就这样吧。
ze08 数据手册:
ze08.pdf (715.8 KB, 下载次数: 30)






评分

参与人数 2金钱 +26 收起 理由
+ 20 厉害了word楼主!
jyz_0501 + 6 感谢楼主分享!

查看全部评分

回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2019-5-26 09:01:22 | 显示全部楼层
把拆机图补充上来更好啊
回复

使用道具 举报

123

主题

4620

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
15961
金钱
11256
HASS币
45
发表于 2019-5-26 09:55:53 | 显示全部楼层
厉害了楼主,期待教程中,我的m1还在吃灰
回复

使用道具 举报

10

主题

660

帖子

5271

积分

论坛元老

Rank: 8Rank: 8

积分
5271
金钱
4606
HASS币
50
发表于 2019-5-26 14:53:42 | 显示全部楼层
jyz_0501 发表于 2019-5-26 09:01
把拆机图补充上来更好啊

猪头先生帖子的附件有拆机图,我都刷完啦
回复

使用道具 举报

4

主题

69

帖子

587

积分

论坛技术达人

积分
587
金钱
503
HASS币
60
发表于 2019-5-26 16:38:25 | 显示全部楼层
这么说来PDD的M1卖的很便宜啊,因为光这个传感器,淘宝就卖70!好想囤一个M1
回复

使用道具 举报

38

主题

2034

帖子

7550

积分

元老级技术达人

积分
7550
金钱
5501
HASS币
110
发表于 2019-5-27 08:46:15 | 显示全部楼层
嗯....猪头先生那个 温湿度上传数据很慢..尤其是温度 历史曲线里就是折线...
回复

使用道具 举报

0

主题

85

帖子

777

积分

高级会员

Rank: 4

积分
777
金钱
692
HASS币
0
发表于 2019-5-27 08:56:37 | 显示全部楼层
ghostist 发表于 2019-5-27 08:46
嗯....猪头先生那个 温湿度上传数据很慢..尤其是温度 历史曲线里就是折线... ...

是的 我也发现了 数据不是实时的
回复

使用道具 举报

7

主题

1968

帖子

5637

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
5637
金钱
3669
HASS币
145

灌水之王

发表于 2019-5-27 09:10:52 | 显示全部楼层
hassio-newbie 发表于 2019-5-26 16:38
这么说来PDD的M1卖的很便宜啊,因为光这个传感器,淘宝就卖70!好想囤一个M1  ...

这传感器放着不用也会坏的
基本市场上的差不多都是最后期了吧
回复

使用道具 举报

5

主题

31

帖子

129

积分

论坛DIY达人

积分
129
金钱
98
HASS币
0
 楼主| 发表于 2019-5-27 11:00:52 | 显示全部楼层
jyz_0501 发表于 2019-5-26 09:01
把拆机图补充上来更好啊

已补充模块图片,我会出个系列连载,将里面的3个传感器都用上,每个模块的图片会上传到对应的帖子里
回复

使用道具 举报

5

主题

31

帖子

129

积分

论坛DIY达人

积分
129
金钱
98
HASS币
0
 楼主| 发表于 2019-5-27 11:08:13 | 显示全部楼层
本帖最后由 qgyhd1234 于 2019-5-27 11:10 编辑
Jones 发表于 2019-5-26 09:55
厉害了楼主,期待教程中,我的m1还在吃灰

第一篇已经更新完成,如果大家想玩的话,我可以在开发完后将最终的固件放出来。
问一下论坛精华帖的要求是啥?

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-3-28 18:04 , Processed in 0.319174 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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