【海水水槽】スマートアクアリウム(Atom Lite とスマートプラグで一定時間電源制御)
はじめに
今回は Atom Lite とスマートプラグを使い電源の一時停止を行いたいと思います。
今回の動作確認の動画になります。
※ この動画ではテストのため10秒間だけ一時停止しています。
使用したAtom Liteとスマートプラグ(TP-Link HS105)
TP-Link WiFiスマートプラグ 2個セット 遠隔操作 Echo シリーズ / Googleホーム / LINE Clova 対応 音声コントロール ハブ不要 3年保証 HS105P2
- 発売日: 2018/08/09
- メディア: Personal Computers
給餌時に水流ポンプ停止
海水水槽なので水流ポンプをつけていますが、給餌の時には水流ポンプとメインポンプを止めています。 そうすると食事投入後に暫くたってから水流ポンプとメインポンプを再始動しないといけないのですが、たまに忘れてしまいます。
スマートプラグとアレクサで電源制御
そこで以前はスマートプラグとアレクサを使い、給餌時に水流ポンプとメインポンプの再始動を行うようにしていました。
詳しくは前回の記事に書いています。
【海水水槽】スマートアクアリウム(スマートプラグで一定時間電源制御)
アレクサが反応しないときがある
私の活舌が悪いせいか、何回か言い直さないとアレクサが正しく反応しない時がたまにあります。
なのでそれを改善するために、今回は水流ポンプとメインポンプの2台を、物理スイッチを押せば一時停止するようにしてみたいと思います。
スマートプラグ設定
TP-Linkのスマートプラグを使うのでKasaアプリで2台同時にONとOFFが出来るシーンを追加します。
シーン画面で+ボタンを押下
カスタムを押下
メインポンプと水流ポンプをONにし、次へを押下
好きなアイコンを選択し、次へを押下
シーンの名前を入力し、保存を押下
シーン登録完了!
IFTTTの設定
Atom Liteから直接TP-Link KasaアプリのAPIを呼ぶことも可能そうでしたが、少し面倒そうなのでIFTTTを使いAPIを呼ぶように設定しました。
IFTTT アプリを起動し、GET MORE を押下
Create を押下
This を押下
Webhooks を押下
Receive a web request を押下
Event Name を入力し、 Create trigger を押下
Thatを押下
TP-Link Kasa を押下
下へスクロール
Activate scene を押下
作成したシーンを選択し、 Create action を押下
Receve ~ をONにし、Finish を押下
登録完了!
Atom Liteの設定
Atom Liteの初期設定が済んでいない場合は先に初期設定を行います。
ATOM Liteでできること 〜ATOM Liteの使い方
私はここを参考にして設定しました。
Atom Lite用の一時停止プログラムを作成
IFTTTで設定したエンドポイント「水流とポンプON」「水流とポンプOFF」にリクエストを投げるプログラムを作ります。
#include <M5Atom.h> #include <WiFi.h> #include <HTTPClient.h> const char* ssid = "ssidxxxxxx"; const char* password = "passxxxxxx"; const char* wavepumpOn = "https://maker.ifttt.com/trigger/wavepump_on/with/key/keyxxxxxxxxxxxxxxx"; const char* wavepumpOff = "https://maker.ifttt.com/trigger/wavepump_off/with/key/keyxxxxxxxxxxxxxxx"; void httpRequest(const char* url) { HTTPClient http; http.begin(url); http.GET(); Serial.println(http.getString()); http.end(); } void setup() { M5.begin(true, false, true); } void loop() { if (WiFi.status() == WL_CONNECTED) { if (M5.Btn.wasPressed()) { httpRequest(wavepumpOff); delay(5 * 60000); // Wait 5 minutes httpRequest(wavepumpOn); } delay(50); M5.update(); } else { M5.dis.drawpix(0, 0x001000); WiFi.begin(ssid, password); int wifiReconnectCount = 0; while (WiFi.status() != WL_CONNECTED) { if (wifiReconnectCount >= 300) { ESP.restart(); } wifiReconnectCount++; delay(100); } Serial.println(WiFi.localIP()); M5.dis.drawpix(0, 0x100000); } }
※ wifiルータのssidとpasswordとエンドポイントは各自の環境に合わせて変更してください。
※ 上記プログラムでは、停止時間を仮に5分にしています。
一時停止プログラムをArduino IDEで書き込み
→ボタンを押下し、マイコンボードに書き込む
「ボードへの書き込みが完了しました。」と出れば終了
動作確認
動作確認は、WiFi環境のいい場所で試してみてください。 WiFiがつながるとAtom Liteのランプが緑色に点灯します。
ボタンを押下すると水流とメインポンプが停止し、IFTTTの通知が来ます。
一定時間停止後、水流とメインポンプが再開し、IFTTTの通知が来ます。
※ うまく動作しない場合は横についているボタンを押下し、リセットしてみてください。
【海水水槽】海水水槽IOT化(スマートプラグとAtom Liteで水流管理)
参考記事
まとめ
前回の記事と合わせるためスマートプラグはTP-Linkで記事を書きましたが、Kasaアプリ単体では一時停止の設定が出来ませんでした。
Smart Lifeアプリを使うスマートプラグの場合は自動化という設定ができ、アプリ内で「停止」→「5分待つ」→「再開」という設定もできたため、 こちらを使用すれば、プログラムでのWaitや再開リクエストが必要無いのでリスクは減ると思います。
【Amazon Alexa認定】HYSIRY WiFi スマートプラグ Alexa/Google Home/IFTTT 対応 JP1
- 発売日: 2019/07/13
- メディア: Tools & Hardware