M5StickCでできること 〜PIRセンサがケース越しで人を検知できるか確認する

スポンサーリンク
センサとの接続

しばらく前から、「畑」にソーラー発電システムとM5Cameraを設置しています(記事は こちら)。
M5Cameraで一定時間ごとに畑の風景写真を撮影し、その画像をモバイルWi-Fiルータ経由でWebサーバに送信しています。これにより、畑の状況を「いつでもどこでも」確認することができます。

M5CameraとモバイルWi-Fiルータは、ソーラーパネルで発電した電気で動かしており、電源がない場所でも常時稼働が可能なシステムです。


さて、今のところ、このシステムで撮影しているのは単なる風景写真ですが、最終的にはPIRセンサも取り付け、動物の侵入を検知して撮影する「トレイルカメラ」のようなものにしたいと考えています。

ただ、PIRセンサを畑に設置するためには、センサの防水対策が必要です。
PIRセンサの特性として、センサと検知対象の間にガラスやアクリルなどの物体があると対象を検知しにくくなる(赤外線を透過する汎用材料はポリエチレンのみ)とのことで、きちんと機能させるためにはセンサのレンズ部分を露出させる必要があります。その場合、ケースに穴を開けることになり防水対策が難しくなります。

防水のことを考慮したケースの加工は大変なので、まずは「PIRセンサをケースの中に入れていると本当に検知できないのか?」を確認してみることにしました。

私がいつも使っている防水ケースはこちらです。


フタの部分が透明なので、M5Cameraを畑に設置するのに重宝しています。フタの材質は「ポリカーボネート」とのことです。

今回は、PIRセンサをこのケースの中に入れ、本当に人を検知できないのかを調査します。
調査に用いたPIRセンサは、パナソニックの「PaPIRs(パピルス)EKMC1601111」です。


M5StickCにPIRセンサをふたつ接続します。
今回はM5StickCのGroveポートを活用して接続します。まずはM5StickCのGroveポートを「M5Stack用ハブユニット」につなぎます。ハブユニットにGroveケーブルを2本つなぎ、1本目の黒/赤/白をひとつめのPIRセンサのGND/VDD/OUTに、2本目の黒/赤/黄をもうひとつのPIRセンサのGND/VDD/OUTに接続します。


PIRセンサのひとつ(ブレッドボードが青)はケースの中に収納し、もうひとつ(ブレッドボードが赤)は比較のため、ケースの外に出しておきます。

以下のスケッチをM5StickCに書き込みます。

#include <M5StickC.h>

void setup() {
  M5.begin();
  M5.Lcd.setRotation(3);
  pinMode(32, INPUT_PULLDOWN);
  pinMode(33, INPUT_PULLDOWN);
}

boolean flag_red  = false;
boolean flag_blue = false;
int     time_red;
int     time_blue;

void loop() {
  int val_red  = digitalRead(32);
  int val_blue = digitalRead(33);

  if(val_red == 1) {
    flag_red = true;
    time_red = millis();
  } else {
    if(millis()-time_red >= 1000) flag_red = false;
  }
  if(val_blue == 1) {
    flag_blue = true;
    time_blue = millis();
  } else {
    if(millis()-time_blue >= 1000) flag_blue = false;
  }

  if(flag_red)  M5.Lcd.fillRect( 0, 0, 80, 80, RED);
  else          M5.Lcd.fillRect( 0, 0, 80, 80, BLACK);
  if(flag_blue) M5.Lcd.fillRect(80, 0, 80, 80, BLUE);
  else          M5.Lcd.fillRect(80, 0, 80, 80, BLACK);
}

ケース外のPIRセンサ(ブレッドボードが赤)が人を検知したら、LCD画面の左半分が赤く光り、ケース内のPIRセンサ(ブレッドボードが青)が人を検知したら、LCD画面の右半分が青く光ります。

早速試してみます。

まずはケースのフタを開けた状態で確認します。

近くに人がいる状態だと、常に赤、青の両方が点灯しています。

次にケースのフタを閉じます。

赤のみ点灯し、青は全く光りません。フタの直近で手を振ったりしても、全く検知しませんでした。

少しぐらい感度が悪くなっても良いので、何とか検知できないかと少し期待していましたが、無理でした。
やはり、ケースの加工方法を検討しなければならなさそうです。

 

なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。