Simple test

Ensure your device works with this simple test.

examples/pm25_simpletest.py
 1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
 2# SPDX-License-Identifier: MIT
 3
 4"""
 5Example sketch to connect to PM2.5 sensor with either I2C or UART.
 6"""
 7
 8import time
 9
10import board
11import busio
12from digitalio import DigitalInOut, Direction, Pull
13
14from adafruit_pm25.i2c import PM25_I2C
15
16reset_pin = None
17# If you have a GPIO, its not a bad idea to connect it to the RESET pin
18# reset_pin = DigitalInOut(board.G0)
19# reset_pin.direction = Direction.OUTPUT
20# reset_pin.value = False
21
22
23# For use with a computer running Windows:
24# import serial
25# uart = serial.Serial("COM30", baudrate=9600, timeout=1)
26
27# For use with microcontroller board:
28# (Connect the sensor TX pin to the board/computer RX pin)
29# uart = busio.UART(board.TX, board.RX, baudrate=9600)
30
31# For use with Raspberry Pi/Linux:
32# import serial
33# uart = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=0.25)
34
35# For use with USB-to-serial cable:
36# import serial
37# uart = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=0.25)
38
39# Connect to a PM2.5 sensor over UART
40# from adafruit_pm25.uart import PM25_UART
41# pm25 = PM25_UART(uart, reset_pin)
42
43# Create library object, use 'slow' 100KHz frequency!
44i2c = busio.I2C(board.SCL, board.SDA, frequency=100000)
45# Connect to a PM2.5 sensor over I2C
46pm25 = PM25_I2C(i2c, reset_pin)
47
48print("Found PM2.5 sensor, reading data...")
49
50while True:
51    time.sleep(1)
52
53    try:
54        aqdata = pm25.read()
55        # print(aqdata)
56    except RuntimeError:
57        print("Unable to read from sensor, retrying...")
58        continue
59
60    print()
61    print("Concentration Units (standard)")
62    print("---------------------------------------")
63    print(
64        f"PM 1.0: {aqdata['pm10 standard']}\t"
65        + f"PM2.5: {aqdata['pm25 standard']}\t"
66        + f"PM10: {aqdata['pm100 standard']}"
67    )
68    print("Concentration Units (environmental)")
69    print("---------------------------------------")
70    print(
71        f"PM 1.0: {aqdata['pm10 env']}\t"
72        + f"PM2.5: {aqdata['pm25 env']}\t"
73        + f"PM10: {aqdata['pm100 env']}"
74    )
75    print("---------------------------------------")
76    print("Particles > 0.3um / 0.1L air:", aqdata["particles 03um"])
77    print("Particles > 0.5um / 0.1L air:", aqdata["particles 05um"])
78    print("Particles > 1.0um / 0.1L air:", aqdata["particles 10um"])
79    print("Particles > 2.5um / 0.1L air:", aqdata["particles 25um"])
80    print("Particles > 5.0um / 0.1L air:", aqdata["particles 50um"])
81    print("Particles > 10 um / 0.1L air:", aqdata["particles 100um"])
82    print("---------------------------------------")