(SKU:SEN0233)Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)

来自DFRobot Product Wiki
跳转至: 导航搜索
产品名称

Update/modify/delete Forbidden, 禁止更改本图,请更改图片名称,避免覆盖上传

目录

简介

Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)模块是一个可以同时监测空气中颗粒物浓度、甲醛浓度及温湿度的三合一传感器。其中监测颗粒浓度使用的是激光散射原理,能够连续采集并计算单位体积内空气中不同大小的悬浮颗粒物数目,即颗粒物浓度分布,可以通过该数值换算成质量浓度。甲醛浓度的监测是基于电化学原理进行检测的,具备高精度、高稳定性的特点。同时传感器内部嵌入了瑞士生产的温湿度一体检测芯片,能够精确的检测出温度值和湿度值。该传感器把颗粒物浓度数值、甲醛浓度数值及温度、湿度监测功能合并,用数字接口形式输出相关数据帧。传感器能够嵌入各种与空气质量监测和环境空气改善相关的仪器设备,为其提供及时准确的环境参数。



技术规格

  • 工作电压:直流5.0 V
  • 最大工作电流:100 mA
  • 待机电流:≤200 uA
  • 数据接口电平:L<0.8V,H>2.7V,电平最大电压3.3V
  • 颗粒物测量范围:0.3~1.0 μm;1.0~2.5μm;2.5~10μm
  • 颗粒物计数效率:50% @ 0.3μm 98% @ ≥0.5μm
  • 颗粒物质量浓度有效量程(PM2.5标准值):0~500ug/m³
  • 颗粒物质量浓度最大量程(PM2.5标准值):0~2000ug/m³
  • 颗粒物质量浓度分辨率:1ug/m³
  • 颗粒物质量浓度一致性(PM2.5标准值):1.±10%@100~500 ug/m³ 2.±10 ug/m³@0~100 ug/m³
  • 标准体积:0.1 L
  • 甲醛有效量程:0~1 mg/m³
  • 甲醛最大量程:0~2 mg/m³
  • 甲醛分辨率:0.001
  • 甲醛最大误差:<±5%
  • 温度测量范围:0~99℃
  • 温度测量分辨绿:0.1℃
  • 温度测量精度:±0.5℃
  • 湿度测量范围:0~99%
  • 湿度测量分辨率:0.1%
  • 湿度测量精度:±2%
  • 响应时间:≤10s
  • 串口波特率:9600bps
  • 工作温度范围:-10~+50℃
  • 工作湿度范围:0~99%
  • 平均无故障时间:≥3年
  • 产品尺寸:50 mm*38 mm*21 mm / 1.97*1.50*0.83 inches


安装注意事项

  • 1. 金属外壳与内部电源地导通,注意不要和其他外部板组电路或机箱外壳短接。
  • 2. 进风口和出风口所在的平面紧贴用户机内壁与外界连通的气孔为最佳安装方式,如无法实现,则出风口周围 2cm 之内无遮挡。进风口和出风口之间应有结构使气流隔离,避免气流在用户机内部从出风口直接回流到进风口。
  • 3. 用户机内壁为进风口所开的通气孔不应小于进风口的尺寸。
  • 4. 应用于净化器类产品时,尽量避免将传感器直接置于净化器自身风道中,如果无法避免,应单独设置一个独立的结构空间,将传感器置于其中,使其与净化器自身风道隔离。
  • 5. 应用与净化器或固定检测设备时,传感器位置应高于地面 20cm 以上。否则有可能被近地面的大尘埃颗粒甚至絮状物污染导致风扇缠绕阻转。
  • 6. 传感器应用于户外固定设备时,对于沙尘暴、雨雪等天气以及杨柳絮的防护,应由设备完成。
  • 7. 传感器是一个整体元件,用户切勿将其拆解,包括金属屏蔽壳,以防出现不可逆破坏。
  • 8. 传感器底部用 2mm 自攻螺钉固定,螺钉进入壳体长度应不大于 5mm。
  • 9. 为使得甲醛探头充分极化,传感器持续通电时间不应低于 48 小时。
  • 10. 除甲醛外,其他多种活性气体会对电化学甲醛探头产生影响,主要有甲醇、乙醇、 甲苯、 二甲苯、一氧化碳、硫化氢等。
  • 11. 长期在高浓度醛类、醇类等高浓度敏感气体中贮存或使用,会影响传感器甲醛功能使用寿命。特别是长时间在超出最大量程的饱和气体浓度下使用,会使得传感器甲醛功能短期失效,或一定几率下长期失效。
  • 12. 腐蚀性气体环境也会令传感器甲醛功能使用寿命降低或失效。


引脚说明

引脚图
表名
标号 名称 功能描述
PIN1 VCC 电源正(+5V)
PIN2 GND 电源负
PIN3 SET 设置管脚 /TTL电平@3.3V,高电平或悬空为正常工作状态,低电平为休眠状态
PIN4 RXD 串口接收管脚/TTL电平@3.3V
PIN5 TXD 串口发送管脚/TTL电平@3.3V
PIN6 RESET 模块复位信号/TTL电平@3.3V,低复位
PIN7 NC
PIN8 NC


使用教程

本次教程意在让您在5分钟内,学会如何使用Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)三合一传感器

教程样例程序包含测量PM2.5、甲醛以及温湿度值的功能

准备

  • 硬件
    • 1 x Arduino UNO控制板 或 DFRobot Leonardo & Xbee R3控制板
    • 1 x IO 传感器扩展板 V7.1
    • 1 x Gravity LCD1602 RGB Backlight Module
    • 1 x Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)三合一传感器及配套转接板
    • 1 x Micro USB数据线
    • 若干 杜邦线
  • 软件
    • Arduino IDE (根据能够使用的Arduino版本来选择,不要盲目追求最新版本), 点击下载Arduino IDE


接线图

电路连接图


样例代码1


/*!
   @file SEN0233.ino
   @brief Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)
   @n [Get the module here]()
   @n This example is to detect formaldehyde, PM2.5, temperature and humidity in the environment.
   @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:SEN0233)Air_Quality_Monitor_(PM_2.5,_HCHO,_Temperature_%26_Humidity)#.E5.BC.95.E8.84.9A.E8.AF.B4.E6.98.8E)

   @copyright  [DFRobot](http://www.dfrobot.com), 2017
   @copyright GNU Lesser General Public License

   @author [lijun](ju.li@dfrobot.com)
   @version  V1.0
   @date  2017-03-01
*/

#include <Wire.h>
#include "DFRobot_RGBLCD.h"

DFRobot_RGBLCD lcd(0x7c >> 1, 0xc0 >> 1, 16, 2); //parameter1:LCD address; parameter2:RGB address; 16 characters and 2 lines of show


char col;
unsigned int PMSa = 0,FMHDSa = 0,TPSa = 0,HDSa = 0,PMSb = 0,FMHDSb = 0,TPSb = 0,HDSb = 0;
unsigned int PMS = 0,FMHDS = 0,TPS = 0,HDS = 0,CR1 = 0,CR2 = 0;
unsigned char buffer_RTT[40]={};   //串口接收数据

void setup() 
{
  Serial.begin(9600);
  lcd.init();
  lcd.setCursor(0,0 );
  lcd.print("T:");
  lcd.setCursor(9,0 );
  lcd.print("H:");
  lcd.setCursor(0,1 );
  lcd.print("F:");
  lcd.setCursor(9,1 );
  lcd.print("P:");
}

void loop() 
{
  while(Serial.available()>0)   //检测是否有串口数据
  {
    for(int i=0;i<40;i++)
    {
      col =Serial.read();
      buffer_RTT[i]=(char)col;
      delay(2);
    }

    Serial.flush();

    //lcd.clear();
    CR1 =(buffer_RTT[38]<<8) + buffer_RTT[39];
    CR2 = 0;
    for(int i=0;i<38;i++)
      CR2 += buffer_RTT[i];
    if(CR1 == CR2)                //校验
    {
      PMSa=buffer_RTT[12];        //读取PM2.5高八位数据
      PMSb=buffer_RTT[13];        //读取PM2.5低八位数据
      PMS=(PMSa<<8)+PMSb;         //PM2.5数据
      FMHDSa=buffer_RTT[28];      //读取甲醛高八位数据
      FMHDSb=buffer_RTT[29];      //读取甲醛低八位数据
      FMHDS=(FMHDSa<<8)+FMHDSb;   //甲醛数据
      TPSa=buffer_RTT[30];        //读取温度高八位数据
      TPSb=buffer_RTT[31];        //读取温度低八位数据
      TPS=(TPSa<<8)+TPSb;         //温度数据
      HDSa=buffer_RTT[32];        //读取湿度高八位数据
      HDSb=buffer_RTT[33];        //读取湿度低八位数据
      HDS=(HDSa<<8)+HDSb;         //湿度数据
    }
    else
    {
      PMS = 0;
      FMHDS = 0;
      TPS = 0;
      HDS = 0;
    }
  }
  

  
  lcd.setCursor(2,0 );          //
  lcd.print(TPS/100);           //显示温度十位数
  lcd.print((TPS/10)%10);       //显示温度个位数
  lcd.print('.');               //
  lcd.print(TPS%10);            //显示温度小数
  lcd.write(0xdf);              //显示°
  lcd.print('C');               //显示C
  lcd.setCursor(11,0 );         //
  lcd.print(HDS/100);           //显示湿度十位数
  lcd.print((HDS/10)%10);       //显示湿度个位数
  lcd.print('.');               //
  lcd.print(HDS%10);            //显示湿度小数
  lcd.print('%');               //显示%
  lcd.setCursor(2,1 );          //
  lcd.print(FMHDS/1000);        // 显示甲醛个位数,单位  mg/m³ 毫克每立方米
  lcd.print('.');               //
  lcd.print((FMHDS/100)%10);    //显示甲醛小数第一位
  lcd.print((FMHDS/10)%10);     //显示甲醛小数第二位
  lcd.print(FMHDS%10);          //显示甲醛小数第三位
  lcd.setCursor(11,1 );         //
  lcd.print(PMS/100);           //显示PM2.5百位数,单位ug/m³ 微克每立方米
  lcd.print((PMS/10)%10);       //显示PM2.5十位数
  lcd.print(PMS%10);            //显示PM2.5个位数
  
}
                            

样例代码2

  • 这个程序不使用电路连接图中的arduino UNO R3和显示屏,主板使用的是DFRobot Leonardo & Xbee R3。
  • 用DFRobot Leonardo & Xbee R3主板替代UNO R3主板与上图中的扩展板连接,串口数据通过Micro USB端口传输给PC端,PC端串口波特率为115200,字符串显示。

/*!
   @file SEN0233.ino
   @brief Air Quality Monitor (PM 2.5, HCHO, Temperature & Humidity)
   @n [Get the module here]()
   @n This example is to detect formaldehyde, PM2.5, temperature and humidity in the environment.
   @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:SEN0233)Air_Quality_Monitor_(PM_2.5,_HCHO,_Temperature_%26_Humidity)#.E5.BC.95.E8.84.9A.E8.AF.B4.E6.98.8E)

   @copyright  [DFRobot](http://www.dfrobot.com), 2017
   @copyright GNU Lesser General Public License

   @author [lijun](ju.li@dfrobot.com)
   @version  V1.0
   @date  2017-04-21
*/


char col;
unsigned int PMSa = 0,FMHDSa = 0,TPSa = 0,HDSa = 0,PMSb = 0,FMHDSb = 0,TPSb = 0,HDSb = 0;
unsigned int PMS = 0,FMHDS = 0,TPS = 0,HDS = 0,CR1 = 0,CR2 = 0;
unsigned char buffer_RTT[40]={};   //串口接收数据

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

void loop() 
{
  while(!Serial1.available());
  while(Serial1.available()>0)   //检测是否有串口数据
  {
    for(int i=0;i<40;i++)
    {
      col =Serial1.read();
      buffer_RTT[i]=(char)col;
      delay(2);
    }

    Serial1.flush();

    CR1 =(buffer_RTT[38]<<8) + buffer_RTT[39];
    CR2 = 0;
    for(int i=0;i<38;i++)
      CR2 += buffer_RTT[i];
    if(CR1 == CR2)                //校验
    {
      PMSa=buffer_RTT[12];        //读取PM2.5高八位数据
      PMSb=buffer_RTT[13];        //读取PM2.5低八位数据
      PMS=(PMSa<<8)+PMSb;         //PM2.5数据
      FMHDSa=buffer_RTT[28];      //读取甲醛高八位数据
      FMHDSb=buffer_RTT[29];      //读取甲醛低八位数据
      FMHDS=(FMHDSa<<8)+FMHDSb;   //甲醛数据
      TPSa=buffer_RTT[30];        //读取温度高八位数据
      TPSb=buffer_RTT[31];        //读取温度低八位数据
      TPS=(TPSa<<8)+TPSb;         //温度数据
      HDSa=buffer_RTT[32];        //读取湿度高八位数据
      HDSb=buffer_RTT[33];        //读取湿度低八位数据
      HDS=(HDSa<<8)+HDSb;         //湿度数据
    }
    else
    {
      PMS = 0;
      FMHDS = 0;
      TPS = 0;
      HDS = 0;
    }
  }
  
  Serial.println("-----------------------uart--------------------------");
  Serial.print("Temp : ");
  Serial.print(TPS/100);           //显示温度十位数
  Serial.print((TPS/10)%10);       //显示温度个位数
  Serial.print('.');               //
  Serial.print(TPS%10);            //显示温度小数
  Serial.println(" 'C");               //显示C

  Serial.print("RH   : ");  
  Serial.print(HDS/100);           //显示湿度十位数
  Serial.print((HDS/10)%10);       //显示湿度个位数
  Serial.print('.');               //
  Serial.print(HDS%10);            //显示湿度小数
  Serial.println(" %");               //显示%

  Serial.print("HCHO : ");
  Serial.print(FMHDS);
  Serial.println(" ug/m3");
  //Serial.print(FMHDS/1000);        // 显示甲醛个位数,单位  mg/m³ 毫克每立方米
  //Serial.print('.');               //
  //Serial.print((FMHDS/100)%10);    //显示甲醛小数第一位
  //Serial.print((FMHDS/10)%10);     //显示甲醛小数第二位
  //Serial.print(FMHDS%10);          //显示甲醛小数第三位
  //Serial.println(" mg/m3"); 
  
  Serial.print("PM2.5: ");
  Serial.print(PMS); 
  //Serial.print(PMS/100);           //显示PM2.5百位数,单位ug/m³ 微克每立方米
  //Serial.print((PMS/10)%10);       //显示PM2.5十位数
  //Serial.print(PMS%10);            //显示PM2.5个位数
  Serial.println(" ug/m3"); 
  Serial.println(); 
}
                              


结果

显示屏上显示当前检测出来的温度(T)、湿度(H)、甲醛浓度(F)、PM2.5浓度 (P)



常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


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


更多


DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱