Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use PMS5003 Board: Examples, Pinouts, and Specs

Image of PMS5003 Board
Cirkit Designer LogoDesign with PMS5003 Board in Cirkit Designer

Introduction

The PMS5003 Board is a compact and highly accurate air quality sensor designed to measure particulate matter (PM1.0, PM2.5, and PM10) concentrations in the air. It employs advanced laser scattering technology to detect and quantify airborne particles, making it an essential tool for environmental monitoring, air purifiers, HVAC systems, and indoor air quality assessments.

This sensor is widely used in applications such as:

  • Smart home air quality monitoring systems
  • Industrial and environmental pollution monitoring
  • Air purifiers and HVAC systems
  • Research and development in air quality studies

Explore Projects Built with PMS5003 Board

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Based PM2.5 Air Quality Monitoring System
Image of Plantower PMS7003 Dust sensor: A project utilizing PMS5003 Board in a practical application
This circuit connects a PM2.5 Air Quality Sensor (PMS5003) to an Arduino UNO for air quality monitoring. The sensor's VCC and GND pins are powered by the Arduino's 5V and GND pins, respectively. The sensor's RX and TX pins are connected to the Arduino's digital pins D8 and D9 for serial communication, allowing the Arduino to read and process the air quality data from the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Raspberry Pi Pico GPS Tracker with Sensor Integration
Image of Copy of CanSet v1: A project utilizing PMS5003 Board in a practical application
This circuit is a data acquisition and communication system powered by a LiPoly battery and managed by a Raspberry Pi Pico. It includes sensors (BMP280, MPU9250) for environmental data, a GPS module for location tracking, an SD card for data storage, and a WLR089-CanSAT for wireless communication. The TP4056 module handles battery charging, and a toggle switch controls power distribution.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered ESP32 Air Quality and Temperature Monitoring System
Image of Sensor: A project utilizing PMS5003 Board in a practical application
This circuit uses an ESP32 microcontroller to monitor environmental conditions by interfacing with a DHT11 temperature and humidity sensor and a PMS5003 PM2.5 air quality sensor. The ESP32 is powered by a 7.4V power source and provides the necessary power to the sensors while receiving data from them for processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Based Air Quality Monitoring System with Bluetooth Connectivity
Image of Air quality part 2: A project utilizing PMS5003 Board in a practical application
This circuit is an air quality monitoring system that uses an Arduino UNO to collect data from a PM2.5 air quality sensor (PMS5003) and an ozone sensor (MQ131). The collected data is then transmitted via an HC-05 Bluetooth module for remote monitoring, with a rocker switch used to control the power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with PMS5003 Board

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Plantower PMS7003 Dust sensor: A project utilizing PMS5003 Board in a practical application
Arduino UNO Based PM2.5 Air Quality Monitoring System
This circuit connects a PM2.5 Air Quality Sensor (PMS5003) to an Arduino UNO for air quality monitoring. The sensor's VCC and GND pins are powered by the Arduino's 5V and GND pins, respectively. The sensor's RX and TX pins are connected to the Arduino's digital pins D8 and D9 for serial communication, allowing the Arduino to read and process the air quality data from the sensor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Copy of CanSet v1: A project utilizing PMS5003 Board in a practical application
Battery-Powered Raspberry Pi Pico GPS Tracker with Sensor Integration
This circuit is a data acquisition and communication system powered by a LiPoly battery and managed by a Raspberry Pi Pico. It includes sensors (BMP280, MPU9250) for environmental data, a GPS module for location tracking, an SD card for data storage, and a WLR089-CanSAT for wireless communication. The TP4056 module handles battery charging, and a toggle switch controls power distribution.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Sensor: A project utilizing PMS5003 Board in a practical application
Battery-Powered ESP32 Air Quality and Temperature Monitoring System
This circuit uses an ESP32 microcontroller to monitor environmental conditions by interfacing with a DHT11 temperature and humidity sensor and a PMS5003 PM2.5 air quality sensor. The ESP32 is powered by a 7.4V power source and provides the necessary power to the sensors while receiving data from them for processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Air quality part 2: A project utilizing PMS5003 Board in a practical application
Arduino-Based Air Quality Monitoring System with Bluetooth Connectivity
This circuit is an air quality monitoring system that uses an Arduino UNO to collect data from a PM2.5 air quality sensor (PMS5003) and an ozone sensor (MQ131). The collected data is then transmitted via an HC-05 Bluetooth module for remote monitoring, with a rocker switch used to control the power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

The PMS5003 Board is designed for precision and reliability. Below are its key technical details:

General Specifications

Parameter Value
Operating Voltage 4.5V to 5.5V
Operating Current ≤ 100mA
Particle Size Detection 0.3µm to 10µm
Measurement Range 0 to 1,000 µg/m³
Output Interface UART (3.3V logic level)
Response Time ≤ 1 second
Operating Temperature -10°C to 60°C
Operating Humidity 0% to 99% RH (non-condensing)
Dimensions 50mm x 38mm x 21mm

Pin Configuration

The PMS5003 Board has a 7-pin connector for interfacing. Below is the pinout description:

Pin Number Pin Name Description
1 VCC Power supply input (4.5V to 5.5V)
2 GND Ground
3 SET Standby control pin (active low)
4 RX UART receive pin (3.3V logic level)
5 TX UART transmit pin (3.3V logic level)
6 RESET Reset pin (active low)
7 NC Not connected

Usage Instructions

Connecting the PMS5003 to a Circuit

  1. Power Supply: Connect the VCC pin to a 5V power source and the GND pin to ground.
  2. UART Communication: Connect the TX pin of the PMS5003 to the RX pin of your microcontroller (e.g., Arduino UNO) and the RX pin of the PMS5003 to the TX pin of the microcontroller.
  3. Standby Mode: The SET pin can be used to put the sensor into standby mode by pulling it low. Leave it unconnected or pull it high for normal operation.
  4. Reset: The RESET pin can be used to reset the sensor by pulling it low momentarily.

Important Considerations

  • Placement: Ensure the sensor is placed in an area with good airflow for accurate readings. Avoid placing it near sources of vibration or strong airflow, as this may affect measurements.
  • Warm-Up Time: Allow the sensor to warm up for at least 30 seconds after powering it on to ensure stable readings.
  • UART Logic Level: The PMS5003 operates at 3.3V logic levels. If using a 5V microcontroller, use a level shifter to avoid damaging the sensor.

Example Code for Arduino UNO

Below is an example of how to interface the PMS5003 with an Arduino UNO to read PM2.5 data:

#include <SoftwareSerial.h>

// Define the PMS5003 TX and RX pins connected to Arduino
SoftwareSerial pmsSerial(10, 11); // RX, TX

// Buffer to store incoming data from the PMS5003
uint8_t pmsData[32];

void setup() {
  Serial.begin(9600);          // Initialize serial monitor
  pmsSerial.begin(9600);       // Initialize PMS5003 UART communication
  Serial.println("PMS5003 Sensor Initialized");
}

void loop() {
  if (pmsSerial.available() >= 32) { // Check if 32 bytes of data are available
    for (int i = 0; i < 32; i++) {
      pmsData[i] = pmsSerial.read(); // Read data into buffer
    }

    // Verify data header
    if (pmsData[0] == 0x42 && pmsData[1] == 0x4D) {
      // Extract PM2.5 concentration (bytes 12 and 13)
      uint16_t pm25 = (pmsData[12] << 8) | pmsData[13];
      Serial.print("PM2.5 Concentration: ");
      Serial.print(pm25);
      Serial.println(" µg/m³");
    }
  }
}

Notes:

  • Connect the PMS5003 TX pin to Arduino pin 10 and RX pin to Arduino pin 11.
  • Use a level shifter if your Arduino operates at 5V logic levels.

Troubleshooting and FAQs

Common Issues

  1. No Data Output:

    • Ensure the sensor is properly powered (check VCC and GND connections).
    • Verify the UART connections (TX and RX pins) and ensure they are not swapped.
    • Check the baud rate (default is 9600 bps).
  2. Inaccurate Readings:

    • Ensure the sensor is placed in a stable environment with good airflow.
    • Avoid exposing the sensor to high humidity or condensation.
  3. Sensor Not Responding:

    • Check if the SET pin is pulled low (standby mode). Pull it high or leave it unconnected for normal operation.
    • Reset the sensor using the RESET pin.

FAQs

Q: Can the PMS5003 detect gases like CO2 or VOCs?
A: No, the PMS5003 is designed to measure particulate matter (PM1.0, PM2.5, and PM10) and cannot detect gases.

Q: How often should the sensor be calibrated?
A: The PMS5003 is factory-calibrated and does not require user calibration. However, periodic cleaning of the air inlet and outlet may help maintain accuracy.

Q: Can I use the PMS5003 with a 5V microcontroller?
A: Yes, but you must use a level shifter for the UART communication pins (TX and RX) to avoid damaging the sensor.

Q: What is the lifespan of the PMS5003?
A: The sensor has an estimated lifespan of 3 years under normal operating conditions.