HCHO甲醛传感器

简介

甲醛(化学式HCHO或CH2O)是一种有特殊刺激气味的气体,对人的眼睛和鼻子有强烈的刺激作用。若空气中甲醛浓度过高,比如新装修的房子、新买的汽车等,可引起中毒反应,严重的可致癌。甲醛是空气中的杀手之一,需要时刻提防。 这是一款Arduino甲醛传感器,可方便的确测量空气中甲醛气体的浓度,得知当前的空气质量状况。可应用于室内空气检测、实时空气检测站、智能家居系统、DIY甲醛检测仪等, 常用的甲醛检测采用专用试剂检测,费时费力,精度低,只能知道个大概浓度。而且使用次数非常有限。VOC传感器也能检测甲醛,但VOC表达的是挥发气体的整体浓度,并不能具体区分哪种气体浓度超标。如要想要单独测量甲醛浓度,VOC无能为力了。我们推出的甲醛传感器模组,可精确测量空气中的甲醛浓度,并能抑制干扰气体,具有稳定性高、抗干扰气体能力强等特点。分辨率高达0.01ppm,支持3.3~6V宽电压输入,可以支持Arduino、树莓派等主流设备,具备良好的兼容性,并且使用寿命长达2年。 简单易用的Gravity接口、宽输入电压、支持模拟电压或者串口输出,几乎可兼容所有的主控器。配上我们的样例代码,可迅速搭建出自己的甲醛检测仪。结合IOT技术,使得全自动测量并统计不同地点的空气质量,成为了可能。

warning_yellow.png 警告
使用过程中,请不要用手触摸或挤压传感器的白色感应膜。
正常使用时,空气中不能含有高浓度硫化氢、氢气、甲醇、乙醇、一氧化碳气体,以免影响测量精度和传感器的寿命。
模组初次上电使用需预热5分钟以上。
模组应避免接触有机溶剂(包括硅胶及其它胶粘剂)、涂料、药剂、油类及高浓度气体。
禁止插拔模组上的传感器,禁止改动、移位电子元件安装状态。
模组不可经受过度的撞击或震动。
请勿将该模组应用于涉及人身安全的系统中。
请勿将模组安装在强空气对流环境下使用。
请勿将模组长时间放置于高浓度有机气体中。

技术规格

引脚说明

甲醛传感器管脚定义

标号 名称 功能描述
1 S 信号输出端
2 + 电源输入正极
3 - 电源输入负极
4 SW 输出模式(UART或DAC)切换开关

使用教程

本教程将演示如何使用这款甲醛传感器来测量空气中甲醛的浓度值。 接线方式分两种,分别是UART模式与DAC模式。

warning_yellow.png
推荐UART模式,可获得更高更稳定的精度。

准备

UART模式

使用UART模式前,请先将拨码开关切换到UART一端。 HCHO_cmd.png

接线图

SEN0231_HCHO_Sensor(V1.0)wire_UART.png

样例代码

请先下载Arduino库(Gitee)如何安装库?

/***************************************************
     DFRobot Gravity: HCHO Sensor
     <https://www.dfrobot.com/wiki/index.php/Gravity:_HCHO_Sensor_SKU:_SEN0231>

     ***************************************************
     This example reads the concentration of HCHO in air by UART mode.

     Created 2016-12-15
     By Jason <jason.ling@dfrobot.com@dfrobot.com>

     GNU Lesser General Public License.
     See <https://www.gnu.org/licenses/> for details.
     All above must be included in any redistribution
     ****************************************************/

/***********Notice and Trouble shooting***************
  1. This code is tested on Arduino Uno with Arduino IDE 1.0.5 r2.
  2. In order to protect the sensor, do not touch the white sensor film on the sensor module,
  and high concentration of Hydrogen sulfide, hydrogen, methanol, ethanol, carbon monoxide should be avoided.
  3. Please do not use the modules in systems which related to human being’s safety.
****************************************************/

#include <DFRobotHCHOSensor.h>
#include <SoftwareSerial.h>

#define SensorSerialPin 10  //this pin read the uart signal from the HCHO sensor

SoftwareSerial sensorSerial(SensorSerialPin, SensorSerialPin);

DFRobotHCHOSensor hchoSensor(&sensorSerial);

void setup()
{
  sensorSerial.begin(9600);   //the baudrate of HCHO is 9600
  sensorSerial.listen();
  Serial.begin(9600);
}

void loop()
{
  if (hchoSensor.available() > 0)
  {
    Serial.print(hchoSensor.uartReadPPM());
    Serial.println("ppm");
  }
}

Mind+图形化程序

  1. 下载安装Mind+ : https://www.mindplus.cc ;
  2. 软件右上区域点击切换到“上传模式”
  3. 软件左下角点击“扩展”,选择“主控板”中的“Arduino Uno”
  4. 再次打开“扩展库”,选择“功能模块”中的“软串口”
  5. 进行编程,如下:
  6. 菜单“连接设备”,“上传到设备”

项目文件(使用Mind+V1.5.6及以上版本打开):点击下载
注意:1.6.0及1.6.1版本存在串口无法输出小数问题,因此请使用其他版本例如1.6.2

结果

如上图所示,浓度值每隔1秒打印一次,此时的示数就是你周围空气中的甲醛浓度值。

DAC模式

使用DAC模式前,请先将拨码开关切换到DAC一端。

warning_yellow.png
DAC模式中,测量精度会受主控器ADC的位数、参考电压精度的影响,因此请使用高精度的电源给主控器供电,或者直接使用主控器的内部参考电压。而且主控器的ADC至少是10位。

输出模拟电压(V)与浓度(ppm)是线性关系,0.4V对应0ppm, 2.0V对应5ppm,因此电压与浓度的线性关系图如下图所示:

Vtop_new.png

接线图

CH2O_Sensor_wire_DAC.png

样例代码

点此下载样例代码(Github)如何安装库?

/***************************************************
     DFRobot Gravity: HCHO Sensor
     <https://wiki.dfrobot.com/Gravity__HCHO_Sensor_SKU__SEN0231>

     ***************************************************
     This example reads the concentration of HCHO in air by DAC mode.

     Created 2016-12-15
     By Jason <jason.ling@dfrobot.com@dfrobot.com>

     GNU Lesser General Public License.
     See <https://www.gnu.org/licenses/> for details.
     All above must be included in any redistribution
     ****************************************************/

/***********Notice and Trouble shooting***************
  1. This code is tested on Arduino Uno with Arduino IDE 1.0.5 r2.
  2. In order to protect the sensor, do not touch the white sensor film on the sensor module,
  and high concentration of Hydrogen sulfide, hydrogen, methanol, ethanol, carbon monoxide should be avoided.
  3. Please do not use the modules in systems which related to human being’s safety.
****************************************************/

#define SensorAnalogPin A2  //this pin read the analog voltage from the HCHO sensor
#define VREF    5.0     //voltage on AREF pin

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.print(analogReadPPM());
  Serial.println("ppm");
  delay(1000);
}

float analogReadPPM()
{
  float analogVoltage = analogRead(SensorAnalogPin) / 1024.0 * VREF;
  float ppm = 3.125 * analogVoltage - 1.25;    //linear relationship(0.4V for 0 ppm and 2V for 5ppm)
  if (ppm < 0)  ppm = 0;
  else if (ppm > 5)  ppm = 5;
  return ppm;
}

Mind+图形化程序

  1. 下载安装Mind+: https://www.mindplus.cc;
  2. 软件右上区域点击切换到“上传模式”
  3. 软件左下角点击“扩展”,选择“主控板”中的“Arduino Uno”
  4. 进行编程,如下:
  5. 菜单“连接设备”,“上传到设备”

结果

如上图所示,浓度值每隔1秒打印一次,此时的示数就是你周围空气中的甲醛浓度值。

常见问题

Q1. 传感器刚上电时,没有输出信号,这正常吗?

Q2. ppm和mg/m3之间是什么关系?怎么转换?

Q3. 精度是多少?

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png Link DFRobot商城购买链接