Arduino GSM щит не отвечает.gsmAccess.begin () не работает - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь заставить свой arduino GSM щит работать с примером кода «Отправить SMS». Однако, когда я загружаю и компилирую программу, на мониторе последовательного порта отображается «Отправитель SMS-сообщений», и больше ничего не происходит.

Я использую Arduino Uno R3 и GSM SIM 900. питание от GSM с 5 В 1,5 А. Я подключил контакты 7 и 8 Arduino к контактам 7 и 8 GSM. Я тоже подключил GSM к земле.

Когда я использую SoftwareSerial.h, это работает. Но я хочу использовать библиотеку GSM.h, которая сейчас не работает. Любая помощь, пожалуйста

 // include the GSM library
 #include <GSM.h>

 // PIN Number for the SIM
    #define PINNUMBER ""

  // initialize the library instances
   GSM gsmAccess;
 GSM_SMS sms;

 // Array to hold the number a SMS is retrieved from
 char senderNumber[20];
  void setup() {
 // initialize serial communications and wait for port to open:
 Serial.begin(9600);
  while (!Serial) {
 ; // wait for serial port to connect. Needed for native USB port only
 }

Serial.println("SMS Messages Receiver");

// connection state
bool notConnected = true;

// Start GSM connection
while (notConnected) {
if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
  notConnected = false;
} else {
  Serial.println("Not connected");
  delay(1000);
 }
 }

Serial.println("GSM initialized");
Serial.println("Waiting for messages");
}
void loop() {
char c;

// If there are any SMSs available()
if (sms.available()) {
Serial.println("Message received from:");

// Get remote number
sms.remoteNumber(senderNumber, 20);
Serial.println(senderNumber);

// An example of message disposal
// Any messages starting with # should be discarded
if (sms.peek() == '#') {
  Serial.println("Discarded SMS");
  sms.flush();
}

// Read message bytes and print them
while (c = sms.read()) {
  Serial.print(c);
}

Serial.println("\nEND OF MESSAGE");

// Delete message from modem memory
sms.flush();
Serial.println("MESSAGE DELETED");
}

delay(1000);

}

Я ожидал, что этот код позволит мне получать сообщение, и я могу изменить его, чтобы сохранить сообщение в переменных

1 Ответ

1 голос
/ 03 июля 2019

Возможно, ваша проблема в проводке.

На вашей плате (Arduino UNO R3) есть UART (тот, который вы намереваетесь использовать при определении Serial.begin(9600) на выводах 0 RX и 1 TX. См. здесь для схемы и рисунка ниже (в верхнем правом углу с тегами TX и RX).

Последовательность с программной эмуляцией работает, потому что вы определяете контакты 7 и 8 как эмулируемые UART TX иRX сигналы.

Arduino UNO R3 board top side

...