「IoT」タグアーカイブ

Wio node + Azure Logic Appsでお手軽IoT【Wio node初期設定編】

こんにちわ。

先日とうとうインフルBを被弾してしまい、一週間ほど臥せっておりました。この季節ホントいろいろ萎えます。早く夏来ないかな。

さて、そんな冬に差し掛かる昨年秋のころ、SeeedさんからWio LTEという面白いプロダクトのハンズオンが企画され一瞬沸き立ったのですが、その時はそれほどLTEの必要性もなく、またLTEモジュール搭載のせいもあってかややお高めの値段設定もあってスルーしておりました。

が、実はその裏に自分にとってとても要件にフィットしやすいデバイスがすでにラインナップあったことを先日のHack-Chu2018の際に知りました。それがWio node。
巷ではすでに試してみた記事がたくさんあり、ネタ的には今更感がありますが、個人的にちょうどWio nodeの仕様にピタリくる要件があり、あーこれは一度試してみないと!

ってことで試してみました。

Azure 各種サービスとWio nodeでPCを物理制御したい

今回は明確に用途が決まっており、事務所に設置してある特殊用途PC(謎)の・・・

  • 状態監視
  • インターネット経由の電源制御

が目的です。
このPCが結構めんどくさくて、常時動いていてほしいんだけどそこそこの負荷で動いているので時々困ったことにハングアップするという曲者。
ハングアップ状態を検知したうえで、リモート(TeamViewerなりリモデ)での復旧が困難と判断されたときに、電源を強制遮断し再起動するという荒業を担ってもらいます。

構成図はこんな感じ。

matome

AzureのLogicAppsを中心に、いろいろと都合のいいサービスにつなげている状態です。
通常自分が見るUIは、監視用にPowerBIのリポート、緊急時に通知が来たBot経由で電源制御を行うといった感じです。

まずは図の緑枠のWio node単体の動作テストまで。
最終的には、温度センサーからの取得データをAzure上に蓄積し、さらには電源制御をBot経由で実装する予定です。

ということでとにもかくにも物がなけりゃってことで注文しました。今回はマルツオンライン。

https://www.marutsu.co.jp/

で、届いたのがこちら。

IMG_20180302_195911166_HDR

Wio node二つに、温度計測用のセンサーが二つ、電源制御用のリレーが二つです。制御したいPCは3台あるのですが、とりあえず2台でテスト運用してみることに。

Wio nodeの設定

まずはWio nodeをWeb APIから操作するための設定を行います。

これが結構ハマったなぁ・・・

流れはこんな感じ

  1. Wio nodeに電源投入
  2. スイッチ長押しして設定モードに突入
  3. 設定用アプリを立ち上げ設定開始(iOSまたはAndroid)
  4. 設定完了したらREST API叩いてテスト

これだけのはずが・・・当初自宅のWi-fiのセキュリティ設定のまずさもあって苦戦。結局Android版ではNGのまま、iOS版で設定完了。以下その手順

まずはWio nodeに電源投入。
電源用のカプラを用いるか、MicroUSBにモバイル電源を用意する。電源用のカプラに二次電池を搭載した場合、このMicroUSB端子からの充電にも対応する模様。おもしろい。

IMG_20180303_162638742_HDR

Android版設定手順(結局設定完了せず)

Google Playで「Wio link」で検索し、アプリをインストールします。

Screenshot_20180303-162721

上記ではすでに1デバイス登録されていますが、新規登録時は右肩の「+」をクリックします。

Screenshot_20180303-162725

導入するデバイスを選択します。
今回は当然「Wio node」。

Screenshot_20180303-162730

Android版はこのまま「Next」をクリック

Screenshot_20180303-162745

Wio nodeに接続するWi-fiを選択します。

Screenshot_20180303-162750

選択したWi-fiのパスワードを入力します。
(※なぜかこのwi-fiパスワードがうまく通らない瞬間もあった)

Screenshot_20180303-162755

Wi-fi接続が完了すると、該当するWio nodeが表示されるので、クリック。

Screenshot_20180303-162802

AndroidからWio nodeへファームの更新処理が渡されている(と思われる)

Screenshot_20180303-162818

同様にWi-fiのパスワードが渡される(と思われる)
この後、ここまで緩い点滅だった青LEDがはっきりとした短滅に代わるため、Wio node内部ではセットアップができているのではと思われる。
あとはパスワード設定したWi-fi経由でAndroid↔Wio node間で通信が成立すればセットアップ終了と思われるのだが…

Screenshot_20180303-162832

残念ながら何度やってもここで終了。

この時点でコマンドラインツールの存在を知るも、一旦手持ちのiOS機でテストすることを思い立ちiOSで設定実施。

iOS版設定手順(正常に設定完了)

 

 

 

IMG_0678

Android同様右上の「+」から設定開始。

IMG_0679

同じようにWio nodeを選択し

IMG_0680

ただしここでiOS版はちょっと動きが異なる。
Android版は上位接続用のwi-fiの設定が求められるが、まずWio nodeへの接続が必要になる。

しかも、画面の「Goto wifi list」を押しても無情に
「手動でiOSとWi-fi接続してくれ」とダイアログが出るだけ。
仕方がないので、iOSのWi-fi設定からWio nodeを探し出して接続する。

IMG_0682

接続後設定画面に戻って再度「Goto wifi list」をタップすると画面が切り替わり、ようやくWi-fiの接続リストが表示される。

IMG_0683

該当のwi-fiをタップし

IMG_0684

パスワードを入力し「Join」をタップ。

IMG_0685

するとAndroid版と同じようにWio nodeに接続しセットアップを開始するのだが・・・・

IMG_0686

あっけなく設定が完了する。
この時の青LEDの動きはAndroid版と同じなので、検証は必要だがAndroid版の場合、セットアップ後のキャッチアップがうまくいっていないのでは?と思われる。

IMG_0687

すでに一つ目のセットアップが完了しているが、二つ目も無事登録された。(両方とも、Android版で設定→NG→iOS版で設定→OKという流れ。)

 

コマンドラインツール

上記のパターンでiOS版を用意できない場合は、コマンドラインツールも用意されている。

今回はテストしていないが、八方塞がった場合はお試しあれ。

https://github.com/Seeed-Studio/wio-cli

REST API

すでに長くなっているけど、ここからが本番。

Wio nodeの最大の便利ポイントが、Seeed社が運用するクラウドサーバ経由で、セットアップしたWio nodeの操作ができること。
しかもわかりやすいREST API経由。

自分のWio nodeデバイス固有のアクセストークンが含まれたURLを、各デバイスに用意された仕様に基づいて投げてやると・・・

Screenshot_20180303-231318

こいつの場合はリレーの制御。
ON=1なのでパラメタ設定して「POST」。

Screenshot_20180303-231332

ほどなくしてレスポンスあり。
例によってJSONなので、PG処理も簡単。

IMG_20180303_005602791_HDR

実際のHWの動き。
バッテリーに接続されたLEDが、リレーON(1)で点灯。
(基板上の小さなLEDもONしているのがわかる)

IMG_20180303_005616504_HDR

リレーOFF(0)を送ってやると、OFFになる。

ネット経由ということもあり若干の遅延はあるものの、数秒あるかないか。今回の用途では十分なレスポンス。

初期セットアップに手間取ったものの、そこから動作検証まではものの3分。これは便利。

次回は、温度センサーからの測定値をAzure経由で処理する。