Grove HM3301 Laser PM2.5 Dust Sensor for I2C Air Quality Monitoring The Grove HM3301 Laser PM2.5 Dust Sensor measures airborne particulate matter for indoor air-quality projects. It reports PM1.0, PM2.5, and PM10-style dust concentration data and is a strong choice for smart purifier prototypes, HVAC experiments, environmental dashboards, and IoT monitoring nodes. The sensor uses laser light scattering and an internal airflow path for continuous detection. Its Grove connector makes wiring quick with the Seeed Grove Base Shield V2, and the Seeed HM3301 wiki provides additional library and protocol information. Use the sensor in locations with natural airflow and keep the air inlet unobstructed. It measures particles, not gas concentration, so combine it with CO2 or VOC sensors when a full indoor air-quality station is required. Technical Specifications Parameter Value Sensor model HM3301 laser particulate matter sensor Measured channels PM1.0, PM2.5, PM10 concentration data Detection principle Laser light scattering Minimum particle class 0.3 micrometer and larger class detection Interface Grove 4-pin connector / I2C I2C address 0x40 commonly used by HM3301 modules Sampling style Continuous real-time dust concentration detection Airflow method Internal fan / airflow path Compatible controllers Arduino, Seeed Grove systems, ESP32, Raspberry Pi Pico with I2C Typical applications Air purifiers, HVAC monitoring, IoT air-quality nodes Development support Seeed Arduino HM330X library and I2C examples Board Layout & Label Guide Air inlet: Keep clear so the sample air can enter the sensing chamber. Air outlet: Do not block exhaust airflow. Laser sensing chamber: Protect from heavy dust, condensation, and oil mist. Grove connector: Carries VCC, GND, SDA, and SCL. SDA line: I2C data line to the controller. SCL line: I2C clock line to the controller. Mounting direction: Place the module where it samples representative room air. Application Scenarios 1. I2C Connection Check Confirm that the HM3301 sensor answers on the I2C bus before building a full air-quality project. #include const byte HM3301_ADDR = 0x40; void setup() { Serial.begin(115200); Wire.begin(); } void loop() { Wire.beginTransmission(HM3301_ADDR); byte error = Wire.endTransmission(); Serial.println(error == 0 ? "HM3301 detected" : "HM3301 not found"); delay(1000); } 2. Read Raw Particle Frame Read the raw I2C data frame so you can verify communication and integrate a library parser. #include const byte HM3301_ADDR = 0x40; void setup() { Serial.begin(115200); Wire.begin(); } void loop() { Wire.requestFrom(HM3301_ADDR, 29); while (Wire.available()) { byte b = Wire.read(); if (b < 16) Serial.print("0"); Serial.print(b, HEX); Serial.print(" "); } Serial.println(); delay(1000); } 3. Air Quality Alarm Output Use a parsed PM2.5 value from your library and drive an alarm output when the reading is high. const int ALARM_PIN = 8; int pm25 = 0; // Replace with the PM2.5 value returned by your HM3301 library. void setup() { pinMode(ALARM_PIN, OUTPUT); } void loop() { digitalWrite(ALARM_PIN, pm25 > 75 ? HIGH : LOW); delay(1000); } Packing List 1 x Grove Laser PM2.5 Dust Sensor HM3301 FAQ Q: Does it measure CO2 or VOC?A: No. It measures particulate matter, not gas concentration. Q: What does PM2.5 mean?A: PM2.5 refers to fine particulate matter around 2.5 micrometers or smaller. Q: Can it run continuously?A: Yes. It is designed for real-time continuous dust concentration detection. Q: Why do readings change near a fan or window?A: Airflow changes the particle concentration reaching the inlet. Q: Does it need cleaning?A: Keep the inlet clear and protect the chamber from heavy dust, moisture, and oil mist. Q: Can it work with Arduino?A: Yes. Use the Grove connection and an HM3301-compatible I2C library. Q: Is it suitable for outdoor monitoring?A: Only inside a protected enclosure with controlled airflow and moisture protection. Q: Can it trigger an air purifier?A: Yes. Use PM2.5 thresholds in firmware to control a relay or fan system.