LoginSignup
0
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-01-05

以下の続きになります。
3GIM > Arduino UNO R3 から3G通信 - Qiita

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

Kobito.qG8gUU.png

まずはSIMの設定と通信速度の登録を行います。

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

Arduino IDEを起動して以下のスケッチをmonitor.inoという名前で作成します。

monitor.ino

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


// Serialの設定
#if defined(__SAMD21G18A__) 
  //IoTab, Samd21 module
  #define ioSerial      SerialUSB // USB Serial port(not Serial)
  #define a3gSerial       Serial  // Use serial port
#else
  //Arduino UNO
  #define ioSerial      Serial
  #include <SoftwareSerial.h>
  #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に設定されています。

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


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

ということですが、しばらくは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点灯

今回は以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1