1 背景
装修甲醛怎么办?很多人想要购买甲醛检测仪,但在电商平台面对纷繁杂乱的商品列表还是有点手足无措。大家最关心的还是甲醛检测准不准,而单凭商家的广告实在难以判断。
在物联网行业混,咱们有破解的办法,甲醛检测最关键的部件就是传感器,而口碑最好的传感器就是英国 Dart 甲醛传感器。所以咱们完全可以基于真材实料的传感器来搭建硬件。
刚好 TencentOS tiny 团队推出了一篇教程,《TencentOS Tiny手把手教您自制智能甲醛监测仪》,这篇笔记就针对教程做一次实践。整个过程不需要什么代码开发,只要备齐硬件,相应大部分人都能轻松上手制作出自己的甲醛传感器。
腾讯云 IoT Explorer 是腾讯云主推的一站式物联网开发平台,IoT 小能手从设备侧开发、平台功能操作、应用侧开发三个部分来进行学习分享,另外还分享了一些动手实践作品及收录官方发布的产业合作案例,帮助读者更好地理解整个开发链路。详情可点此查看。
2 系统架构
除了甲醛检测仪不确定传感器用料之外,传统的检测仪还有一个比较大的缺点:一般甲醛数值都是在本地显示屏展示,也就是说得隔三差五到新装修的房间中,冒着超标甲醛的危险来查看当前数据。
而我们自制的甲醛检测仪,可以接入到腾讯云物联网平台,直接可以使用腾讯连连小程序来远程监控,充分发挥物联网的优势。
因此,整个系统架构是这样:
Dart甲醛传感器 --> STM32G0开发板(TencentOS Tiny) --> ESP8266 WiFi 模组 --> 腾讯云物联网开发平台 --> 腾讯连连小程序
3 终端硬件准备
成品组装
本项目所需要的物品清单有:
- TOS_EVB_G0开发板(板载 ESP8266 WiFi 模组) x 1
- 英国 Dart 甲醛传感器 x 1
- E53甲醛传感器底板 x 1
成品组装图
WiFi模组固件烧写
1. 下载固件
腾讯云IoT AT指令是一套针对使用通讯模组(2G/4G/NB/WIFI)接入腾讯云物联平台的定制AT指令集,如果通讯模组实现了该指令集,则设备接入和通讯更为简单,所需代码量更少。 ESP8266作为IoT领域使用最广泛的一款WiFi芯片/模组,腾讯云在其通用AT指令基础上,增加了腾讯云IoT AT指令集,形成一个定制的模组固件QCloud_IoT_AT_ESP8266。
下载链接:https://github.com/tencentyun/qcloud-iot-esp-wifi
下载之后即可在 qcloud-iot-esp-wifi/qcloud-iot-at-esp8266/QCloud_IoT_AT_ESP8266_FW/ 目录中看到定制固件。
2. 下载烧写工具
使用乐鑫官方下载工具ESPFlashDownloadTool,下载链接如下:
https://www.espressif.com/zh-hans/support/download/other-tools
点击下载 “Flash 下载工具(ESP8266 & ESP32 & ESP32-S2)”,下载之后解压即可。
3. 固件说明
腾讯云IoT定制的AT模组固件QCloud_IoT_AT_ESP8266,适用于所有FLASH大小为2MB或者2MB以上的ESP8266模组。
AT串口使用UART0,默认的Tx为GPIO1,Rx为GPIO3。但因为ESP8266的UART0 默认会在上电启动期间输出一些打印,如果打印信息影响设备功能,可在上电期间将 U0TXD(GPIO1)、U0RXD(GPIO3) 分别与 U0RTS (GPIO15),U0CTS(GPIO13)进行交换,以屏蔽打印。因此提供两个版本的固件:
- 名称包含UART_1_3的固件串口使用的Tx为GPIO1,Rx为GPIO3。
- 名称包含UART_15_13的固件串口使用的Tx为GPIO15,Rx为GPIO13。
进入QCloud_IoT_AT_ESP8266_FW,本文中我们使用后缀为 _UART_1_3.bin 的固件。
4. 切换boot选择端子和串口选择端子
- 将开发板上的ESP8266启动引脚配置端子切换到低电平;
- 将开发板上的串口选择端子置于中间,使ESP8266直接与PC串口连接:
参考下图:
5. Flash烧写工具 下载
6. 下载完成
下载完成之后关闭工具,将boot选择引脚拔下,将串口选择端子恢复默认。
4 腾讯云物联网平台操作
平台操作比较简单,创建产品、定义数据模版、创建设备即可。
4.1 创建产品
4.2 定义数据模版
进入产品,点击【数据模板】,点击【导入JSON】,导入下面的JSON代码:
代码语言:txt复制{
"version": "1.0",
"profile": {
"ProductId": "BDDSF87WEA",
"CategoryId": "1"
},
"properties": [
{
"id": "ch20_ppm_value",
"name": "甲醛浓度值",
"desc": "",
"mode": "r",
"define": {
"type": "float",
"min": "0",
"max": "2",
"start": "0",
"step": "0.001",
"unit": "ppm(mg/m3)"
},
"required": false
}
],
"events": [],
"actions": []
}
4.3 创建设备
点击【设备调试】,进入后点击【新建设备】,创建真实设备,填入设备名 dev001 即可。
设备创建成功之后进入设备,查看到产品ID、设备名称、设备密钥:
5 终端固件编译及烧写
固件编译
终端软件可以直接从TencentOS-tiny仓库下载,工程目录为 TencentOS-tinyboardTencentOS_tiny_EVB_G0KEILmqtt_iot_explorer_tc_ch20_oled 。
使用 Keil 打开之后修改代码两处地方,一个是设备的ID及密钥信息,另一个是 WiFi 连接的 AP 信息。修改文件为: .demomqtt_iot_explorer_tc_ch20_oled.c 。
代码语言:txt复制#define PRODUCT_ID "YourProductId"
#define DEVICE_NAME "YourDeviceName"
#define DEVICE_KEY "YourDeviceKey"
代码语言:txt复制esp8266_tencent_firmware_join_ap("YourSSID", "YourKEY");
固件烧写
连接好 STLINK 后,可以对开发板进行烧写。
6 终端工作验证
固件烧录后,甲醛检测仪的显示屏会实时显示当前的甲醛数值,同时会通过 WiFi 接入到腾讯云物联网平台上报甲醛数据。
通过串口工具可以看到甲醛检测仪的终端日志。
在平台上可以看到属性的实时刷新。
也可以看到通信日志。
7 腾讯连连小程序操作
腾讯连连小程序可以零代码方式直接使用小程序来操作设备。只需要在物联网开发平台上打开设备的二维码,腾讯连连小程序扫码绑定就可以了。
在腾讯云物联网开发平台进入【设备调试】,点击对应设备后的【二维码】:
手机端在【微信】搜索【腾讯连连】小程序,腾讯连连扫描此二维码即可成功添加设备,添加成功之后如图:
默认情况下小程序已经自带了一个面板,如果有开发能力还可以自定义面板。
小结
至此,一套自制的甲醛检测仪便完成了,同时还可以支持小程序实时监控。
That's All。