秋月電子通商で売っているESP32-DevKitC ESP-WROOM-32開発ボードでHTTPS通信ができたので、IFTTTを使ってLINEに通知を送ってみました。
今回はLINEでの通知に、LINE BusinessのMessaging APIとは別の、LINE Notifyを利用します。
LINE Notifyは片方向の通知しか利用できず、LINEのユーザーアイコンのようなものも設定できませんが、通知先にトークのグループ、または「1:1でLINE Notifyから通知を受け取る」を設定するだけでお手軽に利用することができます。
動作環境
ESP32側
-
ESP32-DevKitC ESP-WROOM-32開発ボード
- Arduino IDEを利用
-
MacでESP32のLチカ(Arduino IDE版)を参考にインストール
- 秋月で売られているESP32-DevKitC ESP-WROOM-32開発ボードでは書き込み時のボタン操作は不要でした
-
MacでESP32のLチカ(Arduino IDE版)を参考にインストール
- WiFi(WPA2-PSK, 2.4GHz)の接続先
- ルーター(AtermWG1800HP2)
- ESP32との距離は4mくらい
- iPhone 6s (テザリング)
- テザリングをオンオフしたりしても再接続するようにした
- ルーター(AtermWG1800HP2)
- LED (使用ピン: IO2, GND)
- 適当な抵抗も入れておいてください
-
PIRモーションセンサー (使用ピン: IO5, GND, 5V)
- 検出範囲内で動きがあると出力が2秒程度Highになる
- Arduino IDEを利用
IFTTT側
- Maker Channel + LINE (Notify)
製作したスケッチ
スケッチの設定
config.h
には、SSIDとWPAキー、IFTTTのMaker ChannelのEventとKeyを設定します。
certificate.h
には、 maker.ifttt.com
の証明書を予め設定しておきます。
リポジトリ内の certificate.h
には maker.ifttt.com
の証明書がセットされていますが、 maker.ifttt.com
以外にアクセスしたい方は、以下のFirefoxのスクリーンショットを参考にしてください:
説明
スケッチ
このスケッチはスケッチの例の WiFiClientSecure を参考にしています。
PIRモーションセンサーがON/OFFを繰り返すため、 loop
関数ではセンサー反応後、約10秒はセンサーの反応を無視するようにしています。あまりスケッチを変更することなく、タクトスイッチ等にも対応できるかと思います。
LEDはPIRモーションセンサーが反応した際などに点灯させたり、エラー発生時に点滅させたりしています。
LINE Notify
うまく動作すると、このような感じでLINEに通知が来ます。
今回は活用していませんが、ESP32側で取得した値をLINEに通知することもできます。
今回やりたかったけど出来なかったこと
Google Apps Scriptという、JavaScriptを書いてAPIを作ることができるサーバーサイドスクリプト環境をESP32から利用してみようと思ったのですが、APIにアクセスしようとするとリダイレクトがあり、うまくいきませんでした。
調べてみるとHTTPSRedirectというWiFiClientSecureを拡張してリダイレクトに対応したライブラリもあるようなのですが、うまく使うことができませんでした。
Google Apps ScriptはHTTPSも必須なのですが、実はIFTTTのMaker ChannelはHTTPSじゃなくても良いので、今回はあまりHTTPSにする意味はなかったかもです...
実際、 #include <WiFiClientSecure.h>
を #include <WiFiClient.h>
に変更、 443
番を 80
番に変更して証明書関連をコメントアウトしても問題なく動いてしまいます。
IFTTTのMaker Channel以外でHTTPSを利用したい方がいらっしゃったら、この情報を活用していただけたらと思います。
ESP32を触ってみて
- 2017年4月現在、ESP8266に比べると情報がとにかく少ないのが実情です
- ESP8266で十分な場合が多いと思います
- 正直なところ、Arduino IDEでの開発ではESP32の性能をうまく引き出せないような気がします
- とはいえ、SRAMの容量が倍増している恩恵は受けられる
- WiFiはRaspberry Pi 3のオンボードWiFiと違い、ちゃんと飛ぶ感じでした
-
ESP32-DevKitC ESP-WROOM-32開発ボードを買われる方は、ブレッドボードの幅に注意
- サンハヤト SAD-101 ニューブレッドボードが良さそうです