Grove - 激光 PM2.5 传感器 (HM3301)
Grove - 激光 PM2.5 传感器 (HM3301) 是新一代激光粉尘检测传感器,用于连续和实时检测空气中的粉尘。
与传统的抽气式粉尘检测传感器不同,HM-3301 创新地使用风扇叶片驱动空气流动,通过检测室流动的空气作为测试样本,对空气中不同粒径的粉尘进行实时和连续测试。
该模块适用于粉尘检测仪、智能空气净化器、智能空调、智能通风风扇、空气质量检测、雾霾仪、环境监测及相关产品和应用。
特性
- 对粒径为 0.3 μm 或更大的粉尘颗粒具有高灵敏度
- 实时和连续检测空气中的粉尘浓度
- 基于激光光散射技术,读数准确、稳定且一致
- 低噪音
- 超低功耗
规格
项目 | 参数 |
---|---|
工作电压 | 3.3V / 5V |
工作温度 | -10~60℃ |
工作湿度 | 10%~90%RH (非冷凝) |
粒径 | 3 个通道-- 1.0µm, 2.5µm, 10µm |
范围 (PM2.5 标准值) | 1~500µg/ m3 (有效范围) 1000 µg/ m3 (最大范围) |
分辨率 | 浓度: 1µg/ m3 计数浓度: 1s/0.1L |
稳定时间 | 上电后 30 秒 |
接口 | I2C |
I2C 地址 | 0x40 |
典型应用
- 空气净化器 / 空调
- 空气质量检测设备
- 工业 PM 值分析
- 粉尘和烟雾检测与分析
- 实时 PM2.5、PM10、TSP 检测仪
- 多通道粒子计数器
- 环境检测设备
硬件概览
引脚定义
工作原理
HM-3301 粉尘传感器基于先进的 Mie 散射理论。当光通过与光波长相同或更大的颗粒时,会产生光散射。散射光集中到高灵敏度光电二极管上,然后通过电路放大并分析。通过特定的数学模型和算法,可以获得粉尘颗粒的计数浓度和质量浓度。
HM-3301 粉尘传感器由风扇、红外激光源、聚光镜、光敏管、信号放大电路和信号分拣电路等主要组件组成。
支持的平台
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上述提到的支持平台仅表示模块的软件或理论兼容性。我们通常仅为 Arduino 平台提供软件库或代码示例。不可能为所有可能的 MCU 平台提供软件库或演示代码。因此,用户需要自行编写软件库。
入门指南
使用 Arduino
硬件
所需材料
Seeeduino V4.2 | Base Shield | Grove - 激光 PM2.5 传感器 (HM3301) |
---|---|---|
![]() | ![]() | ![]() |
立即购买 | 立即购买 | 立即购买 |
-
步骤 1. 将 Grove - 激光 PM2.5 传感器 (HM3301) 连接到 Grove-Base Shield 的 I^2^C 端口。
-
步骤 2. 将 Grove-Base Shield 插入 Seeeduino。
-
步骤 3. 使用 USB 线将 Seeeduino 连接到 PC。
如果没有 Grove Base Shield,我们也可以直接将此模块连接到 Seeeduino,如下所示。
Seeeduino | Grove 线缆 | Grove - 激光 PM2.5 传感器 (HM3301) |
---|---|---|
GND | 黑色 | GND |
5V 或 3.3V | 红色 | VCC |
SDA | 白色 | SDA |
SCL | 黄色 | SCL |
软件
如果这是您第一次使用 Arduino,我们强烈建议您在开始之前查看 Arduino 入门指南。
-
步骤 1. 从 Github 下载 Seeed_PM2_5_sensor_HM3301 库。
-
步骤 2. 参考 如何安装库 为 Arduino 安装库。
-
步骤 3. 重启 Arduino IDE。打开示例代码,可以通过以下三种方式打开:
-
直接在 Arduino IDE 中通过路径打开:File --> Examples --> PM2.5 sensor --> basic_demo。
-
在您的电脑中打开,点击 basic_demo.ino,您可以在文件夹 XXXX\Arduino\libraries\Seeed_PM2_5_sensor_HM3301-master\examples\basic_demo 中找到它,XXXX 是您安装 Arduino IDE 的位置。
-
或者,您可以点击代码块右上角的图标
将以下代码复制到 Arduino IDE 的新草图中。
-
#include "Seeed_HM330X.h"
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
HM330X sensor;
u8 buf[30];
const char *str[]={"sensor num: ","PM1.0 concentration(CF=1,Standard particulate matter,unit:ug/m3): ",
"PM2.5 concentration(CF=1,Standard particulate matter,unit:ug/m3): ",
"PM10 concentration(CF=1,Standard particulate matter,unit:ug/m3): ",
"PM1.0 concentration(Atmospheric environment,unit:ug/m3): ",
"PM2.5 concentration(Atmospheric environment,unit:ug/m3): ",
"PM10 concentration(Atmospheric environment,unit:ug/m3): ",
};
err_t print_result(const char* str,u16 value)
{
if(NULL==str)
return ERROR_PARAM;
SERIAL.print(str);
SERIAL.println(value);
return NO_ERROR;
}
/*parse buf with 29 u8-data*/
err_t parse_result(u8 *data)
{
u16 value=0;
err_t NO_ERROR;
if(NULL==data)
return ERROR_PARAM;
for(int i=1;i<8;i++)
{
value = (u16)data[i*2]<<8|data[i*2+1];
print_result(str[i-1],value);
}
}
err_t parse_result_value(u8 *data)
{
if(NULL==data)
return ERROR_PARAM;
for(int i=0;i<28;i++)
{
SERIAL.print(data[i],HEX);
SERIAL.print(" ");
if((0==(i)%5)||(0==i))
{
SERIAL.println(" ");
}
}
u8 sum=0;
for(int i=0;i<28;i++)
{
sum+=data[i];
}
if(sum!=data[28])
{
SERIAL.println("wrong checkSum!!!!");
}
SERIAL.println(" ");
SERIAL.println(" ");
return NO_ERROR;
}
/*30s*/
void setup()
{
SERIAL.begin(115200);
delay(100);
SERIAL.println("Serial start");
if(sensor.init())
{
SERIAL.println("HM330X init failed!!!");
while(1);
}
}
void loop()
{
if(sensor.read_sensor_value(buf,29))
{
SERIAL.println("HM330X read result failed!!!");
}
parse_result_value(buf);
parse_result(buf);
SERIAL.println(" ");
SERIAL.println(" ");
SERIAL.println(" ");
delay(5000);
}
库文件可能会更新。此代码可能不适用于更新后的库文件,因此我们建议您使用前两种方法。
-
步骤 4. 上传示例代码。如果您不知道如何上传代码,请查看 如何上传代码。
-
步骤 5. 打开 Arduino IDE 的 串口监视器,点击 工具->串口监视器。或者同时按下
ctrl
+shift
+m
键。将波特率设置为 115200。
如果一切正常,当您打开串口监视器时,可能会显示如下内容:
Serial start
0
FF 0 0 0 2D
0 3F 0 45 0
22 0 32 0 3B
0 0 0 0 0
0 0 0 0 0
0 0
sensor num: 0
PM1.0 concentration(CF=1,Standard particulate matter,unit:ug/m3): 45
PM2.5 concentration(CF=1,Standard particulate matter,unit:ug/m3): 63
PM10 concentration(CF=1,Standard particulate matter,unit:ug/m3): 69
PM1.0 concentration(Atmospheric environment,unit:ug/m3): 34
PM2.5 concentration(Atmospheric environment,unit:ug/m3): 50
PM10 concentration(Atmospheric environment,unit:ug/m3): 59
标准颗粒物质量浓度值是指通过工业金属颗粒作为等效颗粒进行密度转换后获得的质量浓度值,适用于工业生产车间等场所。大气环境中的颗粒物浓度是通过空气中的主要污染物作为等效颗粒进行密度转换后获得的浓度值,适用于普通室内和室外大气环境。因此您可以看到上面有两组数据。
在线原理图查看器
资源
-
[PDF] HM3301 数据手册
项目
大气污染可视化:空气污染问题越来越受到关注。这次我们尝试使用 Wio LTE 和新的激光 PM2.5 传感器监测 PM2.5。
技术支持与产品讨论
可升级为工业传感器
通过使用 SenseCAP S2110 控制器 和 S2100 数据记录仪,您可以轻松将 Grove 转变为 LoRaWAN® 传感器。Seeed 不仅帮助您完成原型设计,还为您提供了通过 SenseCAP 系列坚固的工业传感器扩展项目的可能性。
SenseCAP S210x 系列凭借其 IP66 防护外壳、蓝牙配置、对全球 LoRaWAN® 网络的兼容性、内置 19 Ah 电池以及强大的 APP 支持,成为工业应用的最佳选择。该系列包括土壤湿度、空气温湿度、光照强度、二氧化碳、EC 传感器以及一款 8 合 1 气象站。尝试最新的 SenseCAP S210x,为您的下一个工业项目取得成功。