Wio Terminalが使えるようになったので、早速、IoTらしいことをすべしということで、今回は Blynk という「IoTプラットフォーム」を使ってみることにいたしました。私のようなものが「お試し」する程度ならば無料のクラウドサービスであります。それなりの手間がかかるものと想像していたのですが、やってみたら本当にお手軽、「5分でIoTできる」と豪語しているのは本当でした。
※「IoT何をいまさら」投稿順Indexはこちら
年寄りには、またも衝撃、時代の進化を実感いたしました。
スマホの操作で、Wio TerminalのGroveポートに接続したGrove LEDモジュールを点灯する
などという「マイ・ファースト・Blynkアプリ」、一撃なんであります。まあ、いろいろライブラリをダウンロードしてビルド環境を整えるといった作業は必要ですが、それらが整っておれば、本当、5分でそういうことができます。ただただビックリ。
IoTの先っぽ、デバイス側は仕入れたばかりのWio Terminalと、Grove LEDモジュールであります。ぶっちゃけWio Terminalの中にもLEDはありますが、外から見ずらいのと、ちゃんと外部に信号でている信号が制御できる、ということをことさらに見せたいのでこれを接続。こんな感じ。
このWio Terminalには、Seeed社のConnecting to Blynkというページのサンプルプログラムを書きこんであります。しかし、そのサンプルプログラムたるや、実質3行。引用させていただくと、こんな感じ。
void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); }
まあ、ライブラリが「何をやるか」以前のインフラ的な設定を皆やってくれてしまうので、ほとんど何も準備はいりませぬ。このプログラムを起動すると、デバッグ用のシリアルポートには、以下のような起動メッセージが表示されてまいります。これにてクラウドへの接続はOKっと。
さて、順番が前後してしまいましたが、Wio Terminal側のプログラムをDeviceのFlashに書きこむ前に
先にスマホのアプリ側を用意しておく
必要があります。後から実際の制御の変更はできるので、とりあえず相手をともかく設定しておかけばなりません。これは、デバイスがクラウドと「握る」ための
Auth-Token
というものを発行してもらう為です。さらに言うなら、アプリ作る前に、Blynkへの登録(要メールアドレス)が必要です。ここで登録したメールアドレスにTokenが送られてくるので、これをデバイス側のプログラムに書きこんでおく必要があるからです。
とりあえずWioSampleという名で作成したアプリが、Wio Terminal上で動作しているプログラムと「握れる」とスマホのアプリ上に以下のような表示がでます。
これだけだと接続している、というだけで何もできないので、ウイジットというものをアプリ上で配置します。今回は、ボタン・ウイジットというものを1個。そのボタンを押すと実デバイスの特定のピンがHIGHになる、という塩梅です。ボタン・ウイジットの設定画面の先頭部分が下です。複雑なソフトをつくるためにはバーチャルピン(実際には存在しないピンとのやり取りを定義して、そのピンを介してデバイス側のソフトといろいろやる)などという概念も使えるのですが、今回は、実デバイスの物理的に存在するピンと1対1対応にいたします。Wio Terminalの2つのGroveポートのうち、右側のデジタル/アナログ兼用GroveポートにGrove LEDモジュールを接続します。そうするとArduino環境での呼び方のD0端子がLEDドライバのMOSFETに接続することになるので、D0端子をスイッチとして使うよう設定をしました。
こういう実ピンをON/OFFする程度であれば、Wio Terminal側のソフトは先ほどのサンプルソフトのまま変更の必要はありません。なんとお楽な。
実際、アプリ側のボタン・ウイジットの作成は、Wio Terminal側は「走っている」状態のままで行ってみましたが、問題ありませんでした。
それでは、スマホの画面で、配置したD0ボタンを押してみます。押している間、LEDが点灯します。離すと消灯。スマホとWio Terminalは写真をとるために隣あわせですが、間には何もありませんよ。当然、離れたところから操作できるというわけです。
いやあ、このお手軽さは衝撃的。いままでBlynkに触っていなかったのが悔やまれます。せっかくGroveモジュールもいろいろ手にいれているので、センサなども接続して、Blynkしてみるってもんですかい。
Blynkするためのプログラムのお作法
もあるので学びたいと思います。
なお、Blynk側からは、Wio TerminalはオリジナルのArduino UNOに見えてます。プログラム作成の敷居を下げるためのSeeed社の仕掛けなのでしょう。Armコアだし、Flashメモリの容量など各段にデカイし、端子も多いのだけれども。