こんにちわ。
先日とうとうインフルBを被弾してしまい、一週間ほど臥せっておりました。この季節ホントいろいろ萎えます。早く夏来ないかな。
さて、そんな冬に差し掛かる昨年秋のころ、SeeedさんからWio LTEという面白いプロダクトのハンズオンが企画され一瞬沸き立ったのですが、その時はそれほどLTEの必要性もなく、またLTEモジュール搭載のせいもあってかややお高めの値段設定もあってスルーしておりました。
非公式イベント「Wio LTE体験会 #2」https://t.co/lTSL1tZlur#Seeed で #SORACOM !
— SeeedJP (@SeeedJP) 2017年11月4日
が、実はその裏に自分にとってとても要件にフィットしやすいデバイスがすでにラインナップあったことを先日のHack-Chu2018の際に知りました。それがWio node。
巷ではすでに試してみた記事がたくさんあり、ネタ的には今更感がありますが、個人的にちょうどWio nodeの仕様にピタリくる要件があり、あーこれは一度試してみないと!
ってことで試してみました。
Azure 各種サービスとWio nodeでPCを物理制御したい
今回は明確に用途が決まっており、事務所に設置してある特殊用途PC(謎)の・・・
- 状態監視
- インターネット経由の電源制御
が目的です。
このPCが結構めんどくさくて、常時動いていてほしいんだけどそこそこの負荷で動いているので時々困ったことにハングアップするという曲者。
ハングアップ状態を検知したうえで、リモート(TeamViewerなりリモデ)での復旧が困難と判断されたときに、電源を強制遮断し再起動するという荒業を担ってもらいます。
構成図はこんな感じ。
AzureのLogicAppsを中心に、いろいろと都合のいいサービスにつなげている状態です。
通常自分が見るUIは、監視用にPowerBIのリポート、緊急時に通知が来たBot経由で電源制御を行うといった感じです。
まずは図の緑枠のWio node単体の動作テストまで。
最終的には、温度センサーからの取得データをAzure上に蓄積し、さらには電源制御をBot経由で実装する予定です。
ということでとにもかくにも物がなけりゃってことで注文しました。今回はマルツオンライン。
で、届いたのがこちら。
Wio node二つに、温度計測用のセンサーが二つ、電源制御用のリレーが二つです。制御したいPCは3台あるのですが、とりあえず2台でテスト運用してみることに。
Wio nodeの設定
まずはWio nodeをWeb APIから操作するための設定を行います。
これが結構ハマったなぁ・・・
流れはこんな感じ
- Wio nodeに電源投入
- スイッチ長押しして設定モードに突入
- 設定用アプリを立ち上げ設定開始(iOSまたはAndroid)
- 設定完了したらREST API叩いてテスト
これだけのはずが・・・当初自宅のWi-fiのセキュリティ設定のまずさもあって苦戦。結局Android版ではNGのまま、iOS版で設定完了。以下その手順
まずはWio nodeに電源投入。
電源用のカプラを用いるか、MicroUSBにモバイル電源を用意する。電源用のカプラに二次電池を搭載した場合、このMicroUSB端子からの充電にも対応する模様。おもしろい。
Android版設定手順(結局設定完了せず)
Google Playで「Wio link」で検索し、アプリをインストールします。
上記ではすでに1デバイス登録されていますが、新規登録時は右肩の「+」をクリックします。
導入するデバイスを選択します。
今回は当然「Wio node」。
Android版はこのまま「Next」をクリック
Wio nodeに接続するWi-fiを選択します。
選択したWi-fiのパスワードを入力します。
(※なぜかこのwi-fiパスワードがうまく通らない瞬間もあった)
Wi-fi接続が完了すると、該当するWio nodeが表示されるので、クリック。
AndroidからWio nodeへファームの更新処理が渡されている(と思われる)
同様にWi-fiのパスワードが渡される(と思われる)
この後、ここまで緩い点滅だった青LEDがはっきりとした短滅に代わるため、Wio node内部ではセットアップができているのではと思われる。
あとはパスワード設定したWi-fi経由でAndroid↔Wio node間で通信が成立すればセットアップ終了と思われるのだが…
残念ながら何度やってもここで終了。
この時点でコマンドラインツールの存在を知るも、一旦手持ちのiOS機でテストすることを思い立ちiOSで設定実施。
iOS版設定手順(正常に設定完了)
Android同様右上の「+」から設定開始。
同じようにWio nodeを選択し
ただしここでiOS版はちょっと動きが異なる。
Android版は上位接続用のwi-fiの設定が求められるが、まずWio nodeへの接続が必要になる。
しかも、画面の「Goto wifi list」を押しても無情に
「手動でiOSとWi-fi接続してくれ」とダイアログが出るだけ。
仕方がないので、iOSのWi-fi設定からWio nodeを探し出して接続する。
接続後設定画面に戻って再度「Goto wifi list」をタップすると画面が切り替わり、ようやくWi-fiの接続リストが表示される。
該当のwi-fiをタップし
パスワードを入力し「Join」をタップ。
するとAndroid版と同じようにWio nodeに接続しセットアップを開始するのだが・・・・
あっけなく設定が完了する。
この時の青LEDの動きはAndroid版と同じなので、検証は必要だがAndroid版の場合、セットアップ後のキャッチアップがうまくいっていないのでは?と思われる。
すでに一つ目のセットアップが完了しているが、二つ目も無事登録された。(両方とも、Android版で設定→NG→iOS版で設定→OKという流れ。)
コマンドラインツール
上記のパターンでiOS版を用意できない場合は、コマンドラインツールも用意されている。
今回はテストしていないが、八方塞がった場合はお試しあれ。
https://github.com/Seeed-Studio/wio-cli
REST API
すでに長くなっているけど、ここからが本番。
Wio nodeの最大の便利ポイントが、Seeed社が運用するクラウドサーバ経由で、セットアップしたWio nodeの操作ができること。
しかもわかりやすいREST API経由。
自分のWio nodeデバイス固有のアクセストークンが含まれたURLを、各デバイスに用意された仕様に基づいて投げてやると・・・
こいつの場合はリレーの制御。
ON=1なのでパラメタ設定して「POST」。
ほどなくしてレスポンスあり。
例によってJSONなので、PG処理も簡単。
実際のHWの動き。
バッテリーに接続されたLEDが、リレーON(1)で点灯。
(基板上の小さなLEDもONしているのがわかる)
リレーOFF(0)を送ってやると、OFFになる。
ネット経由ということもあり若干の遅延はあるものの、数秒あるかないか。今回の用途では十分なレスポンス。
初期セットアップに手間取ったものの、そこから動作検証まではものの3分。これは便利。
次回は、温度センサーからの測定値をAzure経由で処理する。
追記
ということで、続編書きました。
https://shinya.nagoya/2018/08/30/wioazure002/
「Wio node + Azure Logic Appsでお手軽IoT【Wio node初期設定編】」への1件のフィードバック