目的: AT コマンドを Quectel M95 (GSM2 Click http://www.mikroe.com/click/gsm2/ ) に SoftwareSerial/Arduino 経由で送信し、応答を解析します。Arduino GSM ライブラリはありません。
現在の状態: さまざまなボー レート (9600 ~ 115200) で端末経由で M95 と完全に通信できます。AT コマンドをサブミットでき、目的の結果コードが表示されます。別のモデム (DroneCell) で試しましたが、結果は同じでした。すべての配線は 10 回チェックされ、正しいことが確認されました。SoftwareSerial 経由で AT コマンドを送信すると、SMS を送信したり、GPRS を実行したりできるため、モデムがデータを受信していることがわかります。有効な応答を取得できません。
問題: Arduino は、以下のコードを使用して GSM モジュールの応答を読み取ることができません。結果は文字化けしたテキスト/文字です - 可変で予測不可能です。AT コマンド "AT" を送信したときに期待される応答は "OK" です。
画像:
ターミナル経由の成功:
Arduino の応答:
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
SoftwareSerial mySerial(rxPin,txPin); // RX, TX
void setup(){
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Serial.begin(9600);
Serial.println("Arduino serial initialized!");
delay(10);
mySerial.begin(9600);
Serial.println("Software serial initialized!");
delay(10);
}
void loop(){
issueCommand("AT");
readSerial();
delay(500);
while(true){
readSerial();
}
}
void issueCommand(char* msg){
mySerial.println(msg);
Serial.print(msg);
delay(10);
}
void readSerial(){
while (mySerial.available()){
Serial.write(mySerial.read());
delay(10);
}
}