Lanchester IoT部 活動報告 その3 人感センサーを取り付ける

Lanchester IoT部 活動報告 その3 人感センサーを取り付ける

その2に続き、今回はRaspberry Piに人感センサーを取り付けたいと思います。

と思ったのですが、いざRaspberry Piにログインしようとしたものの著しく反応が悪い・・・前回参照させていただいたものづくりエクスペリメントさんのページから「Raspberry Piの無線LANの反応が悪い時の対処法」としてリンクされているページにちゃんと書いてありました。
お手本通りに

sudo vi /etc/modprobe.d/8192cu.conf
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1

で解決です。

ついでにコンソールの時刻がUTCだったことに気が付いたので、

sudo mv /etc/localtime /etc/localtime.org
sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

こんな感じでJSTに変更しておきます。

今回使用する人感センサーモジュールはHC-SR501という物で、マルツオンラインから購入しました。
他にもGPIOと接続するためのジャンプワイヤーも一緒に購入しておきました。

人感センサーモジュールについてはRaspberry Piから給電(3.3V、または5V)でき、信号としてTTL Low/Highが出ているものとして探しました。
この条件を満たせば他のモジュールでも同じように使えると思います。
もちろん電子工作に明るい方ならオープンコレクタ出力他、どんなものを使っても良いと思います。

HC-SR501は電源が4.5~20VなのでRaspberry Piの5V出力をそのまま使えます。
また出力信号もHigh 3.3V、Low 0Vなのでもってこいでした。

マルツで購入したからかもしれませんが、丁寧な日本語ドキュメントがあったのでそれを見ながら、動作モードを「検知後出力信号がHIGHになったあと、LOWになるまで再検知しません」なモードから、「検知後再検知します。出力信号がHIGHになっている状態でも検知を続け最後の検知から設定時間後にLOWになります」なモードにジャンパピンで変更しておきます。

モジュールのヘッダピンのVCCをRaspberry Piの4番ピン(5V)に、GNDを6番ピン(GND)に、OUTを7番ピン(GPIO4)にジャンプワイヤーで接続します。

LIoT_5

Raspberry Pi側でGPIOを有効にするために

echo 4 > /sys/class/gpio/export

とします。

すると

/sys/class/gpio/gpio4

以下に色々なものができています。

なお、無効にするには

echo 4 > /sys/class/gpio/unexport

とします。

GPIO4に繋いだモジュールから信号を受け取る、つまりRaspberry Piから見ると「in」なので

echo in > /sys/class/gpio/gpio4/direction

とします。
※ とは言うもののexportした時点でinになっていました

さて、これで準備はできているはずです。

cat /sys/class/gpio/gpio4/value

を見てみましょう。

人感センサーが反応していれば「1」、反応していなければ「0」が表示されるはずです。
mitsuo80さんの書いた記事で紹介されているwatchコマンドを使うのもいいですね。

ずっと1だなーって場合は本当にずーっと検知し続けている可能性もありますので、思い切ってOUTに繋いであるジャンプワイヤを抜いてしまいましょう(あまり推奨される方法ではないですが・・・)!
これで0になる場合はモジュールの検知範囲や検知信号の出力時間を調整してみると良いでしょう。

モジュールの半固定抵抗を微調整して、おおよそ30秒になるように調整してみました。
検知範囲は・・・なんとなく真ん中くらいでw

今回はここまで!

TAG

  • このエントリーをはてなブックマークに追加
やまま
スペシャリスト やまま yamama

マンガとアニメとゲームから錬成された宇宙大好きエンジニア。 軌道エレベーターで行ける静止軌道上のコロニーに住まいを移し、ゲームやってマンガ読んでアニメ見て爆睡、ゲームやってマンガ読んでアニメ見て爆睡、という生活を夢見ながら今日もコードを書き続けるのだった。