Sensor-Dust/zh

来自Microduino Wikipedia
Write_data@qq.com讨论 | 贡献2016年3月29日 (二) 08:00的版本
跳转至: 导航搜索
Language English
Microduino-Dust

Microduino-Dust是PM2.5传感器模块。

特色

  • 采用SHARP GP2Y1010AUOF空气质量传感器;
  • 独立风道,检测速度快;

规格

  • 工作电压: 4.5V~5.5V
  • 检测灵敏度:0.5V/0.1mg/m3
  • 1.27mm间距的4Pin接口;
  • 输入:风扇控制/5V数字信号,LED控制/5V数字信号
  • 输出:0~5V模拟信号
  • 风扇控制引脚说明:GND、VCC、风扇信号输入、NC(空),该输入信号为数字信号,需要使用数字接口来驱动(D0~D13)。可以接到Sensor-hub的3~10号引脚,对应使用的引脚为D0,D2,D4,D6,D8,D10,D12。
  • 传感器控制引脚说明:GND、VCC、检测信号输出、LED控制信号输入。此处检测信号为模拟信号,需使用模拟接口来检测(A0~A7),控制信号为数字信号,需使用数字接口来驱动(D0~D13)。可以使用I/O分线模块(IO-split)将这两个信号分开,将传感器接口通过转接线接到(IO-split)的IN接口,(IO-split)的A-OUT接口可以接到Sensor-hub的10,11,12号引脚,对应使用A6,A2,A0;(IO-split)的B-OUT可以接到Sensor-hub的3~10号引脚,对应使用的引脚为D0,D2,D4,D6,D8,D10,D12。
MCookie-sensorhub rule.JPG

文档

开发

适用于大气空气质量检测或室内烟尘检测等。

应用

#include <SoftwareSerial.h>
SoftwareSerial pmSerial(4, 5);  //PM2.5传感器通讯软串口
#define INTERVAL_pm25             200
unsigned long pm25_time = millis();

void setup() {
  Serial.begin(9600); // See the connection status in Serial Monitor
  pmSerial.begin(2400);   //首先启动软串口
}

void loop() {
  if (pm25_time > millis()) pm25_time = millis();
  if (millis() - pm25_time > INTERVAL_pm25) {
    Serial.println(PM25()) ;
    pm25_time = millis();    //更新计时器
  }
}

float PM25() {
  int data_s = 0;    //串口接收数据
  int num = -1;      //串口接收数据计数
  int sum = 0;       //校验和
  int cal[5];        //接收数据缓存
  float dustDensity = 0;  //PM2.5浓度

  pmSerial.listen();
  while (1) {
    if (pmSerial.available() > 0) { //串口缓存有数据
      data_s = pmSerial.read();   //读取串口缓存数据
      if (data_s == 0xAA) {        //得到数据帧起始位
        num = 0;                  //开始计数
      }
      else if (num >= 0) {
        cal[num++] = data_s; //读到数据,计数+1,数据保存到缓存中
        if (num == 6) {        //读到数据帧最后一位
          sum = cal[0] + cal[1] + cal[2] + cal[3];  //计算校验和
          if (sum == cal[4] && cal[5] == 0xFF) {    //校验和匹配,数据帧最后一位为0xFF,说明接收的数据帧正常
            dustDensity = (cal[0] * 256 + cal[1]) * (5.0 / 1024) * 550; //计算PM2.5浓度,单位ug/m3
          }
          else {     //接收的数据不正常
            dustDensity = 0;    //浓度清零
          }
          break;
        }
      }
    }
  }
  pmSerial.stopListening();
  return dustDensity ;
}
  • 软件:
  • 把所有模块叠一起,将Dust传感器的风扇控制接口通过转接线与sensorhub的D10口连接起来。
  • 将Dust传感器的控制检测接口通过转接线接到IO分线器的IN接口,再将IO分线器的A-OUT接口接到sensorhub的A0,IO分线器的B-OUT接口接到sensorhub的D12。
  • 打开Arduino IDE,将程序拷贝到IDE中,在Tools→Board里面选择正确的板卡,然后进行编译。
  • 编译完成后在Arduino IDE的Tools→Serial Port里面选择正确的端口号,然后直接下载程序。
  • 下载完毕你可以打开串口监视器,Dust传感器的风扇工作3秒钟之后,串口控制台会显示出当前的空气粉尘密度,等待1秒钟之后Dust传感器再进行下一次检测。

购买

历史

图库

  • 正面
文件:Microduino-Dust-F.JPG
Microduino-Dust Front
  • 背面
文件:Microduino-Dust -b.JPG
Microduino-Dust Back