Customer:
I purchased the PMS7003 sensor and cannot get it to work. The fan spins but it outputs no data despite multiple attempts.
Originally submitted via email support on 10 May 2025. Migrated to the forum for community visibility.
Customer:
I purchased the PMS7003 sensor and cannot get it to work. The fan spins but it outputs no data despite multiple attempts.
Originally submitted via email support on 10 May 2025. Migrated to the forum for community visibility.
Soldered Support:
Did you try using a logic level converter? Can you share your connection diagram? Are you getting any data from the sensor at all?
Customer:
I tried the logic level converter but it didn’t help. With the software serial example, it writes the first four characters and then outputs squares instead of data. With the hardware serial example, I get “sensor read timeout”.
Customer:
My connection: VCC and GND from the sensor adapter go to 5V and GND on the ESP32. The sensor RX pin connects to HV1 of the logic level converter, and LV1 connects to the ESP32 TX pin. The sensor TX pin connects to HV2 of the logic level converter, and LV2 connects to the ESP32 RX pin. I also tried swapping the LV and HV pins but it made no difference.
Soldered Support:
Check the schematic from a previous working project using PMS7003 on ESP32 – focus on the ESP32, level converter, and PMS adapter connections; you can ignore the SD card reader, other sensors, and LCD.
PMS_RX_PIN is IO25 on Dasduino CONNECTPLUS, TX pin is IO33. These pins work better with SoftwareSerial.
The code structure:
PMS7003 pms(PMS_RX_PIN, PMS_TX_PIN);
Measurements are read like this:
pms.read();
pmsPM01 = pms.pm01;
pmsPM25 = pms.pm25;
pmsPM10 = pms.pm10;
The library used for this project is available. If you’ve checked these details and it still doesn’t work, let me know.
Attachment omitted in migration: image.png
Attachment omitted in migration: Soldered-PMS7003-Particle-Sensor-Arduino-Library.zip