スマートホームへ向けて色々 でてきて大変だが、つまるところまずは、WIFIでつなぎたい。
マイコン本体は、楽しい状態に動作する。
そこでだ。
ネットに繋げて IFTTTへイベントを送りたい
実際やってみると、5分程度で完了
これはこれは、やばすぎるぐらい 簡単に動く。
自分は、CP2102 がやはり、安定しているようだ。
ESP-12E

まず手順として、NEO-M8Nはつなげてない ^_^>
RFID-RC522をつなげて、タグは認識できた
その状態で、今度は単純に、以下のことをしたい。
ソースは、まだ作成していない。
実は、楽しくて仕方がない。
激安すぎるマイコン! 電力も極小、動作も機敏
思った以上に、何もしない。
余計な接続もしない。
一動作毎に、完成したほうが勉強になるので。
やりたいこと
電源が入ると、自宅のWIFIに接続
接続が完了したら、Webhooks に “ESP8266” の名前のイベントを送りたい。
IFTTTがイベントを受け取ったら登録されたメールに送る。
この動作
IFTTTの準備

この右上、Documentation をクリック

この赤ラインに一意のキーが表示される。
これ重要、タグ毎にここを制御することになる。
タグによって、ドアを開ける、締める、家の電気を消す、監視カメラを起動する等、完全に操作できるので
青がイベント “ESP8266″とした。
赤が、一意のキー。
これは、アカウントごと違う。
キーも、暗号処理されているので例えば、どれかを一つ変えたとしても、合致することはないので安心する。
そして、それ以外に、With an optional JSON body of:
に同時に、3つのキーを送れるので、ソースもそのようなっている。

アプレットを作成、このようになればOK
後は、以下をコンパイルして送るだけ
※自宅はMACセキュリティを入れているので登録
※IP固定は、ESP8266Wiでできるようだが、失敗するというので
※ここは、別途登録した。
#include <ESP8266WiFi.h>
#define IFTTT_MAX_SIZE_STRING 512
const char* ssid = “ここには自宅のSSIDを入れる”;
const char* password = “ここにはパスワードを入れる”;
const char* host = “maker.ifttt.com”;
void setup() {
Serial.begin(115200);
//LED対応
pinMode(12, OUTPUT);
delay(100);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print(“Connecting to “);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi connected”);
Serial.println(“IP address: “);
Serial.println(WiFi.localIP());
// Connect to IFTTT
Serial.print(“connecting to “);
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println(“connection failed”);
return;
}
// This will send POST to IFTTT server
char str[IFTTT_MAX_SIZE_STRING] = {0};
//送り込む内容を入れる
char v1[16] = “”;
char v2[16] = “”;
char v3[16] = “”;
char header[100] = “POST /trigger/ESP8266/with/key/ここに赤ラインを貼り付ける HTTP/1.1\r\n”;
const char * host = “Host: maker.ifttt.com\r\n”;
char contentLen[50] = {0};
const char * contentType = “Content-Type: application/json\r\n\r\n”;
char valueData [150] = {0};
sprintf(valueData,”{\”value1\”:\”%s\”,\”value2\”:\”%s\”,\”value3\”:\”%s\”}\r\n”,v1,v2,v3);
sprintf(contentLen,”Content-Length: %d\r\n”,strlen(valueData));
sprintf(str,”%s%s%s%s%s”,header,host,contentLen,contentType,valueData);
client.print(str);
delay(10);
}
void loop() {
//LED対応
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
delay(500);
}
シリアルモニターに、表示されるのを確認 送られました
簡単。
^_^?
テストには、このチップのリセットボタンを押せば良い。
このチップの良いところは、リセットとフラッシュが付いているところ。
すぐにテストができる。
電力が供給されると、うまくつながらないときが有るので
これでわかった、タグによるドアを開く、閉じるは簡単になりました。
ソースに、RFID-Rc522からタグを読むとそのタグIDが読めます>
そのタグには、別途 キーを埋め込めるのでこの2つで誰の所有するキーかわかるわけで ^_^>
コレの出番ですね。
RFID-RC522
フリーのNFCタグ コレに書き込みます。
フリーのNFCタグ コレに書き込みます。
例えば、スマートフォンに貼る。当てれば、ドアが開きます。
靴とかに貼ると靴でドアを開けるとこができます。
シールは、フリーのNFCタグなので、制限がないため、ちょっとした工夫も必要かもしれない。
付いてきた、青タグのほうが良いかもしれませんが・・
手が離せないってとき大切ですね。
コレなら、車のドア開閉にも使えそうです。
大きさ的には、評価モジュールのため少々大きく、WIFIモジュールとRFID-RC522
で動作するとわかると、もう少し小さなモジュールで作成したほうが良いか迷うぐらい。
ちなみに、Micro USBの5Vですべて動作するので、あのS_ny F_lica 改造より十分優しくて、汎用性もあり、OSが不要でスマートです。
防水も可能でしょう、RFID-Rc522は、薄くリードを長く取れるので場所も選ばない。
ICタグによる、ドアキーモジュール、制作時間30分程度かな
1000円も出せば2台分にもなる。
操作できるのは、
セサミ スマートロック本体+WIFIだけですね。
他のスマートロックは、そもそもIFTTTやこの様なタグキーを使えるようになっていない。
残念。 逆に言うとこれ選択して正解でした。
不都合なところは、そのほとんど 他の方法で解消できるスグレモノ。でした
結論として、幾ら位置精度を上げても、LINEビーコンですら
数メートルの誤差が含んでる。
その上、近隣には、WIFIが混線状態、やっぱりその地域毎の対応は自分で行うほうが簡単解決でした。