Edited at

Arduinoで赤ちゃん起床センサー


はじめに

別の部屋に寝ている赤ちゃんを人感センサーでお目覚めの検知しようとするもです。

お母さんは他の家事もしますし、休憩もします。そこでセンサーで検知したら Google Home に喋ってもらいます。


しくみ

人感センサーは静止している人は検知しなくなます。それを利用します。

赤ちゃんがゴソゴソし始めるとセンサーが検知し、しきい値以上検知したら GooglHome に喋ってもらいます。


仕様


  • 検知したらLEDを点灯。カウントを+1。

  • n分間で人感センサーが検知したカウントにより警戒レベルを判定。(デフォルト:n=1分)

  • 警戒レベルは0、1、2の3つ。

  • 警戒レベルでのしきい値を超えたらGoogle Homeを喋らせる。

警戒レベル
しきい値
メッセージ

2
5
総員、第二戦闘配置

1
7
総員、第一戦闘配置

0
10
怪獣が起きました!

おそらく、生息する怪獣により個体差があると思うので調整してください。

const char *DEFCON2 = "総員、第二戦闘配置";

const char *DEFCON1 = "総員、第一戦闘配置";
const char *DEFCON0 = "怪獣が起きました!";
// max 15
#define DEFCON2_THRESHOLD 5
#define DEFCON1_THRESHOLD 7
#define DEFCON0_THRESHOLD 10


ハード


  • ESP32(ESP-WROOM-32) の開発ボード。
    今回は、秋月電子のAE-ESP-WROOM02-DEV

  • 人感センサー(焦電センサー) HC-SR501。

  • LED、抵抗

  • ブレッドボード 小型

  • ユニバーサル基板

  • ワイヤー、USBケーブル、半田

人感センサー HC-SR501 はそこそこ出回っているので、情報はありますが今回は以下の設定。


  • 検知時間:最小3秒

  • 検知距離:最小3m

  • ジャンパ:SINGLE TRIGGER モード

  • BlockTime:これは、次の検知までの時間なのだがドキュメントだ2.5秒とあるが私の場合6秒ぐらいある。他の方も同様の現象らしく、これでは少し不便。ここのAmamzonレビューのカトンボさんを参考に手を入れました。

下図の位置に、もとの1MΩのチップ抵抗と並列に100KΩの抵抗を半田で付けました。


組み立て

回路図はこちらのyukitterさんを参考にさせて頂きました(ピン番号は違います)。ありがとうございました。


ソフト


  • 母艦(Windows10)

  • ArduinoIDE1.8.7

  • ESP32拡張モジュール(1.0.0)

  • esp8266-google-home-notifier(1.0.6)

  • Ambientライブラリ


esp8266-google-home-notifier

Arduino(ESP8266/ESP32)で GoogleHome を喋らせるライブラリを horihiroさんが公開されています。ありがとうございます。

詳細はこちら


Ambient

Ambientによるデータをグラフ化します。(しなくてもいいです。該当部分を削除してください。)

怪獣の動向を調査しながら、しきい値を決定しても良いと思います。

Ambientは無料で使用できます。


ソース

こちらにソースを置いておきます。

https://github.com/nori-dev-akg/BabySleepSensor


最後に

恥ずかしながら、私には怪獣がおらず実戦をしておりません。

本稿をみて実戦された方がおられましたら、戦果をお待ちしております。m(_ _)m


SpecialThanks!!

人感センサー HC-SR501

対人センサーで侵入者を検知してSlackに通知するbot(ESP8266&HC-SR501編)(人感センサモジュールの応用)

ESP8266 から Google Home に喋らせるライブラリ