前回、slab Remo2でカメラ付きスマートリモコンを作ってみました。
sLab-Remo2(スマートリモコン)で遊んでみる
https://qiita.com/ikegam1/items/0a79694c36d1fd65a1a9
でもこのキット、リモコンの方にもっと振った方がいい。リモコン使いたいのにカメラはいらない。
というわけで、やっぱり6-1.環境センサ付スマートリモコンの方にします。
slab Remo2
sLab-RemoはLチカ(LED点滅)と呼ばれる電子工作の基礎から学習することができ、また、スマートリモコンとしてAIスピーカ連携し音声操作で家電を制御できたり、屋外からスマホで家電を制御など応用的な電子工作も学習することができます。
また、カメラ付リモコンも電子工作できますので、AIサイト学習サイトと連携して画像学習や判定などを体験学習することができます。
環境センサ付スマートリモコン
配線はややこい。
人感センサとか温湿度センサもいらんけどいちおうつけとこう。
やりたい事としては実はこれだけでいい。
https://kit.socinno.com/5_3_r/
alexaで電気つけたりTVつけたりしたいだけ。
IFTTTのアカウントを作っておく
https://ifttt.com/ を開いてsign upしておきます。
Beebotteのアカウント
https://beebotte.com/ を開いてsign upし、「CreateNew」してChannelを作る。
channel名もresource名もslabremo2にしときました。
配線
ここに詳しくあります。
https://kit.socinno.com/2_1_6_r/
こうなりました。
Alexaとの連携
ifttt.comにて、alexaからbeebotteのwebhook apiをたたく設定をします。
ここに書いてあるとおりにすればできる。
https://kit.socinno.com/5_3_r/
なお、beebotteのapiは自分の場合は下記のようになってます
https://api.beebotte.com/v1/data/publish/slabremo2/slabremo2?token=token_KOREHAHIMITSU
あと、スマホのalexaアプリから定型アクションとして消灯ってのを追加していて、IFTTTを呼び出せるようにしてる。IFTTT.com側でアカウントリンクができてれば、設定したアクションが表示されるはず。
消灯ってフレーズにしたので、「アレクサ、消灯」って言ったら「わかりました」って返ってきた。
焼いてみる
こちらから落とせるソースの中の6_1_env_remoってやつをarduino IDEで開きます。
設定を変えたのは、
// ③MQTT接続及び人感センサーON/OFF(OFF時はfalse)
bool MQTT_CONNECT = true;
// ②Wi-Fi設定
const char *ssid = "himitsu";
const char *password = "himitsu";
IPAddress ip(192, 168, 1, 124); // IPアドレス(本機が利用するIP)
IPAddress gateway(192, 168, 1, 1); // デフォルトゲートウェイ
IPAddress subnet(255, 255, 255, 0); // サブネットマスク
IPAddress DNS(192, 168, 1, 1); // DNSサーバ
const char *clientID = "esp32_001";
const char *channelToken = "KOREHAHIMITSU";
const char *topic = "slabremo2/slabremo2";
const char *beebottle_ca_cert = \
"-----BEGIN CERTIFICATE-----\n" \
のあたり。
IFTTTは直接は触らないので設定スルーしてます。
DHT.h、PubSubClient.h、ArduinoJson.hはライブラリマネージャーからインストールできる。

やけた。
SPIFFSへの書き込みも忘れずに。
ブラウザでアクセス
192.168.0.124にしてたのでそれを開きます。
開いて、設定押して、寝室の電気のリモコン信号を記憶させた状態。
やってみる・・けどプチトラブル
スマホのボタンはちゃんと機能してて消灯できる。
・・がIFTTT経由のやつは動いてるように見えるが電気が消えてくれない。。
なんでだ??
cntrem
sendFile:/0
sendData:167:End
Web send OK
Message arrived [slabremo2/slabremo2]
{"data":"1","ispublic":true,"ts":1589022357143}
payload: 1
sendFile:/1
sendData:335:End
MQTT send OK
cntrem
sendFile:/0
sendData:167:End
Web send OK
cntrem
sendFile:/1
sendData:335:End
Web send OK
とシリアルモニタしてみたら・・、{data:1}
だと二個目のボタンが押されてるなー。
ボタン①: 167
ボタン②: 335
って記憶されてるみたいだけど、MQTT経由だと335のデータが送信されてる。
というわけでIFTTTの画面から送るデータを{data:0}
に変えます。
やってみる
消せるようになりました。
点灯も使えるようにしないとね。
定型アクションで電気が消える様子。
「アレクサ、消灯」でも反応してます。
むき出しのESP32をなんとかしたいですね。
ひとまずはグルーガンで固めるか。