カテゴリー
IchigoJam

IchigoJam+MixJuice+WioNode 超簡単IoTで遠隔地のLED制御

クラウドや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.NC
3.VCC
4.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アダプタなどを使用して動かすことになるでしょう(乾電池だと、すぐになくなり使い物にならない)。

by ボクにもわかるIchigoJam用マイコンボード

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es