LoginSignup
4
2

More than 3 years have passed since last update.

鍵っ子をIoTでリモート見守り

Last updated at Posted at 2019-07-07

目的

これまで子供を学童に入れていましたが、段階的に鍵っ子にします。
一人っ子で家に誰もいないので、IoTでリモート見守りします。

要件

①家にいる様子を見る。
②家の電話に出るように呼びかける(親からの電話以外は取らせない)。
 ※子供はスマホなどは持っていません。
③ITに詳しくない妻でも①②ができるようにする。

構成

自宅に置いたRaspberry PI(3B)にカメラとスピーカーを接続し、
スマートフォンのSlackアプリからコマンドを送信して操作します。
Webカメラは通常のUSBカメラ、スピーカーはダイソーの300円のスピーカーを使用しました。
見守りシステム構成図 (2).png

実装

/hubot/pibot/scriptsに以下を配置します。

hubotのスクリプト(①カメラ撮影してSlackにアップロード)

コマンド「cam」をpibotへのDMに書き込むと、
Webカメラで撮影した画像をSlackにアップロードします。

callraspi.coffee
module.exports = (robot) ->
  robot.respond /cam/, (msg) ->
    @exec = require('child_process').exec
    command = "fswebcam -D 3 -S 20 -v -r 1280x720 /home/pi/hubot/pibot/scripts/sample.jpg;
      curl -F file=@/home/pi/hubot/pibot/scripts/sample.jpg -F channels=【チャンネル】 -F token=【トークン】 https://slack.com/api/files.upload"
    msg.send "take a picture"
    @exec command, (error, stdout, stderr) ->
      @msg.send error if error?
hubotのスクリプト(②電話に出るように呼ぶ)

コマンド「momo」をpibotへのDMに書き込むと、スピーカーから子供に呼びかける音声が流れます。
音声は、あらかじめJtalk作っておいた音声ファイルを再生するだけにしました。

call_momo.coffee
module.exports = (robot) ->
  robot.respond /momo/, (msg) ->
      @exec = require('child_process').exec
      command = "aplay /home/pi/call_tomo.wav"
      msg.send "ももくんを呼びました。"
      @exec command, (error, stdout, stderr) ->
          @msg.send error if error?

運用状況

意外と安定して使えます。3ヶ月ほど使用していますが、不具合はありませんでした。
Webカメラは、通常のカメラは焦点距離が近いので、遠めに調整する必要があります。

参考にしたサイト

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2