話題のIoTと言う用語がある
これはインターネット等を通して機器同士の通信を行い遠隔で操作出来る仕組みらしい
このIoTをWi-Fi接続可能なESP32なら比較的容易に実現可能なようだ
ということで試してみる
方法はいくつかあり
・ESP32内でWebサーバーを起動し操作画面を用意してそこから操作する
・BlynkというIoT用スマホアプリを利用してそこから操作する(類似アプリは他にもある)
今回は後者を試すことにする
ESP32-S3向けのソースは以下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/* Blynk_LChika ESP32-S3-DevKitC-1 WiNCHaN */ #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "XXXXXXXXXXXX" #define BLYNK_DEVICE_NAME "ESP32" #define BLYNK_AUTH_TOKEN "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h> char auth[] = BLYNK_AUTH_TOKEN; char ssid[] = "WiFiのSSID"; char pass[] = "WiFiのパスワード"; int V97_Value = 0; BLYNK_WRITE(V97) { int pinValue = param.asInt(); V97_Value = pinValue; } void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); #ifdef RGB_BUILTIN if (V97_Value == 1){ neopixelWrite(RGB_BUILTIN,HIGH,0,0); } else { neopixelWrite(RGB_BUILTIN,LOW,0,0); } #endif } |
BLYNK_TEMPLATE_ID・BLYNK_DEVICE_NAME・BLYNK_AUTH_TOKENの3つは
以下のメールが送られてきたら(先にアプリDL&テンプレート作成しないと来ないかも…)
マウスカーソルの位置のhereを押下すると取得出来るのでそれをソースに記述する
SSIDとPASSはお使いのルータのWiFi接続するものを記述
ここまで出来たらESP32へ書き込む
その後アプリをダウンロード
Android版
iOS版
現時点ではあまりアプリの使い方を理解していないため
簡単な説明になってしまうのはご了承頂きたい
Blynkアプリを起動しサインインからアカウントを作成
アプリからボードへFind~で接続
その後テンプレートを作成
デバイス(ボード)の設定
画面の設計
今回はLEDとスイッチボタンをセットし
ポートはV97(ESP32のRGB LEDのポート)をセットした
そしてこの画面を起動すると…
こんな感じのボタンが1つだけある状態に
ボードに正常に接続されていればOFFボタンを押下
(利用出来ない場合は起動画面でOFFLINEになっている)
画面上のLEDが点灯し同時にESP32のRGBも点灯するようになる
点灯しない場合はテンプレート選択の画面で
OFFLINEになっていないか確認
Blynkを利用した場合スマホのWiFiを切って
スマホの回線にしても操作出来る
つまりスマホさえ繋がればどこからでも制御出来る
これは結構なメリットではないかと思われる
Blynk ここまででお気づきの方も居るかもしれないが
無料アプリではあるもののアップグレードは有料(月額)である
おそらく違いは画面にボタンなどの配置するオブジェクトで
アップグレードと表記があるものは有料
なにも記載がないものは無料で使える形のようだ
有料の方が多彩な画面を作れるだろうが趣味程度であれば
必要最低限の操作は出来るので無料でも十分だろう
ちなみに類似サービスとしてArduino IoT Cloudと言うものがある
こちらはArduino公式のWi-Fi載ったボードのみ(MKR~)かと思っていたのだが
どうやら最近ESP32も対応を始めた模様
無料アカウントだとAPIが使えない等の制限があるようだが
(別の方法で似たようなことは出来るらしい)
機会があれば触ってみたいと思う
コメント