2-4.人感センサ《Remo》
電気回路と電子工作
人感センサはいくつか種類がありますが、今回は赤外線を利用した人を感知するセンサを利用します。一般的に焦電型赤外線センサと言われるもので人体など熱を持った物体の赤外線エネルギーの変化(温度変化)を感知することで反応するセンサとなります。人が近づくと照明が点くセンサがありますが、それらは同様に焦電型赤外線センサを利用しています。他にも超音波や可視光を利用するものなど多くありますが高価なため複雑な検知に利用されています。
今回利用するセンサの検知については3〜5m程度、反応時間は~2秒となります。利用センサの外観を下図に示します。
人感センサには3つの端子があり2.7Vから12Vの電源で利用可能です。そのため、VCCに3.3VとGNDを接続し、VOUT端子をGPI36に接続し検知結果を取得します。
人感センサを利用する回路図と配線図を以下に示します。
【ESP32-DevKitCの入出力端子はこちらを参照下さい】
スケッチ(制御ソフトウェア)
人感センサを利用するスケッチは以下の通りとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// IoT電子工作キット // 2-4.人感センサ const byte MOTN_SNR = 36; // ①人感センサのピン設定 // ②起動時、最初に実行される処理 void setup() { Serial.begin(115200); // ③シリアルモニタ設定 Serial.println(); // (見やすくするために改行) Serial.println("MotionStart");// ④シリアルモニタに開始を表示 pinMode(MOTN_SNR, INPUT); // ⑤人感センサ端子を入力設定 } // ⑥setup完了後、電源OFFまで繰り返し処理 void loop() { delay(1000); // ⑦1秒待つ // ⑧モーションセンサーのデータ取得(True/False) if (digitalRead(MOTN_SNR)) { Serial.println( "Detected!" ); } else { Serial.println( "No detected." ); } } |
人感センサは変化を検知するとVOUT端子がHIGH状態(3.3V)になります。変化がなければLOW状態(GND)になりますので、digitalReadでHIGHかLOWかを判定します。digitalReadの結果は、HIGH(3.3V入力)の場合はtrue、LOW(GND入力)の場合はfalseとなりますので、IF文で判定しシリアルモニタに表示しています。シリアルモニタにはセンサが感知した場合に”Detected!”と表示し感知していない場合に”No detected.”が表示され下図のようになります。
【スケッチの検証と書込方法はこちらを参照ください】