34530浏览
查看: 34530|回复: 43

[项目] 居家必备神器——甲醛检测仪

[复制链接]
甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在常温下是气态,通常以水溶液形式出现,经常吸入少量甲醛,会引起慢性中毒,出现头痛、乏力、心悸、失眠以及植物神经紊乱等疾病。而在我们生活的环境中应该可以说是随处可见甲醛,比如室内装修所用的合成板材、家具、还有装饰材料。前段时间哥哥家的新房刚刚装修不久。因为用来当婚房,所以想要急着住进去,于是在家里到处都能看见除甲醛的东西,前两天还在网上购了一个甲醛检测仪呢。
目前,市场上甲醛检测仪的种类也是多种多样,就比如在某宝上,就有半导体传感器测甲醛、利用电阻丝发热测甲醛、还有常见的试验纸。虽然价格便宜,但是所测数据不稳定,误差范围过大(误差范围在±20%)。后面我自己DIY了一个便携式甲醛检测仪,这样以后就可以随时检测自己所处环境的甲醛浓度了。
主要配件
此款甲醛传感器是电化学传感器。它可以将甲醛气体的浓度转换为微弱的电流信号。这样就可以通过电流电压变换电路将微弱的电流信号转换为可以测量的稳定的电压信号,增强了电信号的稳定性。另外它与Arduino兼容,可以精确的测量空气中的甲醛浓度,相比其他甲醛检测仪,它可以抑制干扰气体,而且稳定性和分辨率都较高。其使用寿命长达2年。
HCHO甲醛传感器在接口上采用简单的Gravity接口、宽输入电压、支持模拟电压或者串口输出。另外结合IOT技术,让全自动测量并统计不同地点的空气质量成为了可能。
主控板我采用兼容Arduino UNODFRduino UNO R3。相比之下,DFRduinoUNO R3的性价比更高。
其他配件
总配件图
电路连线图1-DAC模式
将传感器上的开关拨至DAC一端。接线图如上所示。
实物接线图1
注意:DAC模式中,测量精度会受主控器ADC的位数、参考电压精度的影响,因此请使用高精度的电源给主控器供电,或者直接使用主控器的内部参考电压。而且主控器的ADC至少是10位
【电路接线图2-UART模式
将传感器上的开关拨至UART一端。接线图如上所示。
实物接线图2
以上两种模式,我推荐使用UART模式,因为在此模式下,可以获得更高的精度。
效果图
屏幕采用的是Gravity I2CLCD1602彩色背光液晶屏,共有1600万种颜色组合。为了体现液晶屏的高大上,我一共选用了四种颜色(绿、黄、红、紫)来区分甲醛浓度的不同程度。
当甲醛浓度在安全范围内(则居室空气中甲醛浓度低于0.08mg/m3 或者0.06ppm),屏幕显示的为绿色。
当甲醛浓度超过安全范围(0.06ppm<空气中的甲醛浓度<0.2ppm),屏幕显示的为黄色。这个时候就要注意需要放置一些祛除甲醛的东西了
当甲醛浓度严重超标(0.2ppm<空气中的甲醛浓度<4ppm),屏幕显示的为红色。这类的房间最好还是给它空置半年再说入住的话,这甲醛实在是太厉害了。

当甲醛浓度>4ppm(此款甲醛传感器检测的最大范围为5ppm),这已经达到报表的程度了,这时屏幕会红色紫色交替闪烁。

场景
21世纪,我们接触的很多,身边有害的、有益的东西也是同等存在。在健康方面我们必须要重视起来,这样才能做到“生命,随年月流去,随白发老去。”所以我们所处的很多环境都需要检测甲醛浓度。比如:书柜、汽车内室、会议室、特别是刚装修的房子等环境里。
书柜
汽车内
居家必备神器——甲醛检测仪图1
会议室
置物架
窗台
办公室
居家必备神器——甲醛检测仪图2
现在不仅以上这些地方需要检测甲醛,公共场所民用建筑室内、建筑材料、家具等的甲醛含量也需要检测。由于甲醛含量超量的话,将对人体健康造成很大的影响。具有民用价值的甲醛检测仪也受到了人们的高度重视。既要满足生活需要,也要方便携带。针对目前的现状,此次设计遵守体积小,质量轻,性价比高的原则。其中外壳的3D文件以附件的形式放于文末,欢迎感兴趣的小伙伴下载。
【程序1-DAC模式】
  1. #define SensorAnalogPin A2  //this pin read the analog voltage from the HCHO sensor
  2. #define VREF  5.0   //voltage on AREF pin
  3. #include "DFRobot_RGBLCD.h"
  4. DFRobot_RGBLCD lcd(16, 2);
  5. void setup()
  6. {
  7.     Serial.begin(9600);
  8.     lcd.init();
  9.     lcd.setRGB(0, 0,255);
  10.     lcd.setCursor(1, 0 );
  11.     lcd.print("HCHO:");
  12. }
  13. void loop()
  14. {  
  15.     Serial.print(analogReadPPM());
  16.     Serial.println("ppm");
  17.     delay(1000);
  18.     lcd.setCursor(6,1);
  19.       lcd.print(analogReadPPM());
  20.      lcd.print("ppm");
  21.      lcd.setCursor(6,0);
  22.      lcd.print(analogReadPPM()*1.34);//  Unit conversion :1ppm = 1.34 mg/m3  
  23.      lcd.print("mg/m3");
  24.      if(analogReadPPM()<0.06)
  25.      {
  26.      lcd.setRGB(0, 255, 0);
  27.      }
  28.      else if(analogReadPPM()<0.2)
  29.     {
  30.       lcd.setRGB(250, 128, 10);
  31.     }
  32.     else if(analogReadPPM()<4)
  33.     {
  34.        lcd.setRGB(255, 0, 0);
  35.     }
  36.     else
  37.     {
  38.      
  39.           lcd.setRGB(255, 0, 0);
  40.           delay(250);
  41.            lcd.setRGB(0, 0, 0);
  42.          
  43.     }
  44.     delay(100);
  45. }
  46. float analogReadPPM()
  47. {
  48.    float analogVoltage = analogRead(SensorAnalogPin) / 1024.0 * VREF;
  49.    float ppm = 3.125 * analogVoltage - 1.25;  //linear relationship(0.4V for 0 ppm and 2V for 5ppm)
  50.    if(ppm<0)  ppm=0;
  51.    else if(ppm>5)  ppm = 5;
  52.    return ppm;
  53. }[/mw_shl_code]
  54. </font></div><div align="left"><font face="宋体">【程序2-UART模式】</font></div><div align="left"><font face="宋体">[mw_shl_code=cpp,true]
  55. #include <Wire.h>
  56. #include <DFRobotHCHOSensor.h>
  57. #include <SoftwareSerial.h>
  58. #include "DFRobot_RGBLCD.h"
  59. DFRobot_RGBLCD lcd(16, 2);
  60. #define SensorSerialPin  10  //this pin read the uart signal from the HCHO sensor
  61. SoftwareSerial sensorSerial(SensorSerialPin,SensorSerialPin);
  62. DFRobotHCHOSensor hchoSensor(&sensorSerial);
  63. void setup()
  64. {  
  65.     sensorSerial.begin(9600); //the baudrate of HCHO is 9600
  66.     sensorSerial.listen();
  67.     Serial.begin(9600);
  68.     lcd.init();
  69.     lcd.setRGB(0, 0,255);
  70.     lcd.setCursor(1, 0 );
  71.     lcd.print("HCHO:");
  72.       lcd.setCursor(1, 1 );
  73. }
  74. void loop()
  75. {
  76.   
  77.     if(hchoSensor.available()>0)  
  78.     {
  79.       // delay(1000);
  80.       Serial.print(hchoSensor.uartReadPPM());
  81.       Serial.println("ppm");
  82.       lcd.setCursor(6,1);
  83.       lcd.print(hchoSensor.uartReadPPM());
  84.      lcd.print("ppm");
  85.      lcd.setCursor(6,0);
  86.      lcd.print(hchoSensor.uartReadPPM()*1.34);  //Unit conversion :1ppm = 1.34 mg/m3
  87.      lcd.print("mg/m3");
  88.      if(hchoSensor.uartReadPPM()<0.06)
  89.      {
  90.      lcd.setRGB(0, 255, 0);
  91.      }
  92.      else if(hchoSensor.uartReadPPM()<0.2)
  93.     {
  94.       lcd.setRGB(250, 128, 10);
  95.     }
  96.     else if(hchoSensor.uartReadPPM()<4)
  97.     {
  98.        lcd.setRGB(255, 0, 0);
  99.     }
  100.     else
  101.     {
  102.      
  103.           lcd.setRGB(255, 0, 0);
  104.           delay(500);
  105.            lcd.setRGB(255, 0, 255);
  106.          
  107.     }
  108.    
  109.       delay(100);
  110.       
  111.     }
  112. }
复制代码
作者联系方式-QQ:1078883988 (添加时,备注DF社区+项目名称)

甲醛检测仪3D打印文件和三维图.rar

923.34 KB, 下载次数: 7998

天堂向左  学徒

发表于 2021-11-24 15:17:10

本帖最后由 天堂向左 于 2021-11-24 15:18 编辑

已经做好了,主要问题是3D打印图纸里靠近甲醛传感器那一边的上盖,卡屏幕面板的那个腿长了,3D打印材料很脆不能撇,我直接撇断了,索性把撇断的部分加工打磨了一下再用502粘回去,效果不错;螺丝孔拿自攻螺丝把眼打大一点就可以,打印出来的眼子是M2的孔,不是M3的,上图。
居家必备神器——甲醛检测仪图4
成品效果

居家必备神器——甲醛检测仪图1
绿色是用默认图纸打印出来的本来有的部分,照片是我处理完后的效果。

居家必备神器——甲醛检测仪图2
淘宝上找的3D打印店打出来

居家必备神器——甲醛检测仪图3
组装中


回复

使用道具 举报

JTfDlJRd  学徒

发表于 2019-6-11 23:36:54


大神,那个我导入你的库文件,然后在文件中也是按照你的代码那样写的,显示屏我是每十秒刷新一次的,但它每次显示的数值都不一样,而且很大,六十多五十多的都有,只有0.01的时候串口监视器才会显示一次,其他数据都不显示的,想问下这是什么问题呢?
回复

使用道具 举报

猫茶  学徒 来自手机

发表于 2020-3-29 03:27:01

川山甲的壳 发表于 2017-9-8 17:03
甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在常温下是气态,通常以水溶液形式出现, ...

做了一下这个项目,外壳有些小问题,需要后期再次打磨,螺丝孔也没设计好,得重画图纸。
回复

使用道具 举报

bobo  NPC

发表于 2017-9-28 14:35:44

回复

使用道具 举报

Ash  管理员

发表于 2017-11-7 16:00:31

家里刚装修好~ 想做一个出来检测一下!
回复

使用道具 举报

nustln  学徒

发表于 2018-1-6 16:28:39

赞啊,感谢分享
回复

使用道具 举报

设计chen  学徒

发表于 2018-4-27 11:59:33

楼主能加个好友吗,我也想做一个出来,买也行,方便的话加一下微信好友13723776817
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2018-4-27 13:18:24

本帖最后由 川山甲的壳 于 2018-4-27 13:22 编辑
设计chen 发表于 2018-4-27 11:59
楼主能加个好友吗,我也想做一个出来,买也行,方便的话加一下微信好友13723776817 ...

买的话,有心愿单呢,直接点击购买就行了哦。可以加我的qq:980204835,你给的微信加不起;P
回复

使用道具 举报

云胡不喜  学徒 来自手机

发表于 2018-11-5 10:38:45

川山甲的壳 发表于 2017-9-8 17:03
甲醛是一种无色,有强烈刺激性气味的气体。易溶于水、醇和醚。甲醛在常温下是气态,通常以水溶液形式出现, ...

楼主接线图是用fritzing画的吗,能否分享一下dfrobot的库文件
回复

使用道具 举报

2972648135  学徒

发表于 2018-11-13 22:17:19

云胡不喜 发表于 2018-11-5 10:38
楼主接线图是用fritzing画的吗,能否分享一下dfrobot的库文件

请问你找到了吗?能不能分享一下吗?
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2019-3-6 09:21:30

2972648135 发表于 2018-11-13 22:17
请问你找到了吗?能不能分享一下吗?

相关的库文件,在wiki上有哦。我不清楚 你要哪方面的库文件
回复

使用道具 举报

Mochange  学徒

发表于 2019-3-13 14:23:45

楼主,请问一下你们的库文件是哪里找的,我在wiki上找的示例文件是吗?
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2019-3-14 11:33:11

Mochange 发表于 2019-3-13 14:23
楼主,请问一下你们的库文件是哪里找的,我在wiki上找的示例文件是吗?

对,wiki上的样例代码,里面有下载库文件的地址
回复

使用道具 举报

Mochange  学徒

发表于 2019-3-21 18:41:14

川山甲的壳 发表于 2019-3-14 11:33
对,wiki上的样例代码,里面有下载库文件的地址

楼主你有你的检测仪的仿真图片吗?我可以加你的QQ吗?酬谢
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2019-4-10 08:50:13

Mochange 发表于 2019-3-21 18:41
楼主你有你的检测仪的仿真图片吗?我可以加你的QQ吗?酬谢

qq:980204835 仿真图片?
回复

使用道具 举报

JTfDlJRd  学徒

发表于 2019-6-2 23:25:11

大神,你好。我是一名大学生,目前也在做一个甲醛检测器的项目,我用的甲醛传感器是‘WZ-S 型甲醛检测模组’,想问一下这个能否套用你的那个库文件?现在项目卡在这个地方,望大神能帮一下,感激不尽
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2019-6-3 13:48:16

JTfDlJRd 发表于 2019-6-2 23:25
大神,你好。我是一名大学生,目前也在做一个甲醛检测器的项目,我用的甲醛传感器是‘WZ-S 型甲醛检测模组 ...

可以的哦
回复

使用道具 举报

川山甲的壳  初级技匠
 楼主|

发表于 2019-6-14 08:57:44

JTfDlJRd 发表于 2019-6-11 23:36
大神,那个我导入你的库文件,然后在文件中也是按照你的代码那样写的,显示屏我是每十秒刷新一次的,但它 ...

你的甲醛传感器也是用的这个吗
回复

使用道具 举报

JTfDlJRd  学徒

发表于 2019-6-14 13:16:43

川山甲的壳 发表于 2019-6-14 08:57
你的甲醛传感器也是用的这个吗

不是的,我用的是“达特WZ-S型甲醛检测模组”,它有四个接口:GND、5V、RX、TX ;这个的话能修改一下代码然后用在这个传感器上吗?
微信图片_20190614130509.jpg
微信图片_20190614130521.jpg
回复

使用道具 举报

JTfDlJRd  学徒

发表于 2019-6-14 16:38:37

川山甲的壳 发表于 2019-6-14 08:57
你的甲醛传感器也是用的这个吗

我用那个甲醛传感器的时候只接了GND、5V、TX 这三个接口,而且我用的是uart模式
回复

使用道具 举报

JTfDlJRd  学徒

发表于 2019-6-14 16:38:42

川山甲的壳 发表于 2019-6-14 08:57
你的甲醛传感器也是用的这个吗

我用那个甲醛传感器的时候只接了GND、5V、TX 这三个接口,而且我用的是uart模式
回复

使用道具 举报

MacSun  高级技师

发表于 2019-6-14 22:32:51

回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail