我是在2019年diy的甲醛浓度传感器,当时我租的房子是新装修的,老婆就催我买一个甲醛测试仪测一下能不能入住。我想着,咱干脆就自己diy个甲醛浓度测试仪测一下吧。
于是花75元买了一个甲醛浓度传感器模组,英国达特的。
模组长这个样子。通信方式是串口,波特率9600 8N1。
要做一个甲醛浓度检测仪,需要有一个屏幕,能显示当前浓度,要有电池供电,这些功能都很简单,随便花半个小时画一个板子就可以了。刚建好文件夹,我就想到,我其实有现成的板子可以用啊,那就是Dragonfly四轴飞行器的手柄。
你看,这板子上,要屏幕有屏幕,要按键有按键,要串口有串口,要供电有供电的。毕竟当初设计这个手柄的时候,就是保留了尽可能多的开发功能。现在只需要把甲醛浓度检测模组的串口接到这个手柄的串口上,然后通过串口给这个模组供电,不就可以了吗?
想起来很简单,实际操作还是有点麻烦,甲醛浓度传感器模组的排针是2.0间距的,而手柄留的是2.54间距的排针,而且线序还不太一样。所以为了把这个接上,中间加了一块转接板,还飞了两根线调整线序。
从这个图里可以看到模组背面用了TP5552,这是一个低噪声、轨到轨的低温漂运放,用来放大甲醛传感器输出的模拟信号。模组上另外一个上面贴了纸的SSOP-20封装的器件是MCU,用来采集运放输出,处理之后得到甲醛浓度的数据,然后通过串口协议发送出来。关于这个模组上的微弱信号处理,后面有时间了单独写一写。
接好线之后,修改了一些手柄的代码,就能在OLED屏幕上显示甲醛浓度了。
显示的数据包含当前浓度、历史最高等等不同数据。
其实这些数据都来自于模块,卖家提供了协议。
使用串口空闲中断读取数据是最方便的。
串口空闲接收到一帧完整的数据之后,标志位wsz_ReceiveCompleteFlag置1,然后主循环中解析数据、调用Display_Update()更新显示。
这样,一个甲醛测试仪就diy好了。虽然这个玩意diy痕迹过重,距离一个产品过于遥远,但是对于个人家庭使用几个月来说,完全够用了,而且也就新房子刚入住测了几次,然后就堆在垃圾堆里吃灰了。
登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!