ほこりセンサーとESP32を使ってダスト取得;(DSM501A)
こんにちは!
日常生活において、いまどのくらいほこりがあるのか気になることはありませんか?
今回はそんなお悩みを解決してくれるセンサーを紹介したいと思います!
入手しずらいが、簡単に扱えるセンサーなので、初心者の方でも簡単に作れます!
一部はんだ付けが必要ですが、難しく無いので是非、チャレンジしてみましょう♪
※一部部品にはんだ付けが必要になります。
Arduinoで試したい方はこちら↓
①「使う部品」
・ほこりセンサー(DSM501A)
現在はAmazonにも楽天にも秋月にも販売してなく電子工作ステーションなどで入手可能‼
電子工作ステーション 1450円(送料無料)
・ESP-WROOM-32
電子工作ステーション 1100円(送料無料)(30pinモデル)
秋月電子 1230円+送料(38Pinモデル)
※楽天にて横幅を細くしたバージョンが登場‼
pin番を無くした代わりに細くなっているので、ブレットボードで使いやすくなりました‼
6極ブレットボードではなく定番のブレットボードで使えるようになるのでススメです⇩⇩⇩
・ジャンパーワイヤー(オス・オス)
電子工作ステーション 1セット(10本)100円+送料(500円以上で無料)
・通信用マイクロUSBケーブルタイプB (家に無ければ)
電子工作ステーション 990円
ESP-WROOM-32とパソコンを繋ぐためのケーブルです。
スマホ用充電専用タイプだと使えないのでご注意ください。
・ブレットボード(6穴版)
6穴版 EIC-3901(秋月電子:280円)
・PIN
※ほこりセンサーをブレットボードにさせるようにするために使います。
はんだ付けができない方はミノムシで工夫して繋いでも構いません。
※はんだごてをお持ちでない方はこちらを参考に。
②「配線」
まず、DSM501Aの付属ケーブルをブレッドボードに差せるよう、PINをはんだ付けします。
次はDSM501AとArduino繋ぐためにブレードボードに配線していきます!
配線配置は下記に⇩
・DSM501Aのサンプルコード、英語版ですがご参考までに一応載せておきます。
ほこりセンサー(DSM501A) | ESP32 |
1(Control1)(黒) | |
2(Vout2)(赤) | 25 |
3(5V +-0.5V)(白) | 5V |
4(Vout1)(黄) | |
5(GND)(茶) | GND |
※上記の画像はArduinoで接続した画像です。
③「プログラミング」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// Connect the Pin_3 of DSM501A to ESP32 5V // Connect the Pin_5 of DSM501A to ESP32 GND // Connect the Pin_2 of DSM501A to ESP32 25(PM1.0以上) int pin = 25; unsigned long duration; unsigned long starttime; unsigned long sampletime_ms = 30000;//パルス幅30秒間(データシートの計測方法が30秒の為) unsigned long lowpulseoccupancy = 0; float ratio = 0; float concentration = 0; void setup() { Serial.begin(115200); pinMode(pin,INPUT); starttime = millis(); } void loop() { duration = pulseIn(pin, LOW); lowpulseoccupancy = lowpulseoccupancy+duration; if ((millis()-starttime) > sampletime_ms) { ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0=>100 concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve Serial.print(" パルス幅の占有率[%]"); Serial.print(ratio); Serial.print(" DSM501A計測粒子数[pcs/283ml]:"); Serial.println(concentration); lowpulseoccupancy = 0; starttime = millis(); } } |
④「結果」
上手くいくとシリアルモニターにこんな感じで結果が表示されます⇩
30秒に1行表示されていくので気長に待ちましょう!
1分間服をパタパタしてみたらこんな感じに数値が跳ね上がりました!
是非、これでお部屋のほこり具合を観察してみては如何でしょうか?
数値が一定値をキープできていれば恐らく良いのかと思います!
自分の場合、可変抵抗値をいじらずに使ったところ、上記の画像のように100~600くらいの数値になりました。
どのくらいの数値が正しいのかはわかりませんが、とりあえず数値が上がったら環境が悪いということです‼
以上、ご閲覧ありがとうございました♪