ichigojamでioTを実現する
MixSoda

MixSoda単品販売

MixSoda+IchigoJam
ボードセット

22,220 円(税込)

LTE回線を使ってデータを送受信できる拡張ボード「MixSoda」と
IchigoJam」のセット商品です。

大口・大量納品も可能です。
詳しくはお問い合わせください。

MixSodaのご利用には「MixServer 」の契約が必要です。

Case

導入事例1

Sujiya Systems

青森市営バスのバスロケーション・システム車載器として導入
http://www.sinjidai.com/sujiya/

https://www.city.aomori.aomori.jp/kotsu-kanri/koutsu/oshirase/20220824buslocation-torikumi-youtube.html

How to Use

!!!注意!!!

  • 初回のLTE接続確立前のI2Cコマンドはロックされ、接続が完了するとロック解除されますが戻り値は不定です。
  • 接続が完了する5〜20秒後にコマンドを実行してください。

IchigoJam BASIC IoTコマンドを使う

IoTコマンドで値を指定します。手軽に制御したいときにオススメです。

コード例

変数Aの値を即時送信する

IoT.OUT A

#704のアドレスから128byte送信する

IoT.OUT #704,128

数値を1つ受信する

R=IoT.IN()

その他コマンド使用例 Ver.7

※送信されたデータはMixServerで取得可能です。リファレンスはこちら

IchigoJam BASIC I2Cコマンドを使う

IoTコマンドだけでもお使いいただけますが、より細かく制御したい場合はI2Cコマンドを利用する方法があります。
任意のアドレスにMixSodaコマンドを書き込み、そのアドレスをI2Cコマンドで指定します。

MixSodaコマンド一覧(Ver 7) プロトコル: i2c スレーブアドレス: 0x4f * 0x21 4byteのデータを1つ送信する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 8byte (0x21, dummy, dummy, dummy, d0, d1, d2, d3) data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x22 4byteのデータを1つ送信する (LTE通信の完了を待たずにI2Cバスのロックを解除します) write: 8byte (0x22, dummy, dummy, dummy, d0, d1, d2, d3) data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) read : 3byte (status, 0, 0) status| 1:accepted * 0x20 送信キューに8byte値をためる (MAX: 256byte) write: 12byte (0x20, dummy, dummy, dummy, d0, d1, d2, d3, d4, d5, d6, d7) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x24 送信キューの中身をすべて送信する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 1byte (0x24) read : 3byte (status, 0, 0) status| 1:success, 5:error * 0x25 送信キューの中身を全て送信する (LTE通信の完了を待たずにI2Cバスのロックを解除します) write: 1byte (0x25) read : 3byte (status, 0, 0) status| 1:accepted * 0x30 4byteのデータを1つ取得する (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 1byte (0x30) read : 8byte (status, dummy, dummy, dummy, d0, d1, d2, d3) status| 1:success, 5:error data = (d0<<0) | (d1<<8) | (d2<<16) | (d3<<24) * 0x34 データを取得する(MAX: 128byte) (LTE通信が完了もしくはタイムアウトするまでI2Cバスがロックされます) write: 1byte (0x34) read : (2+n)byte (status, length, data0, data1, ..., data(n-1)) status| 1:success, 5:error * 0xc0 GPS位置情報を取得する write: 1byte (0xc0) read : 29byte (status, 27, longitude0, longitude1, longitude2, longitude3, latitude0, latitude1, latitude2, latitude3, altitude0, altitude1, altitude2, altitude3, speed0, speed1, speed2, speed3, direction0, direction1, direction2, direction3, date_year0, date_year1, date_month, date_day, date_hour, date_min, date_sec) status| 1:success, 2:busy, 5:error * 0xc1 GPSをON/OFFする 1:ON, 0:OFF write: 2byte (0xc1, on/off) * 0xd0 ICCIDを取得する write: 1byte (0xd0) read : 10byte (1, 8, iccid0, iccid1, iccid2, iccid3, iccid4, iccid5, iccid6, iccid7) iccid = (iccid0<<0) | (iccid1<<8) | (iccid2<<16) | (iccid3<<24) | (iccid4<<32) | (iccid5<<40) | (iccid6<<48) | (iccid3<<56) * 0xd1 IMEIを取得する write: 1byte (0xd1) read : 10byte (1, 8, imei0, imei1, imei2, imei3, imei4, imei5, imei6, imei7) imei = (imei0<<0) | (imei1<<8) | (imei2<<16) | (imei3<<24) | (imei4<<32) | (imei5<<40) | (imei6<<48) | (imei3<<56) * 0xd2 通信量の上限を設定する(単位はbyte、4byteで指定) Default: 0x00100000 (1MB) write: 5byte (0xd2, b0, b1, b2, b3) maxbyte = (b0<<0) | (b1<<8) | (b2<<16) | (b3<<24) * 0xd3 通信可能なバイト数を取得する write: 1byte (0xd3) read : 6byte (1, 4, b0, b1, b2, b3) remainbyte = (b0<<0) | (b1<<8) | (b2<<16) | (b3<<24) * 0xd4 PLMNを設定する write: 3byte (0xd4, plmn0, plmn1) plmn = (plmn0<<0) | (plmn1<<8) read : 2byte (status, 0) status| 1:success, 5:error * 0xd5 PLMNを取得する write: 1byte (0xd5) read : 4byte (1, 2, plmn0, plmn1) plmn = (plmn0<<0) | (plmn1<<8) * 0xd6 接続状況を取得する write: 1byte (0xd6) read : 1byte (status) status| 0:not connect, 1:connect, 5:error * 0xff MixSodaのバージョンを取得する write: 1byte (0xff) read : 1byte (ver) * 0xfe ascii文字をuart送信する(末尾に'\n'を自動付加) uart送信後に受信した1行を取得 write: (1+n)byte (0xfe, char0, char1, ..., char(n-1)) read : Nbyte (char0, char1, char2, ..., char(N-1))

コード例

変数Aの値を即時送信する

10 POKE #700,#21,0,0,0,(A>>0)&#FF,(A>>8)&#FF,0,0
20 R=I2CW(#4F,#700,8)

#704のアドレスから128byte送信する

10 I=0
20 POKE #700,#20,0,0,0
30 R=I2CW(#4F,#700,4,#704+I,8)
40 I=I+8
50 IF I<128 GOTO 30
60 POKE #700,#24
70 R=I2CW(#4F,#700,1)

数値を1つ受信する

10 POKE #700,#30
20 R=I2CR(#4F,#700,1,#710,8)
30 ?(PEEK(#714)<<0)+(PEEK(#715)<<8)

その他コマンド使用例 Ver.7

※送信されたデータはMixServerで取得可能です。リファレンスはこちら

Support

support mail