Edited at

Wio LTEでSMSを受信してみる(mineo au SIM)

More than 1 year has passed since last update.


Wio LTEでSMSを受信してみる(mineo au SIM)

前回の記事の続きです。


続報(2017/11/7)

dev branchだけど、SMS受信電番対応したよって連絡あったので、試してみました。


test.ino

char mes[256];

char number[256];

if(Wio.ReceiveSMS(mes,sizeof(mes),number,sizeof(number)) > 0)
{
SerialUSB.print("SMS:");
SerialUSB.println(number);
SerialUSB.println(mes);
Wio.DeleteReceivedSMS();
}


で、問題なく、SMS送信者の電番を取得することができました!

対応ありがとうございます!


環境(2017/10/27)

MacBook 12(2017)

MacOS High Sierra(10.13)

Arduino IDE 1.8.5

Wio LTE Library v1.0.1

Wio LTE Japan Version (SORACOM CONSOLE経由で購入) v1.0

mineo au MVNO 1 SIM(VoLTE専用)

mineo au 6 SIM(黒SIM)


結論

SMS送信は、mineo Docomoも音声SIMからiPhone 8で送信しています。

VoLTE専用SIMは、SMS受信できるけど、黒SIMの場合は、残念ながらSMSを受信できませんでした。

ReceiveSMS()関数は、古いSMSのものから、取り出してくれるので、DeleteReceivedSMS()を呼ばないと、新しいSMSを取り出せないのでご注意を!


考察

黒いSIMは、SMSを3G経由で受信する仕様なので、LTE Onlyのデバイスでは受信できないのかもね。

VoLTE専用は、そもそも、LTE網で、SMSも受信するので、OKということなんでしょう!きっと!


検証プログラム


test.ino

#include <WioLTEforArduino.h>

#include <limits.h>
#include <stdio.h>

WioLTE Wio;

void setup() {
// put your setup code here, to run once:
delay(200);

SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");

SerialUSB.println("### I/O Initialize.");
Wio.Init();

SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyLTE(true);
delay(5000);

SerialUSB.println("### Turn on or reset.");
if (!Wio.TurnOnOrReset()) {
SerialUSB.println("### ERROR! ###");
return;
}

delay(3000);

if(Wio.Activate("mineo.jp","mineo@k-opti.com","mineo") == true) {
SerialUSB.println("Activate is True");
} else {
SerialUSB.println("Activate is False");
}

delay(3000);

SerialUSB.println("Loop Start");
}

void loop() {
char num[20];

if(Wio.GetPhoneNumber(num,sizeof(num)) > 0) {
SerialUSB.println(num);
}

int rssi = Wio.GetReceivedSignalStrength();
if (rssi == INT_MIN) {
SerialUSB.println("### ERROR! ###");
goto err;
}

SerialUSB.print("RSSI:");
SerialUSB.print(rssi);
SerialUSB.println("");

char mes[256];

if(Wio.ReceiveSMS(mes,sizeof(mes)) > 0)
{
SerialUSB.print("SMS:");
SerialUSB.println(mes);
Wio.DeleteReceivedSMS();
}

err:
delay(5000);
}


以上、ご参考までに