查看“Sensor-Dust/zh”的源代码
←
Sensor-Dust/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Microduino-Dust}} {| style="width: 800px;" |- | [[File: Microduino-Dust.jpg|400px|thumb|center| 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。 [[file:mCookie-sensorhub_rule.JPG|thumb|800px|center]] [[File: Microduino-Dust_rule1.jpg|600px|thumb|center]] ==文档== *原理图:'''[[File: Microduino_Dust.Zip]]''' ==开发== 适用于大气空气质量检测或室内烟尘检测等。 ==应用== *所需硬件:[[Microduino-CoreUSB/zh]]、[[Microduino-sensorhub /zh]]、[[Microduino-IO split/zh]] USB数据线、转接线; **确认你搭建了Microduino的开发环境,否则参考:[[Microduino Getting start/zh]] *程序 <source lang="cpp"> #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 ; } </source> *软件: *把所有模块叠一起,将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传感器再进行下一次检测。 ==购买== ==历史== ==图库== *正面 [[file: Microduino-Dust-F.JPG|thumb|600px|center|Microduino-Dust Front]] *背面 [[file: Microduino-Dust -b.JPG|thumb|600px|center|Microduino-Dust Back]] |}
返回至
Sensor-Dust/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息