3GIM(V1)の紹介

3GIM(3G IoT Module) Ver1 について

概要

3GIM(スリージム)は、様々なマイコンを使って、簡単にインターネット接続することができるSDカードサイズの超小型3G通信モジュールです。

これまでにない高度で最先端の3G通信技術を、以下の3つの技術情報提供から、誰もが、簡単に、短期間で、試作・プロトタイプ開発、されには実運用機開発まで可能となりました。
(東大の某先生および某無線技術者から、「入手して僅か数時間でセンサ値をネットにアップでき、直ぐに使えることが分かった」とのご意見を頂きました)

1)中学生でも利用可能なネット接続コマンド(httpGETやhttpPOST相当)を提供によって、インターネット接続がとても簡単
2)多くの方々からのご意見を基に作成した分かり易いマニュアルを提供
3)各コマンドおよび3G通信を使ったメール送信、遠隔制御、ツイッタ連携、それにクラウド連携といった事例を多く提供


さらに、従来の3GシールドはArduinoでの利用をターゲットとしていましたが、3GIMでは様々なマイコン(mbed,GR-Sakura,PIC,Raspberry Pi等)からUART経由またはUSB経由で簡単に利用できるように設計されています。

販売開始が2014年11月末で、これまでの利用者によって、農業用モニタリングや子供見守りシステム、防災監視システム、太陽光発電モニタリング、気象観測システムなど多くの実運用機に組み込んで頂き、ほとんど問題なく稼働し続けている状況です。
他の3G通信機器と比べても、
1)開発の容易さ
2)開発期間の短さ
3)現場設置の容易さ
4)保守サポートの簡単さ
5)安定した稼動など、
などのご意見と多く頂いています。

※開発時・試作時でのトラブルは、ほとんどが以下のトラブルシューティングで解決したものばかりです。


外観

3GIM(β版)の画像を掲載します。
なお、基板の色やレイアウト・寸法等は、一部変更となる場合がありますのでご注意ください。

  • 全体
3gim1_R.jpg 左から500円玉、3GIM本体、アンテナ取付基板です。

  • 表面
3gim2_R.jpg 左下の6穴(2.54mmピッチ)でマイコンと接続します。

  • 裏面
3gim3_R.jpg マイクロSIMを利用します。

提供する機能

3GIMは、下記の機能(3GシールドV2と同じ)を提供します:
  1. 3Gを介したインターネット接続(TCP/IPおよびHTTP、HTTPS※1)
  2. 3Gネットワークからの時刻取得
  3. GPSを使った位置情報の取得
  4. SMSの送受信(※2)
  5. 小容量のストレージ機能
  6. その他機能(電波強度の取得、ボーレートの変更、APN※3の切り替え等)

(※1)対応できるSSL証明書には一部制約があります。すべてのサーバに対してHTTPS通信ができることを保証する訳ではありません。
(※2)SMSの送受信はSMS不達の時の再受信動作に問題があり、受信機能の利用はお勧めしません。送信機能は特に問題なく利用いただけます。
(※3)利用可能なSIMカードについては、「利用上の留意点」をご覧ください。

3GIMのスペック

項目 仕様 補足
外形寸法 幅25mm * 奥行35mm * 高さ8mm 取付穴は2.6mm径(1ヶ所)
電源電圧 3.6~4.2V 安定したDC電源または3.7Vリチウムポリマ電池を推奨(5Vの供給は不可)
消費電流 50~800mA 利用状況や電波状態に依存
通信規格・対応周波数 3Gシールドと同じ  
マイコンとのインタフェース UARTを介したコマンド・レスポンス方式 またはUSBモデム 仕様書は別途公開予定(ただしUSBモデムは規格名のみ公開予定)
使用アンテナ 同梱するポール型アンテナ 取付用コネクタおよび基板を標準で添付
ロジック電圧 任意のロジック電圧で利用可能(3GIMにIO電圧を供給)  
UART デフォルト設定は9600bps(最大57600bps)/8データビット/パリティなし/1ストップビット ボーレートは変更可
対応SIMカード microSIM/miniSIM 通常サイズのSIMカードは利用不可
添付品 3GIM 1個、アンテナ取付用小基板 2個、ポール型3Gアンテナ 1個、10ピンヘッダ GPSをご利用される場合は、別途GPSアンテナをご購入ください


ピン配置

3GIMは下表に示す6ピンでマイコンと接続します。また、電源供給用の2ピンも配置されており、オプショナルで利用することができます。

ピン番号 名称 機能など
1 PWR_ON 電源のON/OFF制御(開放または0でON、1でOFF)
2 RX UARTインタフェース(RX)
3 TX UARTインタフェース(TX)
4 IOREF PWR_ON,RX,TXのロジック電圧
5 VCC 電源電圧
6 GND グラウンド

機能一覧(UART経由で利用する場合)

UARTコマンドインタフェースの概要

  • 3GIMは、UART経由で外部(マイコン側)からコマンドを送受信することで利用できます。
  • すべてのインタフェースは、マイコン側からのコマンド送信を契機とします。結果はレスポンスとして、3GIMからマイコン側へ送信されます。なお、コマンドおよびレスポンスは、必ず改行コード('\n')で終端します。
  • すべてのコマンドは、一つのシーケンス(送信と受信のやり取り)で完結します。

3GIM_IF.png

  • 処理に時間が掛かるコマンドの結果出力について
処理に時間が掛かるいくつかのコマンドでは、最終的な実行結果を示す「$XX=OK/NG ..」の他に下記のような途中ステータスが出力される場合がある(赤文字に部分が途中ステータスを示す)

 >W*=STARTING
 >W*=GETHOSTBYNAME
 >W*=CONNECT
 >W*=SENDREQUEST
 >W*=READRESPONSE
 >WG=CONTENT_TYPE text/html
 >WG=READ(578Byte)
 >WG=READ(445Byte)

上記に示すとおり、途中スタータスは「>」で始まる行である。途中ステータスを利用することで処理が正しく進んでいるのかを知ることができるが、結果だけを知りたい場合は邪魔になる。
途中ステータスを無視するには、「>」で始まる行を無視する(読み捨てる)ことで実装する。逆に言うと、最終的な結果形式である「$」で始まる行以外は読み捨てることで実装する。
途中ステータスは、下記のコマンドで出力される(出力される内容は状況により異なる):
  LG, WG, WP, TC, TR

  • 起動直後の出力について
3GIMに電源を供給してONにした後、約35秒後に下記の1行のメッセージが出力される。

 Hello, I'm gw3g(Ver 2.0)

このメッセージ、3GIMが利用可能になったことを示すが、通常の処理では無視することで対応できる。


機能一覧

下表に提供機能の一覧を示します。

分類 機能名 機能概要 コマンド名 備考
System バージョンの取得 3GIMに搭載されているファームウェアのバージョン情夫を取得する $YV  
  電波受信強度(RSSI)の取得 現在の3Gの電波強度(単位はdBm)を取得する $YR  
  利用可能サービスの取得 現在のSIMカードで利用可能なサービス(パケット通信/音声/両方等)を取得する $YS  
  IMEIの取得 端末固有の識別番号(IMEI:International Mobile Equipment Identity)を取得する $YI  
  RUN LEDの状態の取得・設定 LED(RUNと表記されたLED)の現在の状態の取得あるいは設定する $YL  
  UART通信速度の変更 UARTの通信速度を(4800/9600/19200/38400/57600bps)変更する $YB リセット後に有効となる
  3GIMのリセット 3GIMをソフトリセットする $YE  
  現在の日時の取得 現時点の年・月・日・時・分・秒の取得 $YT  
  エアプレーンモードの切り替え   $YP エアプレーンモードにすると消費電力を若干節減可能
  暗号化コマンドの実行 暗号化されたコマンドを実行する $YD APNの更新で利用予定
Web GETリクエスト送信・レスポンス取得 HTTP/HTTPSのGETメソッドを送信して、レスポンスを取得する $WG DNS使用可。ヘッダ、URL、レスポンスには最大長の制限有
  POSTリクエスト送信・レスポンス取得 HTTP/HTTPSのPOSTメソッドを送信して、レスポンスを取得する $WP 同上
TCP/IP TCP/IPコネクションの接続 TCP/IPコネクションを接続する $TC DNS使用可。一度に一つのコネクションのみ
  TCP/IPコネクションの切断 TCP/IPコネクションを切断する $TD  
  TCP/IPコネクションからのデータ読み出し TCP/IPコネクションから指定された長さまでデータを読み出す $TR ノンブロッキング方式。バイナリデータも取扱可※1
  TCP/IPコネクションへのデータの書き込み TCP/IPコネクションへデータを書き込む $TW ノンブロッキング方式。バイナリデータも取扱可
  TCP/IPコネクションの状態の取得・設定 TCP/IPコネクションの状態を取得するまたは設定する $TI  
  自ソケットのIPアドレス・ポート番号の取得 自ソケットのIPアドレスおよびポート番号を取得する $TN  
GPS 位置情報の取得 現在の位置情報をGPSを使って取得する $LG GPS用アンテナの装着が必要
SMS SMSの送信 SMSを送信する $SS メッセージの文字コードはASCIIまたはUNICODEのみ、※2
  SMSの読み出し 受信したSMSを読み出す $SR  
  SMS受信有無の確認 SMSを受信しyているか否かを確認する $SC  
Storage ストレージからのデータ読み出し 3GIM内のストレージからデータを読み出す $RR ストレージは最大10個まで、データの最大サイズは1023バイト、バイナリデータも取扱可※1
  ストレージへのデータの書き込み 3GIM内のストレージへデータを保存する $RW 同上
Profile デフォルトプロファイル番号の設定 使用するプロファイル(APN)の番号を設定する $PS ※3
  デフォルトプロファイル番号の取得、指定プロファイルの取得 デフォルトプロファイル番号の取得する、指定したプロファイル情報を取得する $PR  
  指定プロファイルのクリア 指定したプロファイルをクリアする $PE  

  • 補足
※1 一部のデータではエスケープ処理($文字を使用)が必要となる。
※2 SMSは送信メッセージ数に比例した料金(上限値なし)が掛かるサービスが多いため、料金に留意が必要となる。また、相手へうまく送信できない場合にSMSが溜まってしまう事象が発生しており、SMS機能の利用は推奨しない。
※3 プロファイル情報はあらかじめ3GIM出荷時に設定されており、原則、後で追加はできない(追加・変更したい場合は、発売元と相談ください)。予め設定されている最新のプロファイル(APN)情報は、「SIMカード情報」を参照のこと。


5Vから3.7Vを作り出す回路例

3GIMは、通常のマイコンの電源電圧5Vまたは3.3Vでは動作しない。そのため、別途電源回路を組むか、あるいはリチウムポリマ充電池を利用する必要がある。また3GIMは、場合によって大きな電流(最大800mA)を消費するため、抵抗による分圧回路等では安定した電源を供給できない。
5~12Vの電源(ACアダプタ等)から3GIMが必要とする3.7V電源を作り出す電源回路の例を以下に示す:

37V_Power.png

必要な部品は下記の通り:

No 分類 パーツ 数量 実売価格(円) 補足・販売店
1 3端子レギュレータ AZ1117H-ADJ 1個 30 秋月電子にて10個単位で販売
2 抵抗 1/4W抵抗(240Ω) 1個 10 秋月電子・千石電商等で販売
3 抵抗 1/4W抵抗(120Ω) 1個 10 秋月電子・千石電商等で販売
4 積層セラミックコンデンサ 25V 10μF 1個 80 秋月電子・千石電商等で販売
5 タンタルコンデンサ(または積層セラミックコンデンサ) 10V 22μF 1個 42 千石電商等で販売


利用上の留意点

  • docomoのFOMA回線を利用します。そのため、docomoあるいはそのネットワークを利用するMVNOが提供するマイクロSIMが利用できます(ただし、これらの条件を満たす全てのSIMカードでの利用を保証する訳ではありません。利用できるSIMカードはWikiサイトのSIMカード情報ページを参照ください)
  • 日本国内での利用をお願いします。海外では、各国の法律により現状ではご利用いただけません。
  • USBモデムとして利用する場合でも、5番ピンからの電源供給は必要です。

トラブルシューティング

No 問題 現 象 対 応 策 補 足
1 配線 UART(Tx:送信,Rx:受信)、電源およびGNDが正しく理解できていない ・3GIMコネクタ部の#1~#6までを正しく理解して上で配線・接続のこと#1(電源On/Off:任意)、#2(RX)、#3(Tx)、#4(3.3V/5V電源)、#5(3.6~4.2V電源)、#6(GND) ・#5(VCC)で外部電源を利用する場合には、3.7Vリチウムイオン電池を推奨
2 応答 レスポンス ・コマンドを送っても返信がない
・正しい応答ではない
・通信モジュールとマイコンボードとの通信,またはマイコンボードとPCとの通信において以下の原因が考えられる
①3GIMの配線が正しくできていない(配線接続確認)
②電源供給に問題がある(電源電圧の確認)
③ UART通信速度の設定が間違っている(確認設定)
④ 初期電源後の待ち時間を考慮不足(30秒以上待機)
⑤プログラムに間違いがある
⑥ArduinoIDEシリアルモニタ画面の改行コード変更
・応答が正しく表示されない場合の原因は,配線ミスや配線での接触不良が考えられる
・②の電源供給で,VCCの3.6~4.2Vを間違えるケースが多発
・⑥の場合、改行選択メニューで「CRおよびLF」を選択のこと
3 エラー頻発 ・#=NGが多発 ・立ち上げタイミングの問題・電源供給(電流が小さい)問題 ・配線・接続が正しくできていること
・適正なSIMカードの挿入されていること
・正しく電源供給できていること
・RSSI(電波強度測定)やSIMカードのサービス確認 ・$YRや$YSコマンドで確認
4 時間の取得 ・時間の取得($YT)が間違っている ・正しいSIMカードとアンテナ接続によって正しく設定される
・正しい時間を取得するにはしばらく時間が掛る
・電波状態が悪いところでは正確な時間が取得しにくい
・同上および$YRと$PRで確認
・電波状態の良いところで行う
5 SMS送受信 ・SMSの送受信ができない
・SMSの応答が無い
・お使いのSIMカードがSMS対応ではない(切替え必要) ・SMSサーバとのやり取りでの不備(何度か読込み必要) ・同上
6 GPS取得 ・GPS取得ができない
・GPS取得に時間が掛る
・GPSアンテナが正しく接続されていること
・GPS電波状態が良い所(PCから離す)で実施のこと
・初期立上げでは数分から10分ほど掛る場合がある
・電源供給が正しくできていること
・一度GPS取得できており、電源がずっと入った状態であれば次からは即時の取得が可能
7 ネット接続 ・Webコマンド群やTCP/IPコマンド群が正しく応答しない 3Gアンテナを正しく接続する
・正しいSIMカードが挿入されていない
・SIMカードの接続不良(再度再挿入などを実施)
・電源供給が正しくできていること
「正しいSIMカードの利用」とは、SIMカード情報に掲載されており、Profile設定で正しい番号に設定されている利用をいう


ダウンロード



  • 3GIMが採用している3G通信モジュールDTW-400Wのリーフレット dtw-400w.pdf


 【最新版(2015.3.22)】

【旧版】


事例

  • Intel Edisonで使ってみました

Edisonとブレークアウト基板に3GIMを組み合わせて使ってみました。
Edisonで3GIMを使う方法はいろいろありますが、今回は

 Intel XDK IoT Edition (JavaScript + node.js)

を使ってみました。とっても簡単です。 
手元にあった温湿度センサAM2321から温度と湿度をI2C経由で読み取り、読み取った温度を1分おきにxively.comサービスへアップロードするサンプルです。

edison_3gim.jpg

  続き

  • Arduinoを使ったモノ

3GIMを使えば、ミニブレッドボードで簡単なセンサノードを製作できます。
この事例では、温湿度センサ(SHT-21)で温度と湿度を1分おきに計測し、クラウドサービスxively.comにアップロードします。

3gim_sample.jpg 3GIM、ATtiny、SHT-21、アンテナから構成

500mAhのリチウムポリマ電池(3.7V)を使えば、1分ごとの計測とクラウドへのアップロードを行っても6時間以上稼働させることができます。また、計測とアップロードの間隔を広げることで、数日間の稼働も可能です。

  続き

  • mbedを使ったモノ

mbedでも簡単に3GIMを利用できます。
この事例では、アナログ温度センサで気温を読み取り、30秒おきにクラウドサービスxively.comにアップロードします。

mbed_meets_3gim_R.jpg

  続き

  • 最終更新:2016-02-24 20:03:30

このWIKIを編集するにはパスワード入力が必要です

認証パスワード