私は現在、「Internet of Things」というドメインのミニプロジェクトに取り組んでいます。 GSMモジュールを使って無線掲示板をデザインすることにしました。Embedded CのGSMモデムからメッセージを読み取る方法は?
私はプロジェクトを2つのモジュールに分割しました。まず、完全に完成したArduino-LEDボードインターフェース。
第2に、GSM-Arduinoインターフェイス。基本的には、メッセージ/ SMSが携帯電話からGSMモジュールに送信され、その後Arduinoを使用してGSMモジュールからそのメッセージを読み取らなければなりません。私はここで問題に直面しています。メッセージはGSMモデムに送信されていますが、私はそれを読み取ることができません。私は別のコードを書こうとしましたが、動作しません。メッセージは表示されていません。
私が試したコードスニペットは次のとおりです。
`#include SoftwareSerial.h
SoftwareSerial SIM900A(2,3);// RX | TX
// Connect the SIM900A TX to Arduino pin 2 RX
// Connect the SIM900A RX to Arduino pin 3 TX.
void setup()
{
SIM900A.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600); // Setting the baud rate of Serial Monitor(Arduino)
Serial.println ("SIM900A Ready");
delay(100);
Serial.println (" Press s to send and r to recieve ");
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's': SendMessage();
break;
case 'r': RecieveMessage();
break;
}
if (SIM900A.available()>0)
Serial.write(SIM900A.read());
}
void SendMessage()
{
SIM900A.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
Serial.println ("Set SMS Number");
SIM900A.println("AT+CMGS=\"+91xxxxxxxxxx\"\r"); //Replace with your mobileno.
delay(1000);
Serial.println ("Set SMS Content");
SIM900A.println("Hello, I am SIM900A GSM Module");// The SMS text you want to send
delay(100);
Serial.println ("Finish");
SIM900A.println((char)26);// ASCII code of CTRL+Z
delay(1000);
Serial.println (" ->SMS Sent");
}
void RecieveMessage()
{
Serial.println ("SIM900A Receiving SMS");
delay (1000);
SIM900A.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
delay(1000);
Serial.write (" ->Unread SMS Recieved");
}`
ハードウェアが動作しているかどうかはわかりません。ハードウェアのデバッグを手助けすることはできません。あなたはラインのスコープで何を見ますか? – ThingyWotsit
ハードウェアは正常に動作します! GSMモジュールにSIMカードを挿入し、携帯電話から送信されたメッセージを受信しているかどうかをテストします。受信メッセージを読み取る方法は、私が問題に直面しているところです。私はGSMからのメッセージを読むことができません。 –
'Arduinoのインターフェースでデータを受信できない場合は、どのようにテストするのですか? – ThingyWotsit