20
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラクスAdvent Calendar 2019

Day 23

エンジニアの育休 POISON~言いたい事も言えないこんな世の中は~

Last updated at Posted at 2019-12-22

2019年もあとわずかですね。
ラクス Advent Calendar 2019 の23日目を担当します noriharu3 です。

さて今回は、今年の6月から8月に取得した育休のお話をしたい思います。

そもそも育休とは

子供が1歳になるまで、育児のために休業できる の制度です。
スクリーンショット 2019-12-22 22.42.57.png
厚生労働省HPより引用)

育休中の給料は?

所属会社の人事に問い合わせいただくのが確実かと思います。弊社を含め、0 円になる会社がほとんどだと思いますが。。。

しかし、全く収入がなくなるというわけではなく、雇用保険から給付金という形でお金が支給されます。
スクリーンショット 2019-12-22 22.49.40.png
厚生労働省HPより引用)

ただ1つ注意点が
給付金が受け取れるのは、初回申請から早くても3ヶ月経ってからになります。

また、私個人の話にはなりますが、管轄のハローワークが手続きを忘れていたため、12月23日現在まだ給付金を受け取れていません。

なので、お金には余裕を持った計画を。

育休をとろうと思ったきっかけ

シンプルに嫁1人での育児が心配でした。書店で見つけた 産後うつ の本を読んでからその気持ちがより強くなりました。
image.png
Amazonより引用)

育休中に困ったこと

寝返りでの窒息

育休開始直後が、ちょうど寝返りを始めたくらいだったので、自分たちが就寝中に窒息しないか心配でした。
スクリーンショット 2019-12-22 23.13.44.png
(消費者庁 「第2回子供の事故防止 関係府省庁連絡会議」 資料より引用)

市販のベビーモニター購入も考えたのですが、次の理由から子供が寝返った時に電話をかけてくれるベビーモニターを作ることにしました

  1. 開発難易度が低そう
  2. 必要な時期が限られる
  3. 子供が寝返った時に電話をかけてくれるベビーモニターは販売されてなさそう

泣き止まない

長時間の泣きに対して物凄くストレスを感じました。理系なので「何が原因?」と考えたりするんですが、理屈じゃないんでしょうね。

そんな中、奥さんがPOISONをかけると泣き止むという動画(ポイズンで泣きやむ赤ちゃん)を見つけてきたので、うちの子供にも試してみたところ効果覿面!ただ、泣いた子供を抱っこし、手が塞がった状態で曲をかけるのは辛かった為、Google Homeみたいに ポイズンをかけて と声をかけると曲が流れる機能を作りました。

PS:世代なのか、アキラより反町隆史の方が好きですね。

ベビーモニタ(見守りカメラ)

就寝中に子供が寝返りをすると、携帯に着信がくるようにしました。
動きの検出には motionEye、電話発信は Twilio を活用しました。

  1. motionEye のインストール

    • 公式
    • 前提
      • Rasbperry Pi 3 へ Raspbian をインストール済み
      • docker をインストール済み
      • カメラが /dev/video0 で認識できていること
    • インストール&起動
      • 公式通り下記コマンドを実行

        docker pull ccrisan/motioneye:master-armhf
        docker run --name="motioneye" \
        -p 8765:8765 \
        --hostname="motioneye" \
        -v /etc/localtime:/etc/localtime:ro \
        -v /etc/motioneye:/etc/motioneye \
        -v /var/lib/motioneye:/var/lib/motioneye \
        --restart="always" \
        --detach=true \
        --device=/dev/video0   # 忘れないように注意
        ccrisan/motioneye:master-armhf
        
    • 起動確認
      • http://{ラズパイのIP}:8765 へアクセス
        image.png
  2. Twilio のインストール

    • 公式
    • 前提
      • Rasbperry Pi 3 へ Raspbian をインストール済み
      • docker をインストール済み
    • twilio-python インストール
      • 公式のDokcerイメージが動かず、shebang がないのが原因ぽい

        pi@raspberry:~ $ docker pull twilio/twilio-python
        pi@raspberry:~ $ docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp twilio/twilio-python python test.py
        standard_init_linux.go:178: exec user process caused "exec format error"
        
      • 公式のDockerfileをcloneしてきて、shebang を追加し、ビルド

        pi@raspberry:~ $ mkdir twilio
        pi@raspberry:~ $ cd twilio
        pi@raspberry:~/twilio $ git clone https://github.com/twilio/twilio-python
        pi@raspberry:~/twilio $ cd twilio-python
        pi@raspberry:~/twilio/twilio-python $ cp -ap Dockerfile Dockerfile.org
        pi@raspberry:~/twilio/twilio-python $ vi Dockerfile
        pi@raspberry:~/twilio/twilio-python $ diff Dockerfile Dockerfile.org 
        1,2d0
        < #!/usr/bin/python
        < 
        pi@raspberry:~/twilio/twilio-python $ docker build -t noriharu3/twilio-python .
        
      • 発信API作成

        from twilio.rest import Client
        
        account = "ACXXXXXXXXXXXXXXXXX"
        token = "YYYYYYYYYYYYYYYYYY"
        client = Client(account, token)
        
        call = client.calls.create(to="9991231234",
                                   from_="9991231234",
                                   url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
        print(call.sid)
        
      • 動作確認

        pi@raspberry:~/twilio/twilio-python $docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp noriharu3/twilio-python python call.py
        jfeogrehgerjgewamfeomfe # レスポンス受け取り次第、電話に着信がある
        
  3. 動きを検知してから電話へ発信する

    • ホストの docker.sock (/var/run/docker.sock) をマウントし、motioneye コンテナを起動

      • 参考:コンテナからコンテナを操作する

        pi@raspberry:~ docker run --name="motioneye" \
            -p 8765:8765 \
            --hostname="motioneye" \
            -v /etc/localtime:/etc/localtime:ro \
            -v /etc/motioneye:/etc/motioneye \
            -v /var/lib/motioneye:/var/lib/motioneye \
            -v /home/pi/twilio:/home/pi/twilio \    # 発信APIをマウント
            -v /var/run/docker.sock:/var/run/docker.sock \    # ソケットをマウント
            --restart="always" \
            --detach=true \
            --device=/dev/video0
            ccrisan/motioneye:master-armhf
        pi@raspberry:~ $ docker exec -it motioneye /bin/bash
        root@motioneye:/# curl -sSL https://get.docker.com | sh # dockerインストール
        
        # commit して image 化しておくと、あとで便利
        
    • motioneye コンテナから、twilio-python コンテナを起動

      root@motioneye:/# docker run -it --rm -v /home/pi/twilio:/usr/src/myapp -w /usr/src/myapp noriharu3/twilio-python python call.py
      eewljgriogreqo    # レスポンス受け取り次第、電話に着信がある
      
    • motioneyeで動作検出時に、発信APIを実行するように設定

      • 設定画面で「Motion Notification > Run A Command」をオンにし、Command に実行コマンドを設定
        image.png
    • 動作確認

POISON

ポイズンをかけて と話すと、曲が流れるようにしました。

  • Google Assistant SDK のインストール
    • 公式

    • 前提

      • Rasbperry Pi 3 へ Raspbian をインストール済み
      • 高性能なマイクが設定できていること
        • 筆者は今回 ReSpeaker 2-Mics Pi HAT を使用しました
    • インストール

      • 公式の手順通りやれば問題ありません。長いので割愛します。
    • サンプルの動作確認

      pi@raspberry:~ $ source env/bin/activate
      (env) pi@raspberry:~ $ googlesamples-assistant-hotword --project-id {projectId} --device-model-id {modelId}
      
    • ポイズンをかけて というと、POISONを流すように hotword.py を修正

      def main():
          parser = argparse.ArgumentParser(
              formatter_class=argparse.RawTextHelpFormatter)
              ...(省略)
              for event in events:
                  if event.type == EventType.ON_START_FINISHED and args.query:
                      assistant.send_text_query(args.query)
      
                  ### 追加コード start
                  if event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED:
                      # 言葉に `ポイズン` が含まれている時
                      if("ポイズン" in event.args['text']):
                          subprocess.call("aplay --device=hw:0,0 POISON.wav", shell=True) # 音楽を流す
                          assistant.stop_conversation() # 会話を終了
      
                  ### 追加コード end
                  
                  process_event(event)
      
      if __name__ == '__main__':
          main()
      
    • 動作確認

      (env) pi@raspberry:~ $ googlesamples-assistant-hotword --project-id {projectId} --device-model-id {modelId}
      
      • 著作権的に、曲が流れるまでの動画です
20
3
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
20
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?