ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

全体表示

[ リスト ]

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

IoTセンサ用クラウドサービスのAmbientへ、IchigoJamとMixJuiceの組み合わせで、センサ情報を送信することができましたので紹介します。もちろん純正IchigoJamでも動作します。

イメージ 1
ボクが作った基板「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コネクタから供給してください。

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

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

イメージ 2

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/)に多大なご協力をいただきました。ありがとうございました。

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事