Dust / particle monitor ・ 粉尘监测
PMSA003センサーでPM2.5・PM10の粒子状物質をI2Cバスで測定します。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| PM2.5 Air Quality Kit-SHT30 | PM2.5 Air Quality Kit (PMSA003 + SHT30) | grove_i2c, usb_c, mbus | official page — $65 |
M5Stack Core2とPM2.5 Air Quality Kit-SHT30で作る、粒子状物質(PM2.5、PM10)モニターです。PMSA003センサーが空気中の微粒子を測定し、Core2の画面に数値を表示します。I2C接続で簡単にセットアップでき、室内の空気品質を手軽にチェックできます。
# M5Stack Core2 + PM2.5 Air Quality Kit (PMSA003)
# Wiring: PM2.5 Kit -> Core2 red Port.A (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd
# I2C on Port.A: scl=22, sda=21
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
# PMSA003 I2C address is 0x12
PMSA003_ADDR = 0x12
def read_pmsa003():
# Request 32 bytes from sensor
data = i2c.readfrom(PMSA003_ADDR, 32)
if len(data) < 32:
return None, None
# Check start bytes 0x42, 0x4d
if data[0] != 0x42 or data[1] != 0x4d:
return None, None
# PM2.5 (CF=1) is bytes 6-7, PM10 (CF=1) is bytes 8-9
pm25 = (data[6] << 8) | data[7]
pm10 = (data[8] << 8) | data[9]
return pm25, pm10
while True:
pm25, pm10 = read_pmsa003()
lcd.clear()
if pm25 is None:
lcd.print('Sensor error', 10, 20)
else:
lcd.print('PM2.5: %d ug/m3' % pm25, 10, 20)
lcd.print('PM10: %d ug/m3' % pm10, 10, 60)
time.sleep(2)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。