亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

带夏普 GP2Y1010AU0F 传感器的 DIY 空气质量监测仪

组件和用品

Arduino Nano R3
× 1
电容器,220 µF
× 1
通孔电阻,150 ohm
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE
处理基础处理

关于这个项目

Sharp 光学灰尘传感器 (GP2Y1010AU0F) 在检测非常细小的颗粒(如香烟烟雾)方面特别有效,常用于空气净化器系统。红外发光二极管和光电三极管斜置入该装置中,使其能够检测空气中灰尘的反射光。

在之前的视频中,我向您展示了基于 DSM501A 和 PPD42NS 传感器板的空气质量监测器。这次我将向您展示相同的设备,现在基于夏普 GP2Y1010AU0F 传感器板,它也非常便宜,成本在 5 美元左右。该设备的电气方案非常简单,如下图所示。空气传感器有一个非常低电流消耗(最大 20mA,典型 11mA),并且可以直接从 Arduino 板供电。传感器的输出为与被测粉尘密度成正比的模拟电压,灵敏度为0.5V/0.1mg/m3。

我修改了“Dfrobot”页面中的 Arduino 示例代码,因此读取值在 microg/m3 中。接下来我写了一个基于“meter”库的Processing代码,让这些数值以大型模拟仪器的形式呈现在PC显示器上,给人以鲜明的视觉效果。

最后让我们比较所有三个传感器板(我在之前的视频中描述的 DSM501A 和 PPD42NS 以及上面描述的 Sharp GP2Y1010AU0F)。这三个传感器都非常便宜,只需几美元即可购买。根据我在相同条件下测试它们的结果,获胜者是夏普 GP2Y1010AU0F。有很多积极的方面,其中:

-对非常低的值更敏感

- 功耗极低,可直接由Arduino供电

- 非常简单的 Arduino 代码,可轻松定制

-它有一个模拟输出,所以它可以直接连接到测量仪器,无需任何额外的电子设备

此传感器可在速卖通购买

https://www.aliexpress.com/item/32661666070.html?spm=a2g0s.9042311.0.0.27424c4dKW7gUj

感谢收看

代码

  • Arduino 代码
  • 处理代码
Arduino 代码Arduino
/* 与 Arduino UNO 和 Sharp 光学灰尘传感器 GP2Y1010AU0F 一起使用的独立草图 */int measurePin =0; //将灰尘传感器连接到Arduino A0 pinint ledPower =2; //将灰尘传感器的 3 个 LED 驱动引脚连接到 Arduino D2int samplingTime =280;int deltaTime =40;int sleepTime =9680;float voMeasured =0;float calcVoltage =0;floatdustDensity =0;void setup(){ Serial.begin (9600); pinMode(ledPower,OUTPUT);}void loop(){ digitalWrite(ledPower,LOW); // 开启 LED delayMicroseconds(samplingTime); voMeasured =analogRead(measurePin); // 读取灰尘值 delayMicroseconds(deltaTime);数字写入(ledPower,高); // 关闭 LED delayMicroseconds(sleepTime); // 0 - 5V 映射到 0 - 1023 个整数值 // 恢复电压 calcVoltage =voMeasured * (5.0 / 1024.0); // 线性方程取自 http://www.howmuchsnow.com/arduino/airquality/ // Chris Nafis (c) 2012 灰尘密度 =170 * calcVoltage - 0.1; Serial.println(dustDensity); // 单位:ug/m3 延迟(1000);}
处理代码C/C++
/* //<>// 作为一个部分圆进行计量。改变一些颜色。请注意,圆圈从 90.0 度(6:00 OClock)开始并顺时针移动。比例标签必须按此顺序排列。非硬件示例。由 Bill (Papa) Kujawa 于 2017 年 4 月 19 日创建。此示例代码位于公共领域。 */import processing.serial.*;import meter.*;Serial port;String[] list;Meter m;void setup() { size(1150, 910);背景(255、255、200); port =new Serial(this, "COM4", 9600); // 显示一个完整的圆形仪表。 m =new Meter(this, 125, 25, true); // 实例化一个完整的圆形仪表类。 m.setMeterWidth(850); m.setFrameColor(颜色(100, 0, 0)); m.setTitleFontColor(颜色(0, 200, 0)); m.setPivotPointColor(颜色(255, 0, 0)); m.setArcColor(颜色(0, 0, 200)); m.setScaleFontColor(颜色(200, 100, 0)); m.setTicMarkColor(颜色(217, 22, 247)); // 定义比例标签出现的位置 m.setArcMinDegrees(90.0); // (开始) m.setArcMaxDegrees(360.0); // (结束) m.setArcThickness(5); m.setNeedleThickness(4); // 设置与刻度标签对应的仪表值。 m.setMinScaleValue(0.0); m.setMaxScaleValue(800.0); m.setInputSignalOutOfRangeFontColor(color(0, 255, 0)); m.setMinInputSignal(0); m.setMaxInputSignal(800); m.setHighSensorWarningActive(true); m.setHighSensorWarningValue((float)200.0); String[] scaleLabelsA ={"0", "100", "200", "300", "400", "500", "600", "700", "800"}; m.setScaleLabels(scaleLabelsA); // 将标题从默认的“电压”更改为更有意义的标签。 m.setTitle("空气质量 (ug/m3)"); // 显示数字仪表值。 m.setDisplayDigitalMeterValue(true);}void draw() { if (port.available()> 0) { String val =port.readString(); list =split(val, ','); float air =float(list[0]);println("Airquality:" + air + " mg/m3 " );m.updateMeter(int(air)); }}

示意图


制造工艺

  1. 空气质量传感器嵌入人工智能功能
  2. DIY 环境和空气质量监测器
  3. 如何在 OpenSensors 上测量空气质量
  4. 氦空气质量传感器
  5. 基于 LoRa 的智能城市空气质量监测
  6. DIY 最简单的 IV9 Numitron 时钟与 Arduino
  7. 带 LED 和压电扬声器的 DHT11 传感器
  8. 室内空气质量和垃圾监测系统
  9. 使用 K30 传感器监测二氧化碳
  10. 带有 Arduino 的简单障碍物传感器
  11. 带有 Arduino 或 ESP8266 的电容式指纹传感器
  12. 碳基空气质量传感器