Sensor-Dust/zh

来自Microduino Wikipedia
Pppeng讨论 | 贡献2016年6月29日 (三) 01:58的版本
跳转至: 导航搜索
Language English
Microduino-Dust

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

传感器引脚说明

Sensor backpin.png
  • 传感器的引脚:
    • PIN1:GND
    • PIN2:VCC
    • 一般信号引脚:
      • PIN3(IO1):数字信号/模拟信号
      • PIN4(IO2):NC(空)
    • 特殊信号引脚:
      • 若为IIC:IO1/IO2 分别为 SDA/SCL
      • 若为软串口:IO1/IO2 分别为 tx/rx
  • 针对Sensor-Dust/zh传感器引脚
    • PIN1:GND
    • PIN2:VCC
    • PIN3(IO1):D4(软串口)
    • PIN4(IO2):D5(软串口)


mCookie传感器可通过连接Microduino-Module Sensor Hub/zh来和核心模块通讯

特色

  • 采用SHARP GP2Y1010AUOF空气质量传感器;
  • 串口通信;

规格

  • 工作电压: 4.5V~5.5V
  • 检测灵敏度:0.5V/0.1mg/m3
  • 1.27mm间距的4Pin转6Pin接口;
  • 软串口(D4,D5)通讯

文档

开发

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

应用

#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传感器的接口接到sensorhub的(D4,D5)。
  • 打开Arduino IDE,将程序拷贝到IDE中,在Tools→Board里面选择正确的板卡,然后进行编译。
  • 编译完成后在Arduino IDE的Tools→Serial Port里面选择正确的端口号,然后直接下载程序。
  • 下载完毕你可以打开串口监视器,串口控制台会显示出当前的空气粉尘密度,等待1秒钟之后Dust传感器再进行下一次检测。

购买

历史