A6 GSM/GPRSモジュール:ATコマンド完全ガイドとArduino連携
概要
Ai-Thinker A6 GSM/GPRSモジュールをArduino Unoと接続し、ATコマンドで音声通話・SMS・GPRSデータ通信を行う基本チュートリアルです。超小型・低コストながらクアッドバンド対応で、IoTプロトタイピングに最適です。
主な仕様
- 周波数帯: 850/900/1800/1900 MHz(クアッドバンド)
- 動作電圧: 4.8〜9 VDC(オンボードレギュレータ搭載)
- 消費電流: 最大 2A / スリープ 5 mA
- SIM: マイクロSIMスロット搭載
- 電源入力: マイクロUSB端子
- 通信IF: TTLシリアル / RS232
- ボーレート: 115200 bps(ATコマンドで変更可)
- ロジックレベル: 3.3 V
- 機能: 音声通話(ヘッドセット/エレクトレットマイク対応)、SMS送受信、TCP/IP・HTTP等のGPRSデータ通信
- アンテナ: SMA / IPX コネクタ
- ピンピッチ: 2.54 mm
配線(Arduino Uno + A6)
ATコマンドテスト用に最小4線で接続します。色分けすると分かりやすいです。
| 線色 | A6ピン | Arduino Uno |
|---|---|---|
| 赤 | VCC | +5V |
| 黒 | GND | GND |
| 橙 | U_RXD | D2(SoftwareSerial RX) |
| 黄 | U_TXD | D3(SoftwareSerial TX) |
ATコマンドテスト用スケッチ
ArduinoをUSBシリアル↔A6モジュールの透過ブリッジとして動作させ、PCのシリアルモニタから直接ATコマンドを送れるようにします。
#include <SoftwareSerial.h>
SoftwareSerial A6MODULE(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
delay(1000);
A6MODULE.begin(9600);
delay(1000);
}
void loop() {
// A6 → PC
while (A6MODULE.available()) {
Serial.write(A6MODULE.read());
}
// PC → A6
while (Serial.available()) {
A6MODULE.write(Serial.read());
}
}
動作確認手順
- スケッチを書き込み、シリアルモニタを開く(9600 bps、改行コード「改行」または「CR+LF」)
ATと入力してEnter →OKが返れば通信OK
主要ATコマンド早見表
音声通話
ATD+81XXXXXXXXXX ; 電話発信(国番号+番号)
ATH ; 通話切断
ATA ; 着信応答
SMS送信
AT+CMGF=1 ; テキストモード設定(OK応答)
AT+CMGS="+81XXXXXXXXXX" ; 宛先番号指定(> プロンプトが出る)
> 送信したいメッセージ
<Ctrl+Z> ; 送信実行(ASCII 0x1A)
SMS受信
AT+CMGF=1 ; テキストモード
AT+CNMI=2,2,0,0,0 ; 新着SMSを即時シリアル出力
GPRS/HTTP通信(概要)
AT+CGATT=1 ; GPRSアタッチ
AT+CGDCONT=1,"IP","APN名" ; APN設定
AT+CGACT=1,1 ; PDPコンテキスト活性化
AT+HTTPINIT ; HTTPサービス初期化
AT+HTTPPARA="URL","https://example.com/api"
AT+HTTPACTION=0 ; GET実行
AT+HTTPREAD ; レスポンス読み出し
AT+HTTPTERM ; HTTP終了
回路図
トラブルシューティングのポイント
- 電源不足: 送信時に2A近く流れるため、Arduinoの5Vピンから直接給電するとリセットされることがあります。別途5V/2A以上の安定化電源、またはLiPoバッテリー併用を推奨
- ボーレート不一致: 出荷時115200 bpsですが、
AT+IPR=9600で変更可能。SoftwareSerialの限界を考慮し9600 bps運用が無難 - TX/RX逆接続: A6のTXD→Arduino RX(D2)、A6のRXD→Arduino TX(D3)です。クロス接続を確認
- SIMカード: マイクロSIMサイズ。APN設定が必要なキャリアもあります(日本のMVNO等)
まとめ
A6モジュールは数百円〜千円程度で入手できる極めてコスパの高いGSM/GPRSモジュールです。ArduinoとSoftwareSerialで手軽にATコマンド制御でき、音声・SMS・データ通信をIoTデバイスに追加できます。本格量産時は電源設計とアンテナマッチングに注意し、認証済みモジュールへの移行を検討してください。
製造プロセス
- GY-91モジュールでRaspberry Pi上に堅牢な温度・センサーAPIを構築
- JX Wave Generator – Arduino互換DDS発振器(OLEDディスプレイ搭載)
- Arduino、Google Cardboard、Bluetoothで作るDIY VRスケートボード
- Arduino Nanoで作る防水シャワーFMラジオ:RDA5807、Nokia LCD、PAM8403搭載
- Arduino UNOでリアルタイム心電図表示 - uECGデバイスとOLED活用
- 自作Arduino J.A.R.V.I.S. 音声アシスタント - アークリアクター風デザイン
- 製造モジュールグループ完全攻略:部品表とオーダー管理
- Verilogモジュールの基礎:構造と構文
- Verilogパラメータのマスター:再利用可能でスケーラブルなモジュールの構築
- MATLAB必須コマンドリファレンス:効率的な計算のための完全ガイド
- Java 9モジュールシステム:リンクタイムとカスタムランタイムイメージ