使用at32f415进行数据处理,使用颗粒物模块采集环境pm值,使用am2320采集环境温湿度,使用串口屏进行展示,使用dtu(或esp12)进行联网,使用node-red进行网页端展示。
环境检测、学习、联动控制
一、产品概述
使用at32f415进行数据处理,使用颗粒物模块采集环境pm值,使用am2320采集环境温湿度,使用串口屏进行展示,使用dtu(或esp12)进行联网,使用node-red进行网页端展示,结合“无线8路控制采集开关模块”实现联动控制,同时板子预留4路输出控制、4路输入采集,实现联动控制。贴片元件采用0805以上规格,放心使用。
二、产品参数
供电:5-60V
功耗:1W
PCB尺寸:85.1*55.6mm
三、使用说明
PCB各接口的图片说明
3D外壳
四、备注
1、成本构成
请大致汇总产品的复刻成本,按实际情况列示如:
元器件成本:¥ 10元(不含PCB)
其他外设:¥145~ 180元(详情查看附件 配件参考清单)
外壳、面板:¥ 3元
总计:¥ 158~193元
2、细节备注
- 外部flash未使用,不用焊接
- 如果只做采集,不做控制,继电器模块不用焊接,也可以结合继电器模块进行输出控制(如果控制24V以上电压,请注意安全)。
- 外壳螺丝,屏幕固定对角2颗(M3*6),底壳固定另外对角2颗(M3*15)(外壳3D文件在附件),dtu使用铜柱进行固定,pcb主板使用M3*6固定
- 串口屏刷程序需要SD卡(屏程序源工程在附件)
- “无线8路控制采集开关模块”在我其他项目中,出门右转,程序自行下载,使用本项目pcb也兼容开关模块
- pcb背面电阻皆不用焊接,后期扩展ADC采样使用
- 颗粒物传感器有后缀加S(甲醛)加T(温湿度)版本,本项目源代码下载后,可以自行修改程序,添加相应参数(价格太高,囊中羞涩)
- mqtt服务器使用EMQX公共服务器,申请的免费Serverless版本,个人使用额度是足够的
- node-red的部署步骤,网上有教程,这里就不罗嗦了,部署完成后,在nodered后台,将附件的nodered配置json文件导入,修改自行申请的emqx服务器地址和账号密码
- 源程序内有默认的服务器地址、账号密码,可以测试使用,但是为了个人隐私,请申请自己的服务器,可以修改后重新编辑下载,也可在屏幕中进行修改
- 模块联网方式,如果使用dtu,插入能正常联网的sim卡后,自会根据设定的服务器地址进行联网;如果是esp12,需要根据pcb指示灯,通过小程序“一键配网”->smartconfig配网,先连接wifi
- esp12的at联网固件及刷机软件、方式,项目“无线8路控制采集开关模块”相同,附件中自取,自行按照步骤取用
3、注意事项
- 本项目支持4G(dtu)、wiif(esp12),4G模块使用的rs485进行通信,而esp12使用的是uart进行通信,所以如果使用esp12需要将R6电阻扣除。
- dcdc电源部分,建议略微提升输出电压,将R34由17.7K改为16K,将电压提升到5.4V左右,防止供电不足5V电压时也能带起来。
五、测试视频
1、本模块的组装、dtu/esp12联网测试
2、联网联动(本模块(白色外壳带屏)与项目“无线8路控制采集开关模块”进行联动测试)
- “环境采集模块”进行环境数据采集,上传mqtt服务器,主板在白色外壳带屏的内
- “8路控制采集开关模块”开关状态,上传mqtt服务器,主板裸露在外配合4路继电器模块
- node-red 同步接收”环境采集模块“的环境数据和”8路控制采集开关模块“的开关状态
- node-red的联动栏,根据“上传设备”的条件判断,下发给“控制设备”相应的控制信息
六、更新日志
V1.0 首次上传
V2.0 2025.09.29更新:
更新日志:(新的pcb、原理图、焊接辅助、固件等在附件250929.rar中 )
1、增加W25Q64/128的外部flash,外部flash存储升级文件、参数配置文件、联网配置文件、主机从机配置文件、任务配置文件等。
2、增加OTA升级,及其配套的bootloader启动程序,并使用python编写升级上位机,上位机支持mqtt、tcp、本地串口的多种升级方式。
3、增加NRF24L01的收发功能,可以一主多从的采集控制从机。
4、使用NCA9555(内部自带上拉,防止干扰)扩展IO口,2片NCA9555,1个用于扩展输入输出,1个用于功能选择。
5、增加usb(type-c),电脑可以连接模块,
5.1、实现ISP-usb升级,
5.2、实现模拟U盘功能,直接在电脑端修改W25Qxx内存储的各种配置文件。
6、增加红外收发口及红外收发的功能,上一版本只有一个io口,这次扩展出来2个io口,分别用于收取和发送。后续在增加射频收发的功能。
7、增加2路RS485,可以通过去除相应的0欧姆电阻,转换成uart串口。
8、增加6路adc采集,并使用运放进行隔离保护,pcb背面可以使用分压电阻进行大电压采集。
9、软件层面,
9.1、优化了json信息,方便接收端更好的解析,后续增加参数也可 尽量模块化修改或少量修改。
9.2、增加另外2路串口的信息转发功能,方便远程调试。
9.3、优化了串口屏幕的显示和控制。
10、pcb尺寸稍微变化,由原来的85*55.6mm 变为85*58mm。
11、输出控制的衔接的继电器模块改由5V,直接通过主板的5V端口供电即可,完全带的起来8路继电器,供电功率最大12W。
12、后续会在b站发布相应的讲解视频,芯片选型、程序代码、上位机开发、node-red搭建等都会详细介绍。
点赞