Ichigojamとsakura.ioモジュールを使って、複数の値をsakura.ioへ送信したい場合、チャンネル番号(ch)ごとに、値(D(value))を送ることが出来る。
「コマンドリファレンス」P28に記載があるが、引数データ(N)ごとにチャンネル番号を指定して、値を設定してあげるとこで対応できる。
たとえば、
{
"channels": [
{
"channel": 1,
"type": "i",
"value": 249,
"datetime": "2020-09-11T05:12:13.061983501Z"
},
{
"channel": 2,
"type": "i",
"value": 729,
"datetime": "2020-09-11T05:12:13.061983501Z"
}
]
}
と、送信したい場合は、下記のような電文を作成する。
要素種別 | 引数データ長 | 引数データ1 | 引数データ2 | パリティ値 |
ch | type | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | ch | type | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
#21 | 20 | 1 | #69 | T | T>>8 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | #69 | H | H>>8 | 0 | 0 | 0 | 0 | 0 | 0 | P |
引数データ長は、引数データ1(10byte)+引数データ2(10byte)なので、[20]となる。
チャンネル番号の指定自体は、#00(0)~#7F(127)まで可能みたいだが、データは最大16個まで送信できるようなので、まあ、普通はch(0)~ch(15)かな。
ちなみにこの場合のプログラムは、
200 'LTE
210 P=(H>>8)^(T>>8)^H^T^#21^20^1^#69^2^#69
220 POKE #800,#21,20,1,#69,T,T>>8,0,0,0,0,0,0,2,#69,H,H>>8,0,0,0,0,0,0,P
230 ?I2CR(79,#800,23,#830,1)
こんな感じ。