メインコンテンツまでスキップ

LINEに通知してくれるおむつ用ごみ箱

赤ちゃんの体調管理のために、おむつ交換の頻度を知りたい。

そのためにGoogle Homeで赤ちゃんの授乳記録をLINEに投稿するを作ったが、 おむつの交換の記録も取っているが、Google Homeに話しかけるのをよく忘れてしまう。

そこで今回は、おむつ用ごみ箱(おむつポット)を開けると、 自動的にLINEに投稿するような仕組みを作ってみる。

ESP-WROOM-32という無線通信モジュールを使い、下記の動画のものが完成した。

#youtube(N5h-MIAVCJ8)

構成図

必要なもの

ハードウェア

項目説明
おむつ用ごみ箱(おむつポット)おむつのにおいが漏れないようになっているおむつ専用ごみ箱。&br;今回はピジョンのらくらくおむつポットンを使用。
ESP-WROOM-32Espressif Systems社のSoC、"ESP32"を搭載した無線通信モジュール。&br;Wi-Fi通信機能とBluetooth通信機能を内蔵している。&br;このモジュールを使用したボードは様々あるが、&br;今回は電源とシリアル通信について考えるのが面倒だったため、&br;スイッチサイエンス社のESPr Developer 32を使用。&br;ESP32-DEVKITCなどでもよい。
リードスイッチ磁石を近づけると動作するスイッチ。&br;今回は秋月電子通商で購入できるSPS-320を使用。(磁石付属)

IFTTTのアプレット

IFTTT(「イフト」と読む。if this then thatの略。)のアプレットが必要。

作成方法は後述。

ソフトウェア

Arduino IDE用のスケッチが必要。

作成したスケッチは [https://github.com/cubic9com/ESP32_send_request_to_IFTTT) にて配布中。

内容は後述。

手順

ハードウェアの作成

  1. リードスイッチから出ている2本の配線のうち、 一方をESP-WROOM-32の0番ピン、もう一方をGNDに接続する。 これでリードスイッチがオンになると、0番ピンがGNDに落ちるようになる。 (後述のソフトウェア作成編にて、これをトリガに動作するようにする。)
  2. リードスイッチをおむつポット本体上部に接着する。
  3. リードスイッチ付属の磁石をおむつポットのハンドル内側に接着する。
  4. おむつポットのハンドルを使っておむつポットを開けた際に、リードスイッチと磁石が近づくことを確認する。
  5. ESP-WROOM-32をおむつポット本体に接着する。
  6. ESP-WROOM-32に電源を接続する。

IFTTTのアプレットの作成

  1. IFTTTを開く。
  2. [Sign in]をクリックする。
  3. 任意の方法でサインインする。
  4. [Search]をクリックする。
  5. "Webhooks"と入力する。
  6. [Webhooks]をクリックする。
  7. [Connect]をクリックする。
  8. [Documentation]をクリックする。
  9. keyをメモしておく。(これはWebhooks用URLの一部になる)
  10. Documentationのウィンドウを閉じる。
  11. [My Applets]をクリックする。
  12. [New Applet]をクリックする。
  13. [this]をクリックする。
  14. "Webhooks"と入力する。
  15. [Webhooks]をクリックする。
  16. [Receive a web request]をクリックする。
  17. [Event Name]に適当なイベント名を入力する。 (例:"diaper_pail_opened")
  18. [create trigger]をクリックする。
  19. [that]をクリックする。
  20. "LINE"と入力する。
  21. [LINE]をクリックする。
  22. [Send message]をクリックする。
  23. [Recipient]で受信者を選ぶ。 (例:あらかじめ作っておいたLINEグループ)
  24. [Message]に任意のメッセージを入力する。 (例:"おむつポットが開いたよ👶")
  25. [create action]をクリックする。
  26. [Finish]をクリックする。

ソフトウェアの作成

ハードウェア作成編にて、 リードスイッチに磁石が近づき、リードスイッチがオンになると、 0番ピンがGNDに落ちるようにした。

この0番ピンがGNDに落ちたことをトリガとして、 省電力モード(Deep Sleep)から復帰し、 Wi-Fi接続し、 IFTTTのWebhooks用URLにGETリクエストを送り、 再び省電力モードに入るようなスケッチを作成した。 (GitHubのリポジトリ

このスケッチは下記のようにして使用する。

  1. 公式の手順に従い、ESP-WROOM-32(ESP32)をArduino IDEで使えるようにする。
  2. GitHubのリポジトリからダウンロードしたスケッチをArduino IDEにて開く。
  3. wifi_config.hを開き、自宅のWi-FiのSSIDとパスワードを設定する。
  4. ifttt_config.hを開き、IFTTT編にて自分で指定したイベント名と、取得したkeyを設定する。
  5. スケッチをESP-WROOM-32に書き込む。 (ESPr Developer 32を使用する場合は、USBケーブルにて接続すれば書き込める。 生のESP-WROOM-32モジュールやピッチ変換のみをしたモジュールを使用する場合は、 USBシリアルモジュールと電源が必要。)

完成! :)

今回は、IFTTT経由でLINEに記録したが、 用途によっては、ThinkSpeakAmbientなどのサービスに記録しても良いと思う。

参考