sLab-Remo2(スマートリモコン)で遊んでみる その２

前回、slab Remo２でカメラ付きスマートリモコンを作ってみました。

sLab-Remo2(スマートリモコン)で遊んでみる
https://qiita.com/ikegam1/items/0a79694c36d1fd65a1a9

でもこのキット、リモコンの方にもっと振った方がいい。リモコン使いたいのにカメラはいらない。
というわけで、やっぱり[6-1.環境センサ付スマートリモコン](https://kit.socinno.com/6_1_r/)の方にします。

## slab Remo2

https://kit.socinno.com/slab_remo2/

> sLab-RemoはLチカ（LED点滅）と呼ばれる電子工作の基礎から学習することができ、また、スマートリモコンとしてAIスピーカ連携し音声操作で家電を制御できたり、屋外からスマホで家電を制御など応用的な電子工作も学習することができます。
また、カメラ付リモコンも電子工作できますので、AIサイト学習サイトと連携して画像学習や判定などを体験学習することができます。

## 環境センサ付スマートリモコン

https://kit.socinno.com/6_1_r/

![kit.socinno.com_6_1_r_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/c514dfb2-4f7d-3ae5-03e9-4c269be6ddbf.png)

配線はややこい。
人感センサとか温湿度センサもいらんけどいちおうつけとこう。

やりたい事としては実はこれだけでいい。
https://kit.socinno.com/5_3_r/

alexaで電気つけたりTVつけたりしたいだけ。

## IFTTTのアカウントを作っておく

https://kit.socinno.com/5_1_e/

https://ifttt.com/ を開いてsign upしておきます。

## Beebotteのアカウント

https://kit.socinno.com/5_2_r/

https://beebotte.com/　を開いてsign upし、「CreateNew」してChannelを作る。
channel名もresource名もslabremo2にしときました。

## 配線

ここに詳しくあります。
https://kit.socinno.com/2_1_6_r/

![IMG_20200509_174646.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/3b87765d-12c0-633e-9924-193491dae3a6.jpeg)

こうなりました。

## Alexaとの連携

ifttt.comにて、alexaからbeebotteのwebhook apiをたたく設定をします。
ここに書いてあるとおりにすればできる。
https://kit.socinno.com/5_3_r/

![ifttt.com_create_if-say-a-specific-phrase-then-make-a-web-request_sid=9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/2ad6f455-ca6a-68a3-d168-246c72680e62.png)

なお、beebotteのapiは自分の場合は下記のようになってます

```
https://api.beebotte.com/v1/data/publish/slabremo2/slabremo2?token=token_KOREHAHIMITSU
```

あと、スマホのalexaアプリから定型アクションとして*消灯*ってのを追加していて、IFTTTを呼び出せるようにしてる。IFTTT.com側でアカウントリンクができてれば、設定したアクションが表示されるはず。

![Screenshot (2020_05_09 19_09_55).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/1e049f54-bae2-64cb-a427-661ce083697b.png)

*消灯*ってフレーズにしたので、「アレクサ、消灯」って言ったら「わかりました」って返ってきた。

## 焼いてみる

[こちら](https://kit.socinno.com/6_1_r/)から落とせるソースの中の6_1_env_remoってやつをarduino IDEで開きます。

設定を変えたのは、

```cpp:env_remo.ino
// ③MQTT接続及び人感センサーON/OFF（OFF時はfalse）
bool MQTT_CONNECT = true;
```

```cpp:config.h
// ②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サーバ
```

```cpp:config.h
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はライブラリマネージャーからインストールできる。

<img width="589" alt="20200509.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/bfc9cf52-dde2-41e1-59d7-9c08070cf680.png">

やけた。
SPIFFSへの書き込みも忘れずに。

## ブラウザでアクセス

192.168.0.124にしてたのでそれを開きます。

![Screenshot_20200509-190929.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/57dd2043-7acb-991a-6ade-5927e3f21ee9.png)
開いて、設定押して、寝室の電気のリモコン信号を記憶させた状態。

## やってみる・・けどプチトラブル

スマホのボタンはちゃんと機能してて消灯できる。
・・が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}`に変えます。

## やってみる

消せるようになりました。
点灯も使えるようにしないとね。

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/9293128e-3d8f-0226-f788-945c3d3bc131.gif)


定型アクションで電気が消える様子。
「アレクサ、消灯」でも反応してます。
むき出しのESP32をなんとかしたいですね。
ひとまずはグルーガンで固めるか。