IFTTTの設定方法(【自作】洗濯物 取り込み忘れ防止機器)

目次

 

はじめに

先日製作した洗濯物 取り込み忘れ防止機器のIFTTTの設定方法について記載がなかったため、記載します。

 

nandechang.hatenadiary.com

 

洗濯物 取り込み忘れ防止機器の仕組みの中でIFTTTを使用している部分は、洗濯物 取り込み忘れ防止機器内のWIFIモジュールから出力した信号をWebhooks、LINEを経由してスマートフォンへ通知する部分です。

f:id:nandechang:20220319211520p:plain


IFTTTの登録の方法

https://ifttt.com/へアクセスし、start for freeをクリックする。

f:id:nandechang:20220403153122p:plain

②下記のいずれかでアカウントを作成する

 ・APPLE ID

 ・Google ID

 ・Facebook ID

 ・email アドレス

私はGoogle IDで登録しました。

f:id:nandechang:20220403153143p:plain

③「Welcome to IFTTT」というページに遷移します。

 特に選択せず、ブラウザを閉じても、戻っても大丈夫です。

 私はブラウザの戻るボタンを押しました。

f:id:nandechang:20220403153206p:plain



IFTTTでの機能を作成(Appletを作成)

④IFTTTアカウントのトップページで「Create」を選択

f:id:nandechang:20220403153226p:plain

⑤「If This」を選択し、IFTTTの機能部分が動作する条件を作成する。

f:id:nandechang:20220403153243p:plain

⑥検索窓に「webhooks」と入力し、下に表示された「webhooks」を選択する。

 条件で用いるサービスを選択しています。

f:id:nandechang:20220403153304p:plain

⑦「Receive a web request」を選択する

f:id:nandechang:20220403153320p:plain

⑧「Connect」を選択する

f:id:nandechang:20220403153339p:plain

⑨「Event Name」へ適当な名前を入力し、「Create trigger」を選択する

f:id:nandechang:20220403153359p:plain

⑩「Then That」を選択し、IFTTTの機能部分で実施したいことを作成する。

f:id:nandechang:20220403153424p:plain

⑪検索窓に「line」と入力し、下に表示された「LINE」を選択する。

 通知機能で用いるサービスを選択しています。

f:id:nandechang:20220403153448p:plain

⑫「Send message」を選択する

f:id:nandechang:20220403153506p:plain

⑬「Connect」を選択する

f:id:nandechang:20220403153554p:plain

⑭LINEアカウント入力してログインする

f:id:nandechang:20220403153611p:plain

⑮「同意して連携する」を選択し、LINE連携する

f:id:nandechang:20220403153722p:plain

⑯「LINE account」を選択

 「Recipient」でどのトークに通知したいか選択する

 「Message」へ通知したいメッセージを入力する

 「Create action」ボタンを押す

f:id:nandechang:20220403153757p:plain f:id:nandechang:20220403153820p:plain

⑰「Continue」を選択する

f:id:nandechang:20220403153907p:plain

⑱「finish」を選択する

f:id:nandechang:20220403153936p:plain



Webhooks Keyの確認

①トップページで「My Applets」を選択

f:id:nandechang:20220403154004p:plain

②先ほど作成したAppletを選択

 

③「Webhooks」を選択

f:id:nandechang:20220403154056p:plain

④「Documentation」を選択する

f:id:nandechang:20220403154207p:plain

⑤一番上に記載されている「Your key is:****」を確認する

****部分がKeyになります。

 

WIFIモジュール:ESP-WROOM-02のプログラムコードにKey,eventNameを入力

確認したKey、上記の「IFTTTでの機能を作成」⑨で入力したeventNameをWIFIモジュール:ESP-WROOM-02のプログラムコードに入力すると、IFTTTの機能が実行されます。

 

おわりに

上記の設定を行うことで、洗濯物 取り込み忘れ防止機器内のWIFIモジュールから出力した信号をWebhooks、LINEを経由してスマートフォンへ通知することができるようになります。

f:id:nandechang:20220403154700p:plain

 

モバイルバッテリーの変更2(【自作】洗濯物 取り込み忘れ防止機器)

目次

 

はじめに

先日製作した洗濯物 取り込み忘れ防止機器のモバイルバッテリーの変更を前回に引き続き検討しました。

洗濯物 取り込み忘れ防止機器のdeep sleep時の消費電流は0.058mAであるため、低電流モードが搭載されているモバイルバッテリーを選定する必要がありました。前回検討したモバイルバッテリーは、低電流モードでも消費電流が小さいと数時間経過後に自動停止する仕様であったため、洗濯物 取り込み忘れ防止機器には適していないことが分かりました。

 

nandechang.hatenadiary.com

 

今回選定したモバイルバッテリーは前回とは異なるメーカーを選定しました。

 

メーカー: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になり、出力を継続し続けることができました。

f:id:nandechang:20220407072715p:plain



おわりに

今回購入したモバイルバッテリー エレクサーモバッテリー10000mAh(BT100) メーカー:イーブンリバー(cheero)は、洗濯物取り込み忘れ防止機器の動作に適していました。

これにより、10000mAhのモバイルバッテリーが使用でき、deep sleep時だけの電流では7183日起動できる計算になります。実際にはdeep sleep以外の動作が35分間隔で動作するため、7138日起動することはできません。(deep sleep以外の動作は30秒程度、70mA~150mAで動作します)

モバイルバッテリーの変更(【自作】洗濯物 取り込み忘れ防止機器)

目次

はじめに

前々回製作した洗濯物 取り込み忘れ防止機器のモバイルバッテリーの変更を検討しました。

前回製作時に使用した2000mAhのモバイルバッテリー:CP-EL(メーカー:SONY)は購入してから年数が経っているため、劣化により電池容量が減少していることと容量が2000mAhと少し容量が小さいため、変更を検討しました。

 

nandechang.hatenadiary.com

 

モバイルバッテリーの低電流モード

前回実施した降圧レギュレータの変更により、洗濯物 取り込み忘れ防止機器の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は機器が接続されていないと判断される電流値以下であることが分かりました。

f:id:nandechang:20220407072548p:plain



 

おわりに

今回検討したモバイルバッテリーは、洗濯物取り込み忘れ防止機器の動作には適していないことが分かりました。

次回もひき続き 洗濯物取り込み忘れ防止機器に使用可能なモバイルバッテリーを調査していきます。

DC-DC降圧レギュレータ変更(【自作】洗濯物 取り込み忘れ防止機器)

目次

 

はじめに

前回製作した洗濯物 取り込み忘れ防止機器の5V→3.3Vへ変換している降圧レギュレータの変更について、記載していきます。

前回製作時に使用した降圧レギュレータ:AMS1117-3.3  DC-DC降圧コンバータモジュールはLEDが実装されていることとAMS1117-3.3の自己消費電流が大きいため、deep sleep時でも実測値で3.08mA消費していました。

2000mAhのモバイルバッテリーを用いた構成であると、deep sleep時だけの電流でも27.7日しか起動できない計算になるまた、レギュレータを変更します。

変更前の構成は下記の記事に記載しています。

 

nandechang.hatenadiary.com

 

回路図

f:id:nandechang:20220416142340j:plain

変更するのは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のセラミックコンデンサを実装しました。

f:id:nandechang:20220416142410j:plain

DCDC降圧レギュレータ変更

f:id:nandechang:20220331202233p:plain



 

 

消費電流

deep sleep時の消費電流は実測値で0.058mAになりました。

2000mAhのモバイルバッテリーを使用する構成であると、deep sleep時だけの電流では1436日起動できる計算になります。実際にはdeep sleep以外の動作が35分間隔で動作するため、1436日起動することはできません。(deep sleep以外の動作は30秒程度、70mA~150mAで動作します)

 

おわりに

降圧レギュレータの変更により起動時間を大幅に長時間化することができました。

次回はさらに長時間起動させるためにモバイルバッテリーの検討について記載していきます。

 

【自作】洗濯物 取り込み忘れ防止機器

目次

 

はじめに

WIFIモジュールを用いて、洗濯物 取り込み忘れ防止機器を作成します。

仕組みとしてはWIFIルーターWIFIモジュールの信号強度(RSSI)の値からWIFIモジュールが屋外にあるか、屋内にあるか判定します。

屋内の場合はRSSIが小さく、屋外の場合はRSSIが大きくなります。

      f:id:nandechang:20220319191256p:plain

 

取得したRSSIはWIFIモジュール内で屋内外の判定を行い、屋外であれば信号を出力します。出力した信号はWIFIルーター、Webhooks、LINEを経由してスマートフォンへ通知する仕組みとなっています。

Webhooks、LINEの設定はIFTTTを用いて、行っています。

f:id:nandechang:20220319211520p:plain

使用したもの

・WIFIモジュール:ESP-WROOM-02 ピッチ変換済みモジュール

・降圧レギュレータ:AMS1117-3.3  DC-DC降圧コンバータモジュール

WIFIルーター

・モバイルバッテリー:CP-EL(メーカー:SONY) 電池容量 2000mAh

 

WIFIモジュールarduinoIDEで開発可能な事と入手しやすいため、

ESP-WROOM-02を用いてます。

 

 

回路図

f:id:nandechang:20220416142340j:plain

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としています。

 

出来上がり

・モジュール状態

f:id:nandechang:20220325182400p:plain    f:id:nandechang:20220325182714j:plain

 

・ケース組み込み

f:id:nandechang:20220325183048j:plain

 

・モバイルバッテリー+ケース組み込み

f:id:nandechang:20220325183234j:plain


・物干しへの設置状態

切断したストッキングへモバイルバッテリーと機器を収納し、

物干しへ組み込んだ

f:id:nandechang:20220325181441j:plain

 

消費電流

消費電流は機器の立ち上がりから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)であるため、長時間動作させるためには変更が必要になります。

次回は降圧レギュレータの変更検討について記載していきます。