カテゴリー
IchigoJam

IchigoJam + MixJuice × Ambient で超簡単IoTセンサを作ろう

IoTセンサ用クラウドサービスのAmbientへ、IchigoJamとMixJuiceの組み合わせで、センサ情報を送信することができましたので紹介します。もちろん純正IchigoJamでも動作します。
ボクが作った基板「IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)のPersonal Computer基板」へ、IchigoJam用ワイヤレスシールド「MixJuice」を接続し、照度センサを接続したときの様子。
照度センサNJL7502Lのコレクタ側をVcc(3.3V)へ、エミッタ側をIchigoJamのIN2端子へ接続します。また、IN2端子側には10kΩ~100kΩ程度の抵抗器を接続し、抵抗器の反対側をGNDへ接続します。
MixJuiceの基板上にもIchigoJamと同じコネクタが出ているので、写真のように実装すると良いでしょう。
(参考情報) Personal Computer基板の5V電源回路にはMixJuiceをドライブする十分な能力があります。しかし、IchigoJam Uの発売前に設計されたため、IchigoJam Uから実装されるようになったCN5が実装されていません。そこで、5V用の電源線をArduino互換の拡張IOのCN9から引き出しました(写真の右側にある赤色のジャンパ線)。純正のIchigoJam UやTを使用する場合は、電源をMixJuiceのUSBコネクタから供給してください。

純正のIchigoJamでの動作確認も行った。IchigoJam BASICのファームウェアはVersion 1.1.1と1.2.1で動作確認済み。 マイクロブレッドボードの内部配線は、写真の左右方向に導通。

IoTセンサ用クラウドサービスAmibient

AmbientはIoTセンサのセンサ値をグラフ化して表示するクラウドサービスです。下記のページにアクセスして、ユーザ登録を行い、チャンネルを作成すると、①チャネルID、②リードキー、③ライトキーが発行されます。このうちの①チャネルIDと③ライトキーをプログラムに組み込むことで、Ambientへのデータ送信が行えるようになります。
Ambient:

IchigoJam BASIC用サンプルプログラム

IchigoJam用のサンプルプログラムを以下に示します。IchigoJamのファームウェアのバージョンは1.1.1以上を使用してください(IchigoJam BASICファームウェア Version 1.1.1および1.2.1で動作確認済み)。
new
1 cls:?"Ambient":uart1
2 'MJ PCT application/json
3 'MJ POST START ambidata.io/api/v2/channels/ここにチャネルIDを書く/data
4 '{"writeKey":"ここにライトキーを書く","d1":"#"}
5 'MJ POST END
rem https://bokunimo.net/ichigojam/
100 'MAIN
110 P=#C1A
120 A=ana(2):?"ana(2)=";A
130 gosub600:gosub600:gosub600:gosub600
140 wait 600
150 goto 100
600 'TX
610 ifpeek(P)<>asc("'")letP,P+1:goto610
620 P=P+1:ifpeek(P)=asc("#")?A;:goto620
630 ifpeek(P)<>0?chr$(peek(P));:goto620
640 ?:return
行番号2~5には、MixJuiceへ送信するコマンドが記述されています。行番号3にAmbientから発行されたチャネルIDを、行番号4にライトキーを書いてください。
実行すると、約10秒おきにIN2端子に接続した照度センサの値をAmbientへ送信します。
以下は、サンプルプログラムの解説です。
本プログラムを応用したい場合は行番号100~150を確認してください。行番号110では、行番号2に書かれたコマンドの位置を示すための変数Pを定義しています。行番号1の命令(起動時の表示)を短くした場合は、この数値も減らす必要があります。MixJuiceへコマンドを送るにつれて、変数Pの値が増大します。Amibientへの送信が終わり、次の送信を行う前に初期値へ戻します。
行番号120はIN2のアナログ値を入力するコマンドです。
行番号130は行番号2~4のMixJuice用コマンドを実行するためのgosub命令です。
行番号140で10秒間の待ち時間処理を行います。
行番号150で行番号100に戻ります。
なお、ここでは、MAIN処理を実行するたびに行番号2のMJ PCTコマンドを送信していますが、MixJuiceの仕様としては、一度、MJ PCTを設定すれば、電源を切るまで再設定不要です。また、MJ PCTコマンドはMixJuiceのファームウェアのVersion 1.2からサポートされた命令です。古いファームウェアでは動作しません(次節)。

MixJuice用ファームウェア

この実験にはMixJuiceのファームウェアVer 1.2以上が必要です。MixJuiceのファームウェアは下記からダウンロードすることができます。
MixJuice:
ファームウェアの書き換えにはUSBシリアル変換アダプタと、ファームウェアを書き換ツールが必要です。書き込みツールはESPモジュールの開発元のEspressifからダウンロードすることができます。詳しくは、下記のサイトを参考にしてください。
IchigoJam + MixJuiceで製作するIoTセンサ
/MixJuice用ファームウェアのバージョンアップ
また、プログラムを動かす前に、MixJuiceをインターネットに接続する必要があります。接続するには、下記のコマンドをIchigoJamから入力してください(SSIDとPASSはお手持ちの無
線LANアクセスポイントに書かれた内容を使用してください)。

?"MJ APC SSID PASS


さぁ、これからです。

以上のように、とても簡単にIoTを始めることができます。IoTに興味が無かった方も、まずは、試してみてください。きっと、ここから始まる夢は大きいはずです。
IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)
https://bokunimo.net/ichigojam/pcb.html
by ボクにもわかるIchigoJam用マイコンボード
https://bokunimo.net/ichigojam/
謝辞
本ブログ記事を作成するにあたり、MixJuiceの開発者の松田さん(NaturalStyle Co. Ltd. http://na-s.jp/)に多大なご協力をいただきました。ありがとうございました。
 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es