MixDake ver 1.1.4 / 2024.09.27 --- [update] - 1.0.0 / 2022.06.23 + first release. - 1.1.3 / 2022.11.28 + 'MS PLMN' + 'MS PLMN xxxx' + 'MS STAT' * (FIX)out of service area bug * add monitoring by WDT * 'MS MAX' return size 8 bytes -> 4 bytes - 1.1.4 / 2024.09.27 + reboot if the number of NGs for 'MS OUT' or 'MS IN' exceeds the threshold + 'MS MAXNG' + 'MS MAXNG xx' + 'MS !REBOOT!' --- [reference] protocol: UART baudrate: 115200 すべてのコマンド末尾に'\n'が必要 LED(B)点滅中(LTE接続試行中)はコマンド受付不可 default MAX: 1MB default PLMN: 44020 (SoftBank) default MAXNG: 5 * MS OUT xxxx データを送信する(16進数 Max512byte) ex. MS OUT 0000FFFFF * MS IN データを受信する(16進数 Max512byte) ex. MS IN 0000FFFF * MS GPS GPS位置情報を取得する ※ LTEでデータ送受信後は20秒ほどGPS取得できない response: status,経度,緯度,高度,速度,方向,日時 status A 有効 B LTEイベントによりブロック中(位置情報は最終取得データ) V 無効 ex. MS GPS V,0.000000,0.000000,0.000000,0.000000,0.000000,1980-01-05T23:59:42Z ex. MS GPS A,136.246037,36.054467,129.801743,0.428072,0.000000,2022-06-22T00:50:48Z * MS SVR ip:port サーバーを設定する ex. MS SVR mixsoda.io:2048 ex. MS SVR 122.1.74.157:2048 * MS ICCID ICCIDを取得する(16進数8byte) ex. MS ICCID 7CA3104BE199C9E2 * MS IMEI IMEIを取得する(16進数8byte) ex. MS IMEI 000140BD25E0F7BF * MS MAX xxxxxxxx 通信量の上限を設定する(単位byte, 16進数4byteで指定) (!) 設定した上限は電源リセットでデフォルト値(1MB)にクリアされる ex. MS MAX 00000400 (1KBを設定) * MS MAX 通信可能なバイト数を取得する(16進数4byte) ex. MS MAX 00100000 * MS PLMN PLMNを取得する(16進数2byte) ex. MS PLMN ABF4 * MS PLMN xxxx PLMNを設定する(16進数2byte) ex. MS PLMN ABF4 // SoftBank ex. MS PLMN AC13 // KDDI * MS STAT 接続状況を取得する(1:接続中, 2:未接続) ex. MS STAT 1 * MS MAXNG xx LTE通信エラーの上限回数を設定する(16進数1byteで指定) (!) データ送信/受信のNG回数が上限回数に達したとき再起動 (!) 00で再起動の機能OFF ex. MS MAXNG 03 * MS MAXNG LTE通信エラーの上限回数を取得する(16進数1byte) (!) データ送信/受信のNG回数が上限回数に達したとき再起動 (!) 00で再起動の機能OFF ex. MS MAXNG 05 * MS !REBOOT! MixDakeを再起動する ex. MS !REBOOT! * MS VER LTEボードのバージョンを取得する ex. MS VER 1.1.4 * MS その他文字列 ATコマンドを使用する ex. MS AT%XICCID --- [sample] * arduino const int BUTTON_PIN = 2; bool lastButtonState = HIGH; void setup() { Serial.begin(115200); pinMode(BUTTON_PIN, INPUT_PULLUP); delay(1000); } void loop() { bool currentState = digitalRead(BUTTON_PIN); if (lastButtonState == HIGH && currentState == LOW) { Serial.print("MS OUT 00000001\n"); } lastButtonState = currentState; delay(20); } * raspberry pi python import serial ser = serial.Serial(port='/dev/serial0', baudrate=115200, timeout=5) cmd = "MS OUT 00000001\n" ser.write(cmd.encode('utf-8')) res = ser.readline() print(res.decode('utf-8', errors='replace')) ser.close() * IchigoJam BASIC 10 A=ANA(2) 20 ?"MS OUT ";HEX$(A,4) * IchigoLatte js function hex(n){ var c; if(n < 10){ c = chr(0x30 + n); }else{ c = chr(0x41 + (n-10)); } return c; } var a = ana(2); uart("MS OUT "); uart(hex((a >>12) & 0xf)); uart(hex((a >> 8) & 0xf)); uart(hex((a >> 4) & 0xf)); uart(hex((a >> 0) & 0xf)); uart("\n");