趣味開発、実装をまとめるブログ

興味のあるものをとりあえず動かしてみた、実装してみたシリーズをガンガン上げていきたいと思います。あくまでも自身の備忘録としてですが、誰かの助けになったらうれしいです。

【Wifi , Bluetooth搭載マイコン】【実装】ESP32でほこりセンサ (Ks0196)を動かす

f:id:bamboomush:20210207185905p:plain
 ESP32を用いてほこりセンサを実装したので、そのやり方について紹介したいと思います。

この記事を読むことで、話題のマイコンであるESP32でほこりセンサが実装できるようになります。

ほこりセンサが使えるとセンサ周辺のほこりの量が分かるようになり、これを用いて掃除機にほこり検知機能を追加したり、ルンバの清掃能力をさらに上げることができるようになります。また、センサ値を元に、喚起をしたり、空気清浄をしたりするようなIoTデバイスを作るなんてことができるようになるかと思います。

 

Arduino Nano版はこちら

www.takeshi-1222.com

 

◆ESP32関係の実装記事◆ 
  • DCモータ実装

www.takeshi-1222.com

  • サーボモータ実装

www.takeshi-1222.com

  • 無線書き込み実装

www.takeshi-1222.com

  • Webサーバー実装

www.takeshi-1222.com

  • OLED実装

www.takeshi-1222.com

  • 超音波センサ実装

www.takeshi-1222.com

  • LCDディスプレイ実装

www.takeshi-1222.com

  • 温湿度センサ (安価)

www.takeshi-1222.com

  • 温湿度センサ (ハイスペック)

www.takeshi-1222.com

  • 温湿度センサ (複数)

www.takeshi-1222.com

  • CO2センサ

www.takeshi-1222.com

 

ESP32, Ks0196の簡単な説明

ESP32

ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。

ほこりセンサ (Ks0196)

ほこりセンサはセンサ周辺のほこり量を数値的に測ることができます。それ単体でなにかの指標になるかというと難しいかもしれませんが、まさにスマートホーム等には向いているセンサかと思います。

Amazon | KEYESTUDIO PM2.5 塵埃 ホコリ ダスト 大気質 粒子 検出器 モニターメーター センサー モジュール for Arduinoと互換性 電子工作 アルディーノ 電子部品 | KEYESTUDIO | マザーボード 通販

(センサが現在品切れ中のようなので、購入できるようになったら更新します)

実験構成

 今回の実験に使用する部品は以下のものです。
  • ESP32
  • ほこりセンサ (Ks0196)
  • ジャンパ線多数

ESP32、ほこりセンサは上記のものを使用しています。

 

ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。

実験

配線

まず配線は以下のようにします。

f:id:bamboomush:20210207190145p:plain

配線ができると以下のような画像のようになります。

f:id:bamboomush:20210207190159j:plain



実行コード

ここまで出来たら以下のコードを実行することで動作確認ができます。

int dustPin=4;
float dustVal=0; 
int ledPower=15;
int delayTime=280;
int delayTime2=40;
float offTime=9680;

void setup(){
Serial.begin(9600);
pinMode(ledPower,OUTPUT);
pinMode(dustPin, INPUT);
}
 
void loop(){
// ledPower is any digital pin on the arduino connected to Pin 2 on the sensor
digitalWrite(ledPower,LOW); 
delayMicroseconds(delayTime);
dustVal=analogRead(dustPin); 
delayMicroseconds(delayTime2);
digitalWrite(ledPower,HIGH); 
delayMicroseconds(offTime);
 
delay(1000);
if (dustVal>36.455)
Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
}

今回はほこりセンサの数値をシリアルモニタで確認できるようにしています。

f:id:bamboomush:20210207185045j:plain

これらの値を使って、いろんなIoT機器を製作できるようになります。

まとめ

今回は、ESP32でほこりセンサを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。