IFTTTの設定方法(【自作】洗濯物 取り込み忘れ防止機器)
目次
- はじめに
- IFTTTの登録の方法
- IFTTTでの機能を作成(Appletを作成)
- Webhooks Keyの確認
- WIFIモジュール:ESP-WROOM-02のプログラムコードにKey,eventNameを入力
- おわりに
はじめに
先日製作した洗濯物 取り込み忘れ防止機器のIFTTTの設定方法について記載がなかったため、記載します。
洗濯物 取り込み忘れ防止機器の仕組みの中でIFTTTを使用している部分は、洗濯物 取り込み忘れ防止機器内のWIFIモジュールから出力した信号をWebhooks、LINEを経由してスマートフォンへ通知する部分です。
IFTTTの登録の方法
①https://ifttt.com/へアクセスし、start for freeをクリックする。
②下記のいずれかでアカウントを作成する
・APPLE ID
・Google ID
・Facebook ID
・email アドレス
私はGoogle IDで登録しました。
③「Welcome to IFTTT」というページに遷移します。
特に選択せず、ブラウザを閉じても、戻っても大丈夫です。
私はブラウザの戻るボタンを押しました。
IFTTTでの機能を作成(Appletを作成)
④IFTTTアカウントのトップページで「Create」を選択
⑤「If This」を選択し、IFTTTの機能部分が動作する条件を作成する。
⑥検索窓に「webhooks」と入力し、下に表示された「webhooks」を選択する。
条件で用いるサービスを選択しています。
⑦「Receive a web request」を選択する
⑧「Connect」を選択する
⑨「Event Name」へ適当な名前を入力し、「Create trigger」を選択する
⑩「Then That」を選択し、IFTTTの機能部分で実施したいことを作成する。
⑪検索窓に「line」と入力し、下に表示された「LINE」を選択する。
通知機能で用いるサービスを選択しています。
⑫「Send message」を選択する
⑬「Connect」を選択する
⑭LINEアカウント入力してログインする
⑮「同意して連携する」を選択し、LINE連携する
⑯「LINE account」を選択
「Recipient」でどのトークに通知したいか選択する
「Message」へ通知したいメッセージを入力する
「Create action」ボタンを押す
⑰「Continue」を選択する
⑱「finish」を選択する
Webhooks Keyの確認
①トップページで「My Applets」を選択
②先ほど作成したAppletを選択
③「Webhooks」を選択
④「Documentation」を選択する
⑤一番上に記載されている「Your key is:****」を確認する
****部分がKeyになります。
WIFIモジュール:ESP-WROOM-02のプログラムコードにKey,eventNameを入力
確認したKey、上記の「IFTTTでの機能を作成」⑨で入力したeventNameをWIFIモジュール:ESP-WROOM-02のプログラムコードに入力すると、IFTTTの機能が実行されます。
おわりに
上記の設定を行うことで、洗濯物 取り込み忘れ防止機器内のWIFIモジュールから出力した信号をWebhooks、LINEを経由してスマートフォンへ通知することができるようになります。
モバイルバッテリーの変更2(【自作】洗濯物 取り込み忘れ防止機器)
目次
はじめに
先日製作した洗濯物 取り込み忘れ防止機器のモバイルバッテリーの変更を前回に引き続き検討しました。
洗濯物 取り込み忘れ防止機器のdeep sleep時の消費電流は0.058mAであるため、低電流モードが搭載されているモバイルバッテリーを選定する必要がありました。前回検討したモバイルバッテリーは、低電流モードでも消費電流が小さいと数時間経過後に自動停止する仕様であったため、洗濯物 取り込み忘れ防止機器には適していないことが分かりました。
今回選定したモバイルバッテリーは前回とは異なるメーカーを選定しました。
メーカー:cheeroのモバイルバッテリー
メーカー:cheeroのサイトのモバイルバッテリーを見てみると、Raspberry Pi のようなIoT機器に対応している製品が下記2点がありました。
・Canvas 3200mAh IoT 機器対応
・cheero Slim 5000mAh IoT機器対応
この2製品は消費電流が小さいと数時間経過後に自動停止する仕様はなく、洗濯物 取り込み忘れ防止機器にも使用可能でした。
この2製品のどちらかを使用しても良かったのですが、より電池容量が多いIoT機器対応のモバイルバッテリーを問い合わせたところ、cheeroのバッテリーが搭載されているエレクサーモバッテリー10000mAh(BT100) メーカー:イーブンリバーが紹介されました。今回はこれを購入しました。
エレクサーモバッテリー10000mAh(BT100) メーカー:イーブンリバー(cheero)
洗濯物取り込み忘れ防止機器へ接続して動作させ、モバイルバッテリーの出力電圧を測定しました。
その結果、約6時間モバイルバッテリーの出力が約5.2Vになり、出力を継続し続けることができました。
おわりに
今回購入したモバイルバッテリー エレクサーモバッテリー10000mAh(BT100) メーカー:イーブンリバー(cheero)は、洗濯物取り込み忘れ防止機器の動作に適していました。
これにより、10000mAhのモバイルバッテリーが使用でき、deep sleep時だけの電流では7183日起動できる計算になります。実際にはdeep sleep以外の動作が35分間隔で動作するため、7138日起動することはできません。(deep sleep以外の動作は30秒程度、70mA~150mAで動作します)
モバイルバッテリーの変更(【自作】洗濯物 取り込み忘れ防止機器)
目次
- はじめに
- モバイルバッテリーの低電流モード
- MPC-CB5000P メーカー:maxellの低電流モード
- PowerCore Slim 10000 メーカー:Anker の低電流モード
- DE-C17L-5000BK メーカー:ELECOMの低電流モード
- 3製品の低電流モードの仕様 と 洗濯物取り込み忘れ防止機器の相性
- DE-C17L-5000BK メーカー:ELECOMの低電流モードの動作実験
- おわりに
はじめに
前々回製作した洗濯物 取り込み忘れ防止機器のモバイルバッテリーの変更を検討しました。
前回製作時に使用した2000mAhのモバイルバッテリー:CP-EL(メーカー:SONY)は購入してから年数が経っているため、劣化により電池容量が減少していることと容量が2000mAhと少し容量が小さいため、変更を検討しました。
モバイルバッテリーの低電流モード
前回実施した降圧レギュレータの変更により、洗濯物 取り込み忘れ防止機器のdeep sleep時の消費電流は0.058mAになりました。この消費電流では一般的なモバイルバッテリーでは出力電流が小さいため、停止してしまいます。自宅にあったモバイルバッテリーをいくつか試してみましたが、2000mAhのモバイルバッテリー:CP-EL(メーカー:SONY)のみが動作しました。
低電流機器に対応するためには、低電流モードが搭載されているモバイルバッテリーを選定する必要があります。そこで、異なるメーカーの低電流モードが搭載されている下記3製品のモバイルバッテリーを選定しました。
①MPC-CB5000P メーカー:maxell
②PowerCore Slim 10000 メーカー:Anker
③DE-C17L-5000BK メーカー:ELECOM
しかし、3製品とも低電流モードに条件がありました。
MPC-CB5000P メーカー:maxellの低電流モード
MPC-CB5000Pの低電流モードは、出力電流が10mA以下の場合、自動停止機能が作動するとのことでした。
また、出力電流が10mA~200mA場合、切り忘れ防止機能として約3時間で自動停止するとのことでした。
PowerCore Slim 10000 メーカー:Anker の低電流モード
PowerCore Slim 10000の低電流モードは出力電流が0mAから対応しており、出力の下限値はないとのことでした。
しかし、出力電流が60mA以下になると、約2時間で自動停止するとのことでした。
DE-C17L-5000BK メーカー:ELECOMの低電流モード
DE-C17L-5000BKの低電流モードは2時間半後、充電器が満充電または機器が接続されていないと低電流モードが解除されるとのことでした。
3製品の低電流モードの仕様 と 洗濯物取り込み忘れ防止機器の相性
前回の降圧レギュレータの変更により、洗濯物取り込み忘れ防止機器のdeep sleep時の消費電流は実測値で0.058mAになりました。そのため、出力電流が10mA以下を対象としていないMPC-CB5000Pは適していません。
また、PowerCore Slim 10000は出力電流が60mA以下になると、約2時間で停止するとのことなので、これも適していません。
DE-C17L-5000BKについては、機器が接続されていないと判断される電流値が不明であったため、購入して洗濯物取り込み忘れ防止機器が2時間半後も動作可能か試してみました。
DE-C17L-5000BK メーカー:ELECOMの低電流モードの動作実験
洗濯物取り込み忘れ防止機器へ低電流モードに設定したDE-C17L-5000BKを接続して動作させ、モバイルバッテリーの出力電圧を測定しました。
その結果、約1時間半後にモバイルバッテリーの出力が0Vになり、出力が停止しました。0.058mAは機器が接続されていないと判断される電流値以下であることが分かりました。
おわりに
今回検討したモバイルバッテリーは、洗濯物取り込み忘れ防止機器の動作には適していないことが分かりました。
次回もひき続き 洗濯物取り込み忘れ防止機器に使用可能なモバイルバッテリーを調査していきます。
DC-DC降圧レギュレータ変更(【自作】洗濯物 取り込み忘れ防止機器)
目次
はじめに
前回製作した洗濯物 取り込み忘れ防止機器の5V→3.3Vへ変換している降圧レギュレータの変更について、記載していきます。
前回製作時に使用した降圧レギュレータ:AMS1117-3.3 DC-DC降圧コンバータモジュールはLEDが実装されていることとAMS1117-3.3の自己消費電流が大きいため、deep sleep時でも実測値で3.08mA消費していました。
2000mAhのモバイルバッテリーを用いた構成であると、deep sleep時だけの電流でも27.7日しか起動できない計算になるまた、レギュレータを変更します。
変更前の構成は下記の記事に記載しています。
回路図
変更するのはIC2:AMS1117-3.3 DC-DC降圧コンバータモジュールになります。
AMS1117-3.3 DC-DC降圧コンバータモジュール LEDの取り外し
まず、AMS1117-3.3 DC-DC降圧コンバータモジュールに取り付いているLEDを取り外し、消費電流の削減を試みてみました。その結果、deep sleep時の消費電流は実測値で1.63mAになりました。
消費電流を半分に削減することができましたが、さらに削減するために降圧レギュレータの変更を行いました。
XC6210A332MR-G(メーカー:TOREX )への変更
降圧レギュレータをXC6210A332MR-G(メーカー:TOREX )へ変更しました。
この素子を選定した理由は自己消費電流がデータシート上で41.0μA(TYP)、67.5μA(MAX)と小さいことと、出力電流は700mAまで出力でき、WIFI通信時の消費電流にも余裕があることからこの降圧レギュレータを選定しました。
製作した回路は下記になります。
降圧レギュレータの入力と出力には1.0μFのセラミックコンデンサを実装しました。
DCDC降圧レギュレータ変更
消費電流
deep sleep時の消費電流は実測値で0.058mAになりました。
2000mAhのモバイルバッテリーを使用する構成であると、deep sleep時だけの電流では1436日起動できる計算になります。実際にはdeep sleep以外の動作が35分間隔で動作するため、1436日起動することはできません。(deep sleep以外の動作は30秒程度、70mA~150mAで動作します)
おわりに
降圧レギュレータの変更により起動時間を大幅に長時間化することができました。
次回はさらに長時間起動させるためにモバイルバッテリーの検討について記載していきます。
【自作】洗濯物 取り込み忘れ防止機器
目次
はじめに
WIFIモジュールを用いて、洗濯物 取り込み忘れ防止機器を作成します。
仕組みとしてはWIFIルーターとWIFIモジュールの信号強度(RSSI)の値からWIFIモジュールが屋外にあるか、屋内にあるか判定します。
屋内の場合はRSSIが小さく、屋外の場合はRSSIが大きくなります。
取得したRSSIはWIFIモジュール内で屋内外の判定を行い、屋外であれば信号を出力します。出力した信号はWIFIルーター、Webhooks、LINEを経由してスマートフォンへ通知する仕組みとなっています。
Webhooks、LINEの設定はIFTTTを用いて、行っています。
使用したもの
・WIFIモジュール:ESP-WROOM-02 ピッチ変換済みモジュール
・降圧レギュレータ:AMS1117-3.3 DC-DC降圧コンバータモジュール
・モバイルバッテリー:CP-EL(メーカー:SONY) 電池容量 2000mAh
WIFIモジュールはarduinoIDEで開発可能な事と入手しやすいため、
回路図
IC2:AMS1117-3.3 DC-DC降圧コンバータモジュールで5V→3.3Vへ変換しています。
このモジュールにはOUTピンーGND間に22uFのコンデンサが実装されています。
また、動作確認用のLEDも実装されています。
IC1周辺回路はESP-WROOM-02のデータシートの回路図を参照して回路を構成しています。
IO16ピンーRSTピン間のスイッチSW1はDeep Sleepモード切り替え用のスイッチになります。
IO0ピンーGND間のスイッチSW2は書き込みモード、フラッシュモードを切り替えるスイッチです。
消費電力を抑えるため、通常起動時はDeep Sleepモードを用いています。
そのため、IC1へのプログラム書き込み時、通常起動時のSW1,SW2の設定は下記になります。
SW1 | SW2 | |
プログラム書き込み | Open | Short |
通常起動 | Short | Open |
プログラムコード
#include <ESP8266WiFi.h>
#include <time.h>
#define JST 3600*9
//ネットワーク情報
char* ssid = "********"; //””で囲まれた中にWiFiルーターのssid
char* password = "*******"; //””で囲まれた中にWiFiルーターのpassword
//IFTTT情報
const char* host = "maker.ifttt.com";
const char* eventName = "*****"; // ””で囲まれた中にeventNameをいれる
const char* key = "******"; // ””で囲まれた中にkeyをいれる
WiFiServer server(80);//webサーバーをポート80に設定する
String header;//HTTPリクエストのヘッダーを格納する変数
unsigned long currentTime = millis();
unsigned long previousTime = 0;
const long timeoutTime = 2000;
void setup(void)
{
Serial.begin(115200);
Serial.print("Connecting to ");
Serial.println(ssid);
//Wi-Fi接続を開始する
WiFi.begin(ssid, password);
//接続が開始するのを待つ
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
yield();
}
//WiFiServer server(80);で作成したサーバーを開始
server.begin();
configTime( JST, 0, "ntp.nict.jp", "ntp.jst.mfeed.ad.jp");
//時刻反映を正確にするためにdelay必要
delay(5000);
}
void loop(void)
{
time_t t;
struct tm *tm;
static const char *wd[7] = {"Sun","Mon","Tue","Wed","Thr","Fri","Sat"};
t = time(NULL);
tm = localtime(&t);
Serial.printf(" %04d/%02d/%02d(%s) %02d:%02d:%02d\n",
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
wd[tm->tm_wday],
tm->tm_hour, tm->tm_min, tm->tm_sec);
//無線の強さを取得
long rssi = WiFi.RSSI();
Serial.println(rssi);
//無線の強さ かつ 時間を判定
if(rssi<-67&&tm->tm_hour>16){ //無線の強さから屋内外判定 かつ 時間を判定
sendifttt(); //iftttへ信号出力
}
//deep sleepは上限35分(36分以上は不安定になった)
ESP.deepSleep(35*60 * 1000 * 1000, WAKE_RF_DEFAULT);
// スリープモード移行用待機処理
delay(1000);
}
//IFTTTへ送信
void sendifttt(){
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
client.print(String("GET ") + "/trigger/"+ eventName + "/with/key/" + key + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
yield();
}
while(client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
yield();
}
Serial.println();
client.stop();
Serial.println("closing connection");
}
WIFI通信の設定を行い、時刻とWIFI通信の強さを取得し、屋外の通信強度でかつ16時より遅い時間であれば、IFTTTへ信号を送信するようにしています。
その後は消費電力削減のため、35分間deep sleepモードへ遷移するようにしています。
ネットワーク情報のssid、passwordはWIFIルーターに合わせて、設定します。
IFTTT情報はIFTTTの設定に合わせる必要があります。
if(rssi<-67&&tm->tm_hour>16)の部分は
無線の環境に合わせて-67を変更し、16はアラームを出力したい時間へ変更すると出力条件を変更できます。
deep sleepは35分までは正常動作したため、35分と設定しました。
プログラム上の設定時間の単位はμsecになるため、35*60 * 1000 * 1000としています。
出来上がり
・モジュール状態
・ケース組み込み
・モバイルバッテリー+ケース組み込み
・物干しへの設置状態
切断したストッキングへモバイルバッテリーと機器を収納し、
物干しへ組み込んだ
消費電流
消費電流は機器の立ち上がりからdeep sleepへ遷移するまでは70mA~150mAを遷移しています。deep sleep時は実測値で約3mAでした。
2000mAhのモバイルバッテリーを用いた構成であると、deep sleep時だけの電流でも27.7日しか起動できない計算になります。そのため、半年くらい稼働する構成にするには5V→3.3Vへ変換している降圧レギュレータの変更、バッテリー容量の増加を行う必要がありそうです。
おわりに
降圧レギュレータのAMS1117-3.3DC-DC降圧コンバータモジュールはLEDが実装されていることとAMS1117-3.3の自己消費電流がデータシートでは5mA(Typ)、11mA(Max)であるため、長時間動作させるためには変更が必要になります。
次回は降圧レギュレータの変更検討について記載していきます。