クラウドやIoTモジュール側のソフト開発が不要なWio Nodeであれば、超簡単にインターネットを経由した遠隔地のWioNodeへアクセスすることが出来ます。
開発を行う際に「(通常の)パソコンが不要」であることも特長です。ネットワーク設定やテスト操作はスマートフォンで行います。
ここでは、IchigoJam BASICを使って、遠隔ワイヤレスLチカの実験を行ってみましょう。
写真の左側がWio Nodeモジュール。マイクロUSBで電源を供給する。右側にLEDを接続した。Grove端子には4本のピンがあるが、使用するのは、SIGピンと、GNDピンだけ。Grove専用ケーブルであれば、黄色の線がSIGで、黒がGND。回路が苦手な人は、市販のGrove LEDを使っても良い。より複雑な市販モジュールも、本ブログと同じ手順で簡単に制御できるのが特長。抵抗(1kΩ)はブレッドボードの最右列と、右から3列目に挿入されている。LED(ガラスパッケージ入り)は右から3列目と最左列に接続されており、アノードが左側。白と赤の信号線には何も接続されていない。
Wio Nodeとは、Seeed Studio社が開発したIoTモジュールです。同社が提供するクラウドサービスを利用することで、遠隔地に設置したWioNodeをインターネット経由で制御することが出来ます。
Wio Nodeには、2つのGrove端子が搭載されており、市販の様々なGroveモジュールを使って機能を拡張することが出来ます。
今回は、LEDをGrove端子へ接続しました。市販のGrove LEDモジュールを購入しても良いですが、Grove端子のSIGピンとGNDピンとの間に抵抗とLEDを直列につないでも良いでしょう。
Groveピン1.SIG —-[抵抗]—-[LED]—-GNDへ2.NC3.VCC4.GND
目次
準備するもの
・IchigoJam
・MixJuice
・Wio Node 1,100円 (http://akizukidenshi.com/catalog/g/gM-10631/)
・スマートフォン (Wio Node設定用)
・周辺機器(モニタ、キーボード、ACアダプタなど)
わずか5分。3つの手順でIoT機器を自由自在に制御できる
Wio Nodeのセットアップは簡単です。わずか5分。
ステップ1:iOS用(まAndroid用)Wio Link AppをApp Store(Market)からダウンロードする
ステップ2:Wio Link Appを起動し、ユーザ登録を行う
ステップ3:Wio Nodeをインターネットへ接続する
WIo Link Appを操作して、Wio Node追加の処理を実行します。途中で、Wio Nodeの左側のボタンを4秒以上、押す処理を促されますが、図入りの分かりやすい画面なので、迷うこともないでしょう。その後、Wio Nodeは無線LANアクセスポイントとなり、スマートフォンからアクセスできるようになります。スマートフォンを操作し、Wi-Fi接続先をWio Nodeに設定してください。設定すると、スマートフォン上のWio Link AppがWio Nodeへアクセスし、Wio Nodeのネットワーク設定を開始します。このとき、お手持ちの無線LANアクセスポイントのSSIDやパスワードの情報を入力します。入力したSSIDはWio Nodeへ保存されます。遠隔地に設置する場合は、以上のネットワーク設定を現地でやり直します。
Wio Nodeへファームウェアを書き込む
ネットワーク設定が終われば、Wio NodeのGrove端子へ接続するハードウェアを選択します。ここでは、LEDを制御するために電球のようなアイコンの「Generic Digital Output」を選びましょう。Grove 端子は2つあるので、それぞれに異なるデバイスを接続することが出来ます。ただし、UARTシリアルとADコンバータは片側にしかありませんので、1つしか接続することが出来ません。
デバイスを選択後、画面最下部がファームウェアをWio Nodeに転送するための送信ボタンになります。そのまま転送しましょう。
HTTP REST API
さて、いよいよ制御方法です。スマートフォンの画面最下部の「View API」をクリックすると、スマートフォンからLEDが制御できます。「ON/OFF」と書かれたテキストボックスに、1または0を入力して制御できることを確認してみましょう。HTTP GET方式やPOST方式といった聞きなれないキーワードが出てきます。それぞれ、MixuJuiceの「MJ GETS」と「MJ POSTS」に相当し、情報をWio Nodeから取得するときにHTTP GETを、Wio Nodeを制御するときにHTTP POSTを使用します。
よく分からなくても大丈夫です。
ボタンや入力可能な部分は、限られています。適当に試してゆけば、理解できると思います。
また、MicJuiceを接続したIchigoJamから制御することも出来ます。アクセスにはトークン(32桁の16進数)が必要です。スマートフォンの「View API」画面内にいくつかのURL(https://~)が10個くらい表示されます。どの表示も、後半から最後にかけては同じ内容になっていて、「access_token=」に続いてトークンが示されています。
・IchigoJamを無線LANアクセスポイントへ接続するには、以下を入力する(以降は入力不要)。?”MJ APC <SSID> <PASS>”・LEDの状態を確認するためのコマンド。<TOKEN>にトークン(32桁の16進数)を入力。?”MJ GETS us.wio.seeed.io/v1/node/GenericDOutD0/onoff_status?access_token=<TOKEN>”・LEDを制御するためのコマンド。ここでは、LEDをONにする。?”MJ POSTS START us.wio.seeed.io/v1/node/GenericDOutD0/onoff/1?access_token=<TOKEN>”?”MJ POSTS END”
超簡単ですね。
IchigoJam用のプログラムの例
最後に、LEDの点灯状態を確認し、IchigoJam上のボタンSW2を使って、制御するプログラムを作成してみました。行番号3の変数Tには、Wio Link Appに表示された32文字のトークンを記してください。
new:’ for IchigoJam Ver 1.2
1 cls:?”WIO NODE X MixJuice”:uart1
2 ‘Token ヲ ヘンスウ T ヘ ダイニュウ シテ クダサイ
3 T=”0123456789ABCDEF0123456789ABCDEF”
4 ?”BTN: WIO NODE ノ LED ヲ テントウ スル
5 ?”CC BY Wataru KUNINO
rem https://bokunimo.net/ichigojam/
100 ‘LOOP
110 gsb500
120 ?”MJ GETS us.wio.seeed.io/v1/node/GenericDOutD0/onoff_status?access_token=”;str$(T)
130 gsb600
200 ‘BTN
210 ?”BTN ヲ オシテ クダサイ”
220 if!btn()goto220
230 ?”LED “;V;”->”;!V
300 ‘MAIN
310 gsb500
320 ?”MJ POSTS START us.wio.seeed.io/v1/node/GenericDOutD0/onoff/”;!V;”?access_token=”;str$(T)
330 ?”MJ POSTS END”
340 wait300:goto100
500 ‘CLEAR
510 wait1:ifinkey()goto510
520 rtn
600 ‘INPUT
610 wait180:V=0
620 wait1:I=inkey():?chr$(I);
630 ifI=0rtn
640 ifI<>asc(“:”)goto620
650 wait1:I=inkey():?chr$(I);
660 ifI=0?:?”Val=”;V:rtn
670 ifI<asc(“0”)orI>asc(“9”)goto650
680 V=V*10+I-asc(“0”):goto650
行番号320の赤文字部分の「D0」を「D1」に書き換えると、左側のGrove端子(裏面から見ると右側の端子)を制御することが出来ます。
課題は消費電力。常に60mA程度が流れている。
消費電力を測定したときの様子です。Wio Nodeは常にクラウドとの通信を行うために、起動した状態となっています。このため、60mAの消費電流が流れ続けます。
したがって、、ACアダプタなどを使用して動かすことになるでしょう(乾電池だと、すぐになくなり使い物にならない)。