ほこりセンサーとArduinoを使ってダスト取得(DSM501A)
こんにちは!
日常生活において、いまどのくらいほこりがあるのか気になることはありませんか?
今回はそんなお悩みを解決してくれるセンサーを紹介したいと思います!
入手しずらいが、簡単に扱えるセンサーなので、初心者の方でも簡単に作れます!
一部はんだ付けが必要ですが、難しく無いので是非、チャレンジしてみましょう♪
①「使う部品」
・ほこりセンサー(DSM501A)
現在はAmazonにも楽天にも秋月にも販売してなく電子工作ステーションなどで入手可能‼
電子工作ステーション 1450円(送料無料)
・Arduino UNO
電子工作ステーション 1255円(送料無料)(互換ボード)
※UNO以外の物でも大丈夫です。
・ジャンパーワイヤー(オス・オス)
電子工作ステーション 1セット(10本)100円+送料(500円以上で無料)
・ブレットボード(どんな形状でもOK)
電子工作ステーション 250円+送料(500円以上で無料)(400穴)
※ブレットボードを介さずに配線もできるので、必須品ではないです。
(ジャンパーワイヤーオスメスだけで繋げられます。)
・PIN
※ほこりセンサーをブレットボードにさせるようにするために使います。
はんだ付けができない方はミノムシで工夫して繋いでも構いません。
※はんだごてをお持ちでない方はこちらを参考に。
②「配線」
まず、DSM501Aの付属ケーブルをブレッドボードに差せるよう、PINをはんだ付けします。
次はDSM501AとArduino繋ぐためにブレッドボードに配線していきます!
配線配置は下記に⇩
・DSM501Aのサンプルコード、英語版ですがご参考までに一応載せておきます。
ほこりセンサー(DSM501A) | Arduino |
1(Control1)(黒) | |
2(Vout2)(赤) | 8 |
3(5V +-0.5V)(白) | 5V |
4(Vout1)(黄) | |
5(GND)(茶) | GND |
③「プログラミング」
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 Arduino 5V // Connect the Pin_5 of DSM501A to Arduino GND // Connect the Pin_2 of DSM501A to Arduino D8(PM1.0以上) int pin = 8; 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(9600); 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分間服をパタパタしてみたらこんな感じに数値が跳ね上がりました!
是非、これでお部屋のほこり具合を観察してみては如何でしょうか?
数値が一定値をキープできていれば恐らく良いのかと思います!
自分の場合、可変抵抗値をいじらずに使ったところ、上記の画像のように200~500くらいの数値になりました。
どのくらいの数値が正しいのかはわかりませんが、とりあえず数値が上がったら環境が悪いということです‼
以上、ご閲覧ありがとうございました♪
2件のフィードバック