ESP-01S 粒子状物質センサーの出版
ユーザーガイド
ESP-01S 粒子状物質センサーの出版
Maker Pi Pico と ESP-01S を使用して粒子状物質センサーのデータを Adafruit IO に公開する
kevinjwalters による
この記事では、CircuitPython プログラムを実行する Cytron Maker Pi Pico を使用し、AT ファームウェアを実行する ESP-01S モジュールを使用してセンサーの出力を Wi-Fi 経由で送信し、XNUMX つの低コストの粒子状物質センサーからのデータを Adafruit IO IoT サービスに公開する方法を説明します。
WHOはPM2.5粒子状物質を健康に対する最大の環境リスクの一つと位置付けており、99年には世界人口の2019%がWHOの大気質ガイドラインのレベルを満たしていない地域に住んでいる。4.2年にはこれによって2016万人が早期に死亡したと推定されている。
この記事で紹介する 3 つの粒子状物質センサーは次のとおりです。
- シリアル接続を使用した Plantower PMS5003。
- i30c を使用する Sensirion SPS2
- パルス出力付きオムロン B5W LD0101。
これらの光学センサーは、ある種の家庭用煙感知器に見られるものと似ていますが、閾値濃度で警報を発するのではなく、さまざまなサイズの粒子をカウントしようとする点が異なります。
赤色レーザーベースの PMS5003 は、趣味でよく使われるセンサーで、PurpleAir PA-II 空気質センサーに搭載されています。SPS30 は、同じ原理を使用するより新しいセンサーで、Clarity Node-S 空気質センサーに搭載されています。赤外線 LED ベースの B5W LD0101 センサーは、より原始的なインターフェースを備えていますが、2.5 ミクロンを超える粒子を検出できるため便利です。他の XNUMX つのセンサーでは、これらの粒子を確実に測定することはできません。
Adafruit IO は、限られた数のフィードとダッシュボードを備えた無料プランを提供しています。このプロジェクトにはこれで十分です。無料プランのデータは 30 日間保持されますが、データは簡単にダウンロードできます。
この記事のMaker Pi PicoボードはampCytron が親切にも評価用に送ってくれました。製品版との唯一の違いは、3 つのボタンのデバウンスを行うパッシブ コンポーネントが追加されていることです。
ESP-01S モジュールは、おそらく AT ファームウェアのアップグレードが必要です。これは比較的複雑で面倒なプロセスであり、時間がかかる可能性があります。Cytron は、適切な AT ファームウェアを搭載したモジュールを販売しています。
残念ながら、Omron B5W LD0101 センサーはメーカーにより製造中止となり、最終注文は 2022 年 XNUMX 月となります。
用品:
- Cytron Maker Pi Pico – Digi-key | PiHut
- ESP-01S – Cytron のボードには適切な ATrmware が付属しています。
- リセットボタン付き ESP-01 USB アダプター/プログラマー – Cytron。
- ブレッドボード。
- メスからオスへのジャンパー線、おそらく最小長さ 20cm (8 インチ)。
- Plantower PMS5003 ケーブルとブレッドボード アダプタ付き – Adafruit
- または Plantower PMS5003 + Pimoroni ブレッドボード アダプタ – Pimoroni + Pimoroni
- センシリオン SPS30 – Digi-key
- Sparkfun SPS30 JST-ZHR ケーブル - 5 オスピン – Digi-key
- 2x 2.2k 抵抗器。
- オムロン B5W LD0101 – マウザー
- オムロンのケーブルはハーネスとして説明されている (2JCIE-HARNESS-05) – Mouser
- 5 ピン オス ヘッダー (ケーブルをブレッドボードに適合させるため)。
- はんだ付け – はんだ付けの代わりにワニ口クリップを使用することもできます。
- 2x 4.7k 抵抗器。
- 3x 10k 抵抗器。
- 0.1uFのコンデンサ。
- Omron B5W LD0101のバッテリー電力:
- 充電式 NiMH 電池用の 4AA 電池ホルダー (より良い選択)。
- またはアルカリ電池用の 3AA 電池ホルダー。
- USB 電源から離れた屋外でランニングをする場合は、USB 電源パックが便利です。
ステップ1: ESP-01Sのフラッシュを更新するためのUSBプログラマー
ESP-01S モジュールには、Cytron 製でない限り、適切な AT ファームウェアが付属していない可能性があります。更新する最も簡単な方法は、書き込み可能でリセット ボタンがある USB アダプターを備えた Windows デスクトップまたはラップトップを使用することです。
残念ながら、非常に一般的なノーブランドのアダプター(「ESP-01プログラマーアダプターUART」などとよく呼ばれる)には、これらを制御するボタンやスイッチがありません。上のビデオでは、これを簡単に改造する方法を示しています。
2 本のオス - メス ジャンパー線を 2 つに切って、プログラマー ボードの下側のピンに半田付けして、即席のスイッチを作りました。ブレッドボードを使用した別のアプローチは、Hackaday で確認できます。
ESP-01 Windows ワークフロー上の ESPHome。
https://www.youtube.com/watch?v=wXXXgaePZX8
ステップ2: Windowsを使用してESP-01Sのファームウェアを更新する
PuTTY などのターミナル プログラムを ESP-01 プログラマーと一緒に使用して、ファームウェアのバージョンを確認できます。ファームウェアは、Hayes コマンド セットにヒントを得たコマンドを使用して、ESP8266 をモデムのように動作させます。AT+GMR AT+GMR コマンドは、ファームウェアのバージョンを表示します。
AT + GMR
ATバージョン:1.1.0.0(11年2016月18日 09:56:XNUMX)
SDKバージョン:1.5.4(baaeaebb)
コンパイル時間:20年2016月15日 08:19:XNUMX
Cytron は、GitHub の CytronTechnologies/esp-at-binaries に、Espressif Flash Download Tool (Windows のみ) を使用してファームウェア更新を適用する方法を説明したガイドを用意しています。Cytron は、ファームウェア バイナリのコピーである Cytron_ESP-01S_AT_Firmware_V2.2.0.bin も提供しています。
アップグレードが成功すると、新しいファームウェアはバージョン2.2.0.0として報告されます。
AT + GMR
AT バージョン:2.2.0.0(b097cdf – ESP8266 – 17 年 2021 月 12 日 57:45:XNUMX)
SDKバージョン:v3.4-22-g967752e2
コンパイル時間(6800286):4年2021月17日 20:05:XNUMX
Binバージョン:2.2.0(Cytron_ESP-01S)
ESP8266 ベースの ESP-01S をプログラミングするための代替手段として、esptool と呼ばれるコマンドライン プログラムが用意されており、Linux または macOS で使用できます。
ESP-01S のファームウェアは、Cytron の simpletest.py を使用して Maker Pi Pico でテストできます。これは、インターネット上のよく知られているサービスに 10 秒ごとに ICMP ping を送信し、ラウンドトリップ時間 (rtt) をミリ秒単位で表示します。これには secrets.py が必要です。 file Wi-Fi SSID (名前) とパスワードを入力します (これについてはこの記事の後半で説明します)。
良い点悪い点
ステップ3: センサーの接続
3つのセンサーを接続し、ボリュームを監視するためにハーフサイズのブレッドボードが使用されました。tag4 つの充電式 NiMH バッテリーから電力を供給します。上記には完全なセットアップの高解像度写真が含まれており、次の手順では各センサーの接続方法について説明します。
ブレッドボード上の電源レールはPi Picoから電力を供給され、
- VBUS(5V)とGNDを左側の電源レールに接続し、
- 3V3とGNDを右側に接続します。
電源レールは、近くに赤い線でマークされています (正のレール用)、青い線は負の (または接地) レール用です。フルサイズ (830 穴) のブレッドボードでは、上部のレール セットが下部のレール セットに接続されていない場合があります。
バッテリーは、安定した電圧を必要とするオムロンB5W LD0101に電力を供給するためにのみ使用されます。tage. コンピューターからの USB 電源はノイズが多いため、適していません。
ステップ4: Plantower PMS5003の接続
Plantower PMS5003は5V電源を必要としますが、シリアル「TTLスタイル」インターフェースは3.3Vでも安全です。
PMS5003 をブレークアウト ボード経由で Pi Pico に接続すると次のようになります。
- 5 行目の 6V レール経由で VCC を 5V (赤) に接続します。
- GND から GND (黒)、行 5 から GND へ。
- 行 1 から GP2 を経由して EN (青) に設定します。
- RX から RX (白) へ、行 3 から GP5 へ。
- TX から TX (灰色) へ、行 4 から GP4 経由。
- 行 2 から GP3 を経由して RESET から RESET (紫) へ。
- NC(接続されていません)
- NC。
データシートには金属ケースに関する警告が記載されています。
金属シェルは GND に接続されているため、GND 以外の回路部分と短絡しないように注意してください。
コンポーネントは、表面を傷から保護するためにケースに青いプラスチックフィルムを貼って出荷されることが多いですが、電気絶縁の点ではこれに頼るべきではありません。
ステップ5: Sensirion SPS30を接続する
Sensirion SPS30 には 5V 電源が必要ですが、i2c インターフェースは 3.3V でも安全です。追加コンポーネントは、i2.2c バスのプルアップとして機能する 2k 抵抗 30 つだけです。SPSXNUMX から Pi Pico への接続は次のとおりです。
- VDD (赤) を 5V5V レールへ
- SDA (白) から GP0 (灰色) へ、行 11 経由で 2.2k 抵抗を介して 3.3V レールへ接続。
- SCL (紫) から GP1 (紫) へ、行 10 経由で 2.2k 抵抗を介して 3.3V レールへ接続。
- SEL(緑)をGNDへ
- GND(黒)をGNDに接続します。
リードのコネクタを SPS30 に正しく挿入するには、しっかりと押す必要がある場合があります。
SPS30 は、Sensirion がデータシートで推奨しているシリアル インターフェイスもサポートしています。
I2C インターフェイスの使用については、いくつか考慮すべき点があります。I2C は、もともと PCB 上の 10 つのチップを接続するために設計されました。センサーをケーブルでメイン PCB に接続する場合は、電磁干渉とクロストークに特に注意する必要があります。できるだけ短い (XNUMX cm 未満) または十分にシールドされた接続ケーブルを使用してください。
可能な場合は、代わりに UART インターフェイスを使用することをお勧めします。これは、特に長い接続ケーブルの場合、電磁干渉に対してより堅牢です。
ケースの金属部分についての警告もあります。
GND ピン (5) と金属シールドの間には内部電気接続があることに注意してください。この内部接続を介した意図しない電流を回避するために、この金属シールドを電気的にフローティングにしてください。これが不可能な場合は、GND ピンとシールドに接続された電位間の適切な外部電位均等化が必須です。GND と金属シールド間の接続を介した電流は、製品を損傷する可能性があり、過熱による安全上のリスクをもたらします。
ステップ6: Omron B5W LD0101の接続
Omron ケーブルはブレッドボードでの使用を意図したものではありません。ブレッドボードでの使用に転換する簡単な方法の 1 つは、ソケットを切断し、ワイヤを剥がして、5 ピンのオス ヘッダー ピンに半田付けすることです。半田付けを回避するための代替方法として、ワニ口クリップを使用することもできます。
Omron B5W LD0101 には 5V の安定した電源が必要です。その 5 つの出力も 3.3V レベルですが、これは Pi Pico の 4.7V 入力とは互換性がありません。センサー ボード上に抵抗器があるため、出力ごとに XNUMXk の抵抗器を接地に追加することで、これを安全な値に簡単に下げることができます。オンボード抵抗器はデータシートに記載されており、これは合理的なアプローチです。
B5W LD0101 から Pi Pico への接続は次のとおりです。
- 行 5 を介して Vcc (赤) から 25V (赤) レールへ。
- OUT1 (黄色) を GP10GP10 (黄色) に、行 24 を介して 4.7k 抵抗を介して GND に接続します。
- GND (黒) から GND (黒) へ、行 23 経由。
- Vth (緑) を GP26GP26 (緑) に、行 22 を介して 0.1uF コンデンサを介して GND に接続します。
- OUT2 (オレンジ) から GP11 (オレンジ) へ、行 21 経由で 4.7k 抵抗を介して GND へ接続します。
の GP12 Pi Pico の (緑) は 17 行目に接続され、10k 抵抗器は 17 行目と 22 行目を接続します。
データシートでは、電源要件について次のように説明されています。
最小4.5V、標準5.0V、最大5.5V、リップル電圧tag30mV以下の範囲が推奨されます。300Hz以下のノイズがないことを確認してください。
許容リップルボリュームtag実際のマシンを使用して値を確認します。
3本のアルカリ電池または4本の充電式(NiMH)電池は、安定した電圧を供給する最も簡単な方法です。tagセンサーに約5Vの電圧を供給します。USB電源パックは、電圧が高すぎるため、あまり適していません。tage は通常、降圧昇圧コンバータを使用したリチウム電池から出力され、ノイズが発生します。
B5W LD0101は対流を利用して空気の流れを作り、正しく動作させるには垂直に設置する必要があります。供給電圧の変更tagヒーターの温度とそれに伴う空気の流れに影響を与える可能性があります。周囲温度も影響を与えるはずです。
ステップ7: 電位分割器によるバッテリー監視
バッテリー容量tageはPi PicoのRP3.3プロセッサの入力の2040Vレベルを超えています。簡単な分圧器でこの電圧を下げることができます。tage がその範囲内にある必要があります。これにより、RP2040 はアナログ対応 (GP26 ~ GP28) 入力でバッテリー レベルを測定できます。
10k抵抗のペアは、ボリュームを半分にするために使用されましたtage. 無駄な電流を最小限に抑えるために、100k のような高い値が使用されるのが一般的です。接続は次のとおりです。
- B5W LD0101 Vcc (赤) ジャンパー ワイヤを 29 行目の左側に接続します。
- 10 行目の左側と右側の間にある 29 行目の 29k 抵抗器。
- Pi Pico GP27 への茶色のジャンパー線。
- 行 10 の右側から近くの GND レールまでの 29k 抵抗。
Maker Pi Pico の GP28 はアナログ入力として使用できますが、RGB ピクセルにも接続されているため、値にわずかな影響が出る可能性があり、入力が WS2812 プロトコルのように見える場合は点灯したり変化したりすることさえあります。
ステップ8: CircuitPythonとセンサーデータ公開プログラムのインストール
CircuitPython に慣れていない場合は、まず「CircuitPython へようこそ」ガイドを読むことをお勧めします。
- バージョン7.xバンドルから次のXNUMXつのライブラリをインストールします。 https://circuitpython.org/libraries CIRCUITPY ドライブの lib ディレクトリに:
- adafruit_bus_device
- 翻訳者
- アダフルーツ
- アダフルーツ_espatコントロール
- 翻訳者
- adafruit_requests.mpy
- ネオピクセル
- これらの2つの追加ライブラリを、 fileディレクトリ内または file:
- adafruit_sps30 から https://github.com/kevinjwalters/Adafruit_CircuitPython_SPS30
- b5wld0101.pyから https://github.com/kevinjwalters/CircuitPython_B5WLD0101
- secrets.pyを作成する file (例を参照amp(下記参照)をクリックして値を入力してください。
- pmsensors_adafruitio.pyの[リンクを名前を付けて保存]をクリックして、プログラムをCIRCUITPYにダウンロードします。
- 既存のcode.pyの名前を変更するか削除する file CIRCUITPYでpmsensors_adafruitio.pyをcode.pyに名前変更します。 file CircuitPython インタープリターが起動または再ロードされるときに実行されます。
# このファイルには秘密の設定、パスワード、トークンが保存されます。
# コードにそれらを入れると、その情報をコミットしたり共有したりするリスクがあります
秘密 = {
“ssid” : “WIFI名をここに挿入”,
「パスワード」: 「ここにWi-Fiパスワードを入力してください」
“aio_username” : “ADAFRUIT-IO-USERNAMEをここに挿入”,
“aio_key” : “ADAFRUIT IO アプリケーション キーをここに挿入”
# http://worldtimeapi.org/timezones
「タイムゾーン」:「アメリカ/ニューヨーク」、
}
このプロジェクトで使用されたバージョンは次のとおりです。
サーキットPython 7.0.0
CircuitPythonライブラリバンドルadafruit-circuitpython-bundle-7.x-mpy-20211029.zip - XNUMX月/XNUMX月の以前のバージョンはadafruit_espatcontrolとして使用しないでください。
ライブラリにはバグがあり、半分はわかりにくい方法で動作します。
ステップ9: Adafruit IOのセットアップ
Adafruit には Adafruit IO サービスに関するガイドが多数ありますが、最も関連性の高いものは次のとおりです。
Adafruit IOへようこそ
Adafruit IO の基本: フィード
Adafruit IO の基本: ダッシュボード
フィードとダッシュボードに慣れたら、次の手順に従ってください。
- Adafruit アカウントをお持ちでない場合は作成してください。
- フィードの下にmpp-pmという新しいグループを作成します
- 「+ 新しいフィード」ボタンをクリックして、この新しいグループに 9 つのフィードを作成します。名前は次のとおりです。
- b5wld0101-生アウト1
- b5wld0101-生アウト2
- b5wld0101-vcc
- b5wld0101-vth
- CPU温度
- pms5003-pm10-標準
- pms5003-pm25-標準
- sps30-pm10-標準
- sps30-pm25-標準
- これらの値のダッシュボードを作成します。推奨されるブロックは次のとおりです。
- 3 つの折れ線グラフ ブロック (各センサーに 1 つずつ、グラフごとに 2 つの折れ線)。
- 2つのボリューム用の3つのゲージブロックtagesと温度。
ステップ10: データ公開の検証
Proのモニターページ file ライブデータを見ることで、データがリアルタイムで到着していることを確認するのに役立ちます。 file セクション。プログラムは、データを Adafruit IO に送信するときに RGB ピクセルを 2 ~ 3 秒間青に変え、その後緑に戻ります。
RP2040 からの温度は CPU によって大きく異なるようで、周囲温度と一致する可能性は低いです。
それでも問題が解決しない場合は、次の点を確認してください。
- RGBピクセルが消えない、またはデータがAdafruit IOで受信されない場合は、USBシリアルコンソールの出力/エラーを確認してください。シリアルコンソールのMuの数値出力は、センサーが動作しているかどうかを示し、2〜3秒ごとに新しい行が印刷されます。例については以下を参照してください。ampル出力。
- モニター ページのライブ エラー セクションで、データが送信されているが表示されていないかどうかを確認することをお勧めします。
- プログラム内のデバッグ変数を 0 から 5 に設定して、デバッグ情報の量を制御できます。レベルを上げると、Mu のタプル印刷が無効になります。
- simpletest.py プログラムは、Wi-Fi 接続が確立され、ICMP トラフィックに対してインターネットへの接続が機能していることを証明する便利な方法です。
- adafruit_espatcontrol ライブラリの最新バージョンを使用していることを確認してください。
- Maker Pi Picoの各GPIOの青色LEDは、瞬時に視覚的に確認するのに非常に便利です。view GPIO の状態。接続されている GPIO はすべてオンになりますが、次の例外があります。
- GP26は平滑化されたボリュームのためオフになりますtage (約500mV) は低すぎます。
- GP12 は、デューティ サイクルが約 15% の PWM 信号であるため暗くなります。
- GP5 はオンになりますが、PMS5003 からデータが送信されると点滅します。
- GP10 はオフになりますが、B5W LD0101 によって小さな粒子が検出されると点滅します。
- GP11 はオフになりますが、非常に煙の多い場所でない限り、まれにちらつきます。
Mu のプロッタ向けの出力は、部屋の中では次のようになります。
(1)
(1)
(1)
(1)
(1)
(1)
または、空気がきれいな部屋:
(1)
(1)
(1)
(1)
(1)
(1)
1 行あたりの 6 つの値は、次のようになります。
- PMS5003 PM1.0 および PM2.5 (整数値);
- SPS30 PM1.0 および PM2.5;
- B5W LD0101 の生の OUT1 と OUT2 のカウント。
ステップ11: MuとAdafruit IOを使用して内部センサーをテストする
上のビデオは、線香に火をつけるために擦ったマッチにセンサーが反応する様子を示しています。PMS2.5 と SPS5003 の PM30 ピーク値は、それぞれ 51 と 21.5605 です。B5W LD0101 は光学系が露出しており、残念ながらこのビデオで使用されているタングステン ハロゲン照明の影響を受けています。以前のテスト実行により、空気中の粒子レベルが上昇しています。
使用していないときは必ずバッテリー パックを外してください。そうしないと、B5W LD0101 のヒーターによってバッテリーが消耗します。
https://www.youtube.com/watch?v=lg5e6KOiMnA
ステップ12:ガイ・フォークスの夜の屋外の粒子状物質
ガイ・フォークスの夜は焚き火や花火と関連しており、7~5晩の大気汚染の増加につながる可能性があります。上のグラフは、2021年XNUMX月XNUMX日金曜日の午後XNUMX時過ぎに屋外に設置されたXNUMXつのセンサーを示しています。すぐ近くで花火は行われていませんが、遠くで花火の音が聞こえました。注: XNUMXつのグラフ間では、フライスケールが異なります。
Adafruit IO に保存されているフィード データは、空気を検出するセンサーが SPS2.5 の数値に基づいてすでに PM30 レベルがわずかに上昇していることを示しています。
2021/11/05 7:08:24PM 13.0941
2021/11/05 7:07:56PM 13.5417
2021/11/05 7:07:28PM 3.28779
2021/11/05 7:06:40PM 1.85779
ピークは午後46時直前に11立方メートルあたり約XNUMXugでした。
2021/11/05 10:55:49PM 46.1837
2021/11/05 10:55:21PM 45.8853
2021/11/05 10:54:53PM 46.0842
2021/11/05 10:54:26PM 44.8476
センサーが屋外にあったとき、データの他の部分に短いスパイクがあります。これは、次のものからの風の影響である可能性があります。
- ガスセントラルヒーティングからの排気、
- 近くで喫煙している人や
- 調理時の臭い/煙。
電子機器を屋外に置く前に天気を確認してください。
ステップ13:調理中に内部の粒子状物質を除去する
上のグラフは、近くのキッチンで中程度の抽出でベーコンとマッシュルームを揚げたときのセンサーの反応を示しています。センサーはコンロから約 5 メートル (16 フィート) 離れたところにあります。 注記: y スケールは 3 つのグラフ間で異なります。
Adafruit IO に保存されているフィード データは、SPS2.5 の数値に基づいて、93 立方メートルあたり約 30ug の PMXNUMX レベルの短時間ピークを示すセンサーを示しています。
2021/11/07 8:33:52PM 79.6601
2021/11/07 8:33:24PM 87.386
2021/11/07 8:32:58PM 93.3676
2021/11/07 8:32:31PM 86.294
汚染物質はリワークからのものとは大きく異なります。これは興味深い例ですamp私たちが呼吸する空気中には、さまざまな粒子状物質の発生源があります。
ステップ14: 公共の粒子状物質センサー
上にグラフ化されたデータは、近くの公共センサーから取得したものです。
- ロンドンの息吹
- クラリティムーブメントノード-S
- テラビット
- オス
- rl
- クラリティムーブメントノード-S
- オープンAQ
- パープルエア PA-II
- sr
- パープルエア PA-II
- ロンドン大気質ネットワーク
- 参照品質(Met One BAM 1020など)
- FS
- AS
- 読むべき記事
- 参照品質(Met One BAM 1020など)
tbps センサーと TBR センサーはほぼ同じ場所に設置されており、SPS30 ベースのデバイスと近くの参照デバイスとの相関関係を示すために一緒にグラフ化されています。SPS30 は 5 月 6 日と XNUMX 日の夜に大幅に測定値が不足しているように見えますが、夕方の増加は作業のやり直しによるものと想定するのが妥当です。これは粒子の質量の違いによるものと考えられます。この記事で使用されているセンサーは体積しか検出できず、立方メートルあたりのマイクログラム値を生成するには粒子の密度を推測する必要があるためです。
PurpleAir PA-II の PMS5003 は、この短期間で PM2.5 レベルの上昇を著しく過大評価しているように見えます。これは、前のページに示した結果と一致する可能性がありますが、近くにこれを引き起こす他の要因がある可能性もあります。
SPS30 と PMS5003 は 2.5 ミクロンより大きい粒子のデータを生成しますが、次のページでは、なぜこれを慎重に扱う必要があるのかを説明します。
ステップ15: センサーの比較 – 粒子サイズ
上記のグラフは、フィンランド気象研究所による低コストの光学式粒子状物質センサーの粒子サイズ選択性に関する実験室評価からのものです。各種類のセンサー 30 つが、対数 x 軸に示された異なる粒子サイズでテストされました。色付きの線は、センサー出力に基づく特定の粒子サイズ バンドの計算値を示し、帯は分布を示しています。1 ミクロンを超える XNUMX つの SPSXNUMX 値は大きく重なり合っており、区別が非常に困難です。
粒子の一般的な測定基準は PM2.5 と PM10 です。名前の数字は粒子の最大サイズを表しますが、単位は立方メートルあたりのマイクログラムです。安価なセンサーは粒子の直径 (体積) しか測定できず、密度について推測して PM2.5 と PM10 の推定値を計算するしかありません。
PMS5003 は一定の密度値を使用しますが、Sensirion は SPS30 の密度アプローチを次のように説明しています。
市販されているほとんどの低価格 PM センサーは、校正時に質量密度が一定であると想定し、検出された粒子数にこの質量密度を掛けて質量濃度を計算します。この想定は、センサーが単一の粒子タイプ (たとえば、タバコの煙) を測定する場合にのみ機能しますが、実際には日常生活の中で、「重い」ハウスダストから「軽い」燃焼粒子まで、さまざまな光学特性を持つさまざまな粒子タイプが見つかります。Sensirion の独自のアルゴリズムは、測定される粒子タイプに関係なく、質量濃度を適切に推定できる高度なアプローチを使用します。さらに、このようなアプローチにより、サイズ ビンを正しく推定できます。
PMメトリクスは、サイズパラメータ以下のすべての粒子を網羅する。
PM1 + 1.0~2.5ミクロンの全粒子の質量 = PM2.5、
PM2.5 + 2.5〜10ミクロンのすべての粒子の質量 = PM10。
PMS5003 と SPS30 は、この実験室テストで 2 ~ 3 ミクロンを超える粒子を検出できません。このサイズを超える他の種類の粒子を検出する可能性はあります。
B5W LD0101 は、PM10 を測定するためのこの実験室テストから信頼性が高いように見えます。
ステップ16: センサーの比較 - 設計
センサーを逆さまにすると、オムロンのヒーター (100 オーム +/- 2% の抵抗器!) が見えます。設計については、オムロン: 空気清浄機用空気品質センサーの開発 で詳しく説明されています。対流の使用は粗雑に思えますが、寿命が短く、ほこりの多い環境で動作することで寿命が短くなる可能性のあるファンなどの機械部品と比較すると、信頼性の高いソリューションになる可能性があります。SPS30 ファンは、ケースを開けずに簡単に交換できるように設計されているようです。他の Plantower モデルにも同じ設計機能があります。
これら 3 つのセンサーはすべて、相対湿度が高い影響を受けやすく、残念ながら PM 値が誤って増加してしまいます。
粒子状物質を監視する認定された基準品質のセンサー(英国のDEFRAリスト)は、測定に光学的アプローチを使用していません。Met One BAM 1020は、
- 空気中の粒子の大きさの制限値より大きい粒子を分離して廃棄する。ampル、
- 相対湿度を制御/低下させるために空気を加熱する、
- 連続ブラウステープの新しいセクションに粒子を堆積させ、
- 次に、テープ上に蓄積された粒子によるベータ線源の減衰を測定し、粒子の総質量の正確な推定値を計算します。
もう一つの一般的な技術は、テーパード エレメント振動マイクロバランス (TEOM) です。これは、もう一方の端が固定されたテーパード チューブの自由端にある交換可能なフィルターに粒子を堆積させます。自然共振チューブの振動周波数を正確に測定することで、周波数のわずかな変化から粒子の追加の微小質量を計算できます。このアプローチは、より高いレートの PM 値を作成するのに適しています。
ステップ17: さらに進む
センサーをセットアップし、データを Adafruit IO に公開したら、次のような他のアイデアを検討してみてください。
- 活動と換気に注意しながら、時間の経過とともに家の各部屋をテストします。料理をしているときに家をテストします。バーベキューをテストします。
- Maker Pi Pico の 20 つのボタンを使用します。これらは、ボタンを使用できるように意図的に未使用のままになっている GP21、GP22、GPXNUMX に接続されています。
- 公共の大気質監視ステーションの近くに住んでいる場合は、自分のデータをそのデータと比較してください。
- センサー値を表示するディスプレイを追加します。SSD1306 は小型で、手頃な価格で、CircuitPython で簡単に追加/使用できます。Instructables: 土壌水分センサーを参照してください。
- Maker Pi Picoを使ってamp使用方法の説明。
- MQTT ライブラリを調べて、すべてのセンサー データを 1 つのバッチで送信できるかどうかを確認します。これにより、より効率的になります。
- スタンドアロンの IKEA Vindriktning 空気質センサーと何らかの方法で統合します。
- Soren Beye による Ikea VINDRIKTNING の MQTT 接続では、ESP8266 をセンサーに追加し、粒子状物質 (ダスト) センサーを「Cubic PM1006 のような」ものとして識別する方法が示されています。
- 高度なプロジェクトとしては、メイン PCB を、追加のデジタル環境センサーを備えた ESP32-S2 ベースのボードに置き換えて、Wi-Fi 対応の CircuitPython ベースのデバイスを作成することが挙げられます。
- このデバイスについては、Home Assistant フォーラムの IKEA 空気品質センサーで議論されています。
- LaskaKit は、ESPHome で簡単に使用できるように、センサー用の ESP32 ベースの交換用 PCB を製造しています。
- 供給量の変化による影響を研究するtagセンサーの許容範囲内で行ってください。これにより、ファン速度やヒーター温度が変化し、結果に影響する可能性があります。
- 空気の入口、出口、センサーを通過する空気の流れを慎重に設計して、天候や野生動物に耐える筐体を構築します。週末にこの記事のデータ収集のために、露出した電子機器を保護するために、手すりにテープで貼り付けた傘を使用しました。
関連プロジェクト:
- Costas Vav: ポータブル空気質センサー
- Pimoroni: Enviro+とLuftdatenを備えた屋外空気品質ステーション
- Instructables: Pimoroni Enviro+ FeatherWingをAdafruit Feather NRF52840 Expressと併用する –
- Enviro+ FeatherWing には PMS5003 用のコネクタが含まれています。SPS30 は i2c ピンで使用でき、B5W LD0101 を使用するのに十分なピンもあります。
- nRF52840 は Wi-Fi をサポートしていないため、これだけではインターネット経由でデータを公開することはできません。
- Adafruit Learn: 空気質センサー 3D プリント エンクロージャ。 – ESP4 ベースの Airlift FeatherWing および PMS32 を搭載した Adafruit Feather M5003 を使用します。
- Adafruit Learn: クイックスタート IoT - WiFi 搭載 Raspberry Pi Pico RP2040 - では、ESP32 ベースの Adafruit AirLift ブレークアウト ボードを使用します。
- GitHub: CytronTechnologies/MAKER-PI-PICO Example Code/CircuitPython/IoT – 例ampAdafruit IO、Blynk、Thinkspeak 用のコード。
- Cytron: 携帯電話を使った空気モニタリング – ESP8266ベースのArduinoシールドを使用して、
- Honeywell HPM32322550 粒子状物質センサーを Blynk に接続します。スマートフォンは必要ありません。
中間センサー。より高価ですが、より大きな粒子サイズを検出する能力に優れています。
- ピエラシステムズ IPS-7100
- Alphasense OPC-N3 および OPC-R2
さらに読む:
- センサー
- フィンランド気象研究所: 低コストの光学式粒子状物質センサーの粒子サイズ選択性の実験室評価 (2020 年 XNUMX 月)
- ゴフ・ルイ:レview、分解:Plantower PMS5003 レーザー微粒子モニターセンサーには、Sensirion SPS30 との比較が含まれています。
- Karl Koerner: PMS 5003 空気センサーの開け方と掃除方法
- Met One Instruments, Inc.、BAM-1020 EPA TSA トレーニング ビデオ (YouTube) – 内部の内容と動作の仕組みを説明しています。
- CITRIS Research Exchange: Sean Wihera (Clarity Movement) の講演 (YouTube) – Sensirion SPS30 を使用する Node-S センサーの詳細を含む講演。
- 空気の質に関わる法律と組織
- 2010 年大気質基準規制 (英国)
- 世界保健機関(WHO)大気汚染ガイドライン
- 英国肺財団 – 空気の質 (PM2.5 および NO2)
- 研究
- インペリアル・カレッジ・ロンドン:屋内外の大気汚染の連続性(YouTube)
- 2019年にロンドンでバックパックを使って空気の質のデータを収集する小学生たち:
- ダイソン:通学時の汚染を追跡。Breathe London(YouTube)
- キングス・カレッジ・ロンドン:環境研究グループ:Breathe London ウェアラブル調査
- 大気ジャーナル: 住宅用ストーブによる室内空気汚染: 実際の使用中に住宅内に流入する粒子状物質の調査
- ニュースとブログ
- エコノミスト:真夜中の空 – ポーランドの石炭火力住宅暖房が広範囲にわたる汚染を引き起こす(2021年XNUMX月)
- 米国NPR:屋内に避難しても野火の煙の危険から身を守れない?
- ロイター:パーティーは終了:ディワリ祭でデリーは危険なほど不健康な空気に喘ぎながら去る
- Pimoroni ブログ: 一年で最も汚染された夜 (英国)
- クラリティ運動:山火事の煙、公衆衛生、環境正義:より良い
- 空気モニタリングによる意思決定 (YouTube) – 特に 2020 年の山火事の煙に関する米国西部の空気の質に関するプレゼンテーションとディスカッション。
- ガーディアン:データによると、汚れた空気は英国の住宅の97%に影響を与えている
- 粒子状物質のモニタリングとデータウェアハウス
- オランダ国立公衆衛生環境研究所(Rijksinstituut voor Volksgezondheid en Milieu):花火実験(2018-2019)
- Google: 街路ごとに: ヨーロッパの空気の質をマッピングする方法 – 街路 view 車は粒子状物質と汚染ガスのデータを収集します。ロンドン大気質ネットワーク
- Breathe London は、ロンドン空気質ネットワークを「誰でも手頃な価格で簡単に設置、維持できる空気質センサー」で補完するネットワークで、現在は Clarity Movement Node-S を使用しています。
- 北京の米国大使館の粒子状物質モニタリング(Twitter)
- 世界大気質指数 – さまざまな情報源からデータを収集し、地図で表示します viewおよび履歴データ。
- Sensor.Community (旧称 Luftdaten) – 「コミュニティ主導のオープンな環境データを通じて世界をより良い場所にする」。
- ソフトウェア ライブラリ
- 粒子状物質センサー ライブラリのソフトウェア バグ - adafruit_pm25 は、シリアル (UART) の read() に関する例外処理を必要とする、説明されている問題の少なくとも XNUMX つに悩まされています。
- コース
- HarvardX: 粒子状物質による大気汚染 (YouTube) – 短期コース EdX: 環境制約内でのエネルギーからの 5 分間のビデオ
安全上重要な検出とアラームは、信頼できるサプライヤーの市販機器に任せるのが最善です。
https://www.youtube.com/watch?v=A5R8osNXGyo
Maker Pi Pico と ESP-01S を使用して粒子状物質センサーのデータを Adafruit IO に公開する:
ドキュメント / リソース
![]() |
instructables ESP-01S 公開粒子状物質センサー [pdf] ユーザーガイド ESP-01S 出版用粒子状物質センサー、ESP-01S、出版用粒子状物質センサー、粒子状物質センサー、物質センサー |