IchigoJam BASICのIoTコマンド×sakura.ioモジュールで、Ambientへデータを蓄積する実験を行ってみました。
sakura.ioモジュールと、発売されたばかりのIchigoSodaの組み合わせで送信することが出来ます。
sakura.io製品:IchigoSoda/IchigoJam for sakura.io (Amazonでの販売ページ)sakura.io さくらの通信モジュール LTE (Amazonでの販売ページ)
ボクは、まだIchigoSodaを入手していないので、写真のような組み合わせで実験してみました。
IchigoJam用コンピュータ電子工作学習キット(CQ出版社 IF ICH-KIT)に、sakura.ioモジュールを接続し、IchigoJam (ベータ版ファームウェア)から数字の1と65535を送信したときの様子(送信可能な数値の範囲は0~65535)。
IoTコマンドは、昨日、リリースされたIchigoJamのベータ版でサポートされたコマンドです。IchigoJamとsakura.ioモジュールとの組み合わせで、簡単にsakura.ioへ数値データを送信することが出来ます。
数字の1を送信したいときは「IoT.OUT 1」のように入力するだけです。
IoT.OUT 1 :’ 数字の1を送信IoT.OUT 65535 :’ 数字の65535を送信IoT.OUT ana() :’ BTN端子の入力電圧に応じた数字(0~1023)を送信for I=0 to I+1:iot.out ana():wait 600:next :’ 20秒ごとにBTN端子の状態を送信
IchigoJam用のβ版ファームウェアは下記からダウンロードすることが出来ます。
IchigoJam用ファームウェア:
目次
sakura.ioからAmbientへデータ転送
IchigoJam×sakura.ioモジュールから送信された数値データを、Node-REDでAmbientへ転送してみました。Node-REDはIoT用のゲートウェイを簡単に製作することが可能なソフトウェアです。Raspberry Piをはじめ、様々なプラットフォーム上で動作します。
データの流れ:IchigoJam –> sakura.io –> Node-RED –> Ambient
IchigoJamから送信したデータをNode-REDでAmbientへ転送する。
Node-REDとNode-RED用のAmbientノードのインストール方法や操作方法については、下記を参照してください。※後半の「IoT用クラウドサービスAmbientへデータを送信する」も忘れずに実施してください。
インストール手順
sakura.ioからAmbientへデータを転送するためのNode-RED用のフローを下記に公開しました。ブラウザなどでアクセスし、[Ctrl]+[A]と[Ctrl]+[C]でコピーしておき、Node-RED画面の右上のメニューアイコン(3本の横線)をクリックし、「読込み」→「クリップボード」と選択後、[Ctrl]+[V]でペーストしてください。
「読込み」を実行後、フローのエリア内をマウスでクリックすると、フロー図が表示されます。フロー図内で下記を設定し、「デプロイ」を実行すれば、準備完了です。
- Ambientノードをダブルクリックし、Ambientのサイトから得たChannel Id とWrite Keyを入力する。
- sakura.ioノード内のURL(またはpath)のwssから始まる文字列の「xxxx」の部分へ、sakura.ioから得たトークンを入力する。 初期値:wss://api.sakura.io/ws/v1/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
入力例:wss://api.sakura.io/ws/v1/01234567-89ab-cdef-0123-456789abcdef
IchigoJamからIoTコマンドで送信した数値データは、Node-REDがsakura.ioからAmbientへ転送し、Ambientは数値データをグラフします。グラフはパソコンやスマホで閲覧することが出来ます。
20秒ごとに、IchigoJamからデータを送信し、Ambientでグラフ化したときの様子
IoT命令のない時。。。ある時。。。
現時点では、IoT命令は、IchigoJamのβ版のファームウェアのみでしかサポートされていません。
正式リリース版のIchigoJam Ver 1.1、1.2.1~1.2.3で動かすには以下のようなプログラムになります。
new
1 cls:?”SAKURA IoT
2 ?”アナログ ニュウリョク A=BTN
3 ?”I2C SDA ポート IN3
4 ?”I2C SCL ポート EX1/SCL
5 W=600:?”ソクテイ カンカク W=”;W
6 ‘ CC BY Wataru Kunino
100 ‘INIT
210 A=ana(0):?”ana(0)=”;A
220 poke#700,33,10,1,76,A&255,A>>8,0,0,0,0,0,0:N=11:gosub900
390 led0:waitW:led1:goto100
900 ‘I2C
910 C=0:forI=0toN
920 C=C^peek(#700+I):next
930 N=N+1:poke#700+N,C:
940 ifi2cw(79,#700,1,#701,N)?”E
950 forI=0toN:?peek(#700+I);
960 ?” “;:next:?
970 return
run
ana(0)=832
33 10 1 76 64 3 0 0 0 0 0 0 37
ana(0)=831
33 10 1 76 63 3 0 0 0 0 0 0 90
ana(0)=833
33 10 1 76 65 3 0 0 0 0 0 0 36
ana(0)=832
33 10 1 76 64 3 0 0 0 0 0 0 37
IoT命令があれば、ほぼ同じ処理を以下の1行で実行することが出来ます。
for I=0 to I+1:iot.out ana():for J=0 to 12:?peek(#800+J);” “;:next:?:wait 600:next
33 10 1 76 62 3 0 0 0 0 0 0 91
33 10 1 76 63 3 0 0 0 0 0 0 90
33 10 1 76 65 3 0 0 0 0 0 0 36
33 10 1 76 62 3 0 0 0 0 0 0 91
リンク集
1. IchigoJam×さくらのIoTで遠隔地の照度を測るワイヤレスセンサ
2. Node-REDで簡単ESP8266/ESP32 ワイヤレスセンサ用IoTゲートウェイ
by ボクにもわかるIchigoJam用 IchigoSoda / sakura.io
「IchigoJamのIoTコマンド×sakura.ioモジュールでAmbientへ送信」への1件の返信
[…] sakura.ioからAmbientへデータ転送(2018/5/19) https://bokunimo.net/blog/ichigojam/37/ […]