3GIM

3GIM > Arduino UNO R3 から3G通信 > 1. 3GIMの設定

投稿日:

3GIMにはマイコン(LPC812)が載っており、SIM Profile(SIM設定)、UARTの通信速度を登録することができます。

Kobito.qG8gUU.png

まずは環境に合わせてSIMの設定と通信速度の登録を行います。

設定用スケッチ(プログラム)monitor.ino

Arduino IDEからmonitor.inoをArduinoへ書き込みます。

“` monitor.ino

unsigned long Baudrate_serialMonitor = 9600; //シリアルモニタの通信速度
unsigned long baudrate_3gim = 9600; //3GIMとの通信速度  $YB 9600 等で設定

// Serialの設定
#if defined(<strong>SAMD21G18A</strong>)
//IoTab, Samd21 module
#define ioSerial SerialUSB // USB Serial port(not Serial)
#define a3gSerial Serial // Use serial port
#else
//Arduino UNO
#define ioSerial Serial
#include
#define IEM_RXD_PIN 4 // D4(For example,If you use Leonardo or Mega etc. then change to D10..)
#define IEM_TXD_PIN 5 // D5(For example,If you use Leonardo or Mega etc. then change to D11..)
SoftwareSerial a3gSerial(IEM_RXD_PIN, IEM_TXD_PIN); // Serial for IEM Interface
#endif

const int powerPin = 9; // 3gim power pin(If not using power control, 0 is set.)

void setup() {
while(!ioSerial);
ioSerial.begin(Baudrate_serialMonitor);
a3gSerial.begin(baudrate_3gim);

ioSerial.println("start…");
ioSerial.println("please wait a moment…");
pinMode(powerPin,OUTPUT); digitalWrite(9, HIGH); delay(100);
digitalWrite(powerPin, LOW);

//Welcome to 3GIMが表示されるまで待機
String str;
do {
while (!a3gSerial.available());
str = a3gSerial.readStringUntil('\n');
ioSerial.println(str);
} while (str.indexOf("3GIM") < 0); ioSerial.println("Connected"); } void loop() { String str; if (a3gSerial.available() > 0) {
String str = a3gSerial.readStringUntil('\n');
ioSerial.println(str);
}

//
if (ioSerial.available() > 0) {
char c = ioSerial.read();
ioSerial.print(c); // Echo back
a3gSerial.print(c);
}
}

“`

Arduino IDEの設定

Arduino IDE メニュー > ツールが以下のような設定になっていることを確認します。ボードがArduino/Genuino UNO 以外になっていればArduino/Genuino UNOを選択します。
同様にシリアルポートもArduino/Genuino UNOを選択します。
(Windowsの場合にはドライバを入れる必要がある場合があります。)

Kobito.C4ZKoC.png

シリアルモニターを開き、通信速度と改行の設定を行います。
デフォルトでは9600bpsなので9600bpsを選択して先へ進めます。

Kobito.1GlUdg.png

monitor.inoの動作確認

monitor.inoは3GIMとのコマンドやりとりを行うため(だけ)のプログラムになります。
まずは上記までの設定がうまくいき、3GIMとのやりとりができるかを確認します。
ArduinoIDEからマイコンボードに書込むボタンを押下し
以下の画像のようにWelcomt to 3GIMと表示されていれば準備OKです。
(startの下の?は時々表示されます。今は気にしないで進めます。)
(Welcomt to 3GIMが表示されるまで十数秒かかります。)

Kobito.Ae2ws9.png

バージョンの取得

もっとも簡単なファームウェアのバージョン取得を行います。
注)3GIMのバージョン番号ではないので誤解しないようにしてください。

Arduino IDEのシリアルモニタのコマンド送信エリアに、$YV と入力し送信ボタンを押します。
以下のように$YV=OK バージョン番号との応答があれば成功です。(おめでとうございます)

Kobito.2nzfEN.png

Kobito.01aHTw.png

LEDのON/OFF

「$YL 1」を送信して3GIMのLEDをON/OFFします。
3GIMのLEDが光れば成功です。

Kobito.2l5F8H.png

次は「$YL 0」を送信してLEDを消します。

IMG_6735.jpg

SIM Profile(SIM設定)

ここまででmonitor.inoの使い方はだいぶわかったと思いますので、次にSIMの設定を行います。
もし間違っても再度やり直しが可能ですので安心して進めてください。

現段階では必須ではないですがSIMカードも今のうちに3GIMにセットしとけば吉です。

$PSコマンド

以下を送信することでSIMのプロファイルを登録することができます。

$PS APN Username Password

以下はSORACOMの例です。
$PS soracom.io sora sora

Kobito.GHTeJ8.png

設定が完了すれば$PS=OKとの応答があります。
Kobito.MWbBSc.png

確認
$PSを送信して設定が反映されているか確認します。
入力したとおりに表示されればOKです。

Kobito.pwoBoX.png

UARTの通信速度

ハードの環境に合わせてUART通信速度の登録を行います。
初期状態では9600bpsに設定されています。

以下のとおり環境によって通信速度に制限があります。

<pre>
通信ボーレートは、9600bps, 19200pbs、38400bps、57600bps、115200pbsから選択できます。
115200bpsは、ハードウェアシリアル通信時のみ正常に通信可能です。
ソフトウェアシリアル通信時は、57600bpsでは文字化けが起きます。高速利用したい場合は38400bpsを推奨します。
</pre>

ということですが、しばらくは9600bpsで使ってみて不満があれば速度をあげてみてはいかがでしょうか。

速度の変更方法

$YBで速度の変更と確認ができます。

$YBを送信すると現在の速度が表示されます。

Kobito.ZZ0kFq.png

推奨の38400bpsにしてみます。

$YB 38400

Kobito.W5uXCL.png

$YB=OKとの応答があれば成功です。
Kobito.R7mTDA.png

ただし、monitor.iniでの3GIMとの通信速度が9600bpsのままなので、このままではmonior.iniでの処理を続行できません。(応答なしや文字化けになります)

ということで、monior.iniを変更します。baudrate_3gimの値を9600→38400に変更します。

baudrate_3gim = 9600;

baudrate_3gim = 38400;

スクリーンショット 2018-01-06 0.30.10.png

プログラムを変更して再度Arduinoに書き込めばOK。
今までと同じように3GIMとの通信ができます。

Kobito.ZOUGnd.png

コマンド

テストによく使うコマンド一覧

コマンド 説明
$YV バージョンの取得
$YR 電波受信強度(RSSI)の取得
$YT 現在の日時の取得
$YI IMEIの取得
$YL 0 LED消灯
$YL 1 LED点灯

今回は以上です。

-3GIM

執筆者:

関連記事

3GIM > Arduino UNO R3 から3G通信 > 2. 時刻取得

  // 3GIM(V2) sample sketch — getTime #include #include “a3gim.h” #define baudrate 9600UL #def …

no image

3GIM > Arduino UNO R3 から3G通信 > 2. Lチカ

Lチカ 3G通信用モジュールですが、基板上のLEDライトの制御コマンドもあります。 まずは3GIMに慣れるためにLチカから始めます。 以下で説明する3GIMとの接続、スケッチ、どちらから始めても構いま …

no image

3GIM > Arduino UNO R3 から3G通信 > 3. GPSデータの取

// 3GIM(V2) sample sketch — getLocation #include <SoftwareSerial.h> #include “a3gim.h” #defin …

3GIM > Arduino UNO R3 から3G通信 > 0. 準備編

Arduino から3G通信 3G通信である3GIMを使った通信を始める準備編です。 公式サイト 3gim_v2 [3GIM Wiki] 最初はいろいろ書いてあって頭がパニックになると思います。 慣れ …

no image

3GIM > Arduino UNO R3 から3G通信 > 4. check_rssi

電波強度の取得 // 3GIM(V2) sample skech — getRSSI #include <SoftwareSerial.h> #include “a3gim.h” #de …