Как связаться с GPS SIM900a без serial monitor
Я довольно новичок в Arduino. Я работал над проектом, в котором использую модем GSM SIM900a, взаимодействующий с Arduino. AT-команды передаются через Arduino на GSM-модем. Проблема, однако, заключается в том, что команды отправляются только тогда, когда я открываю последовательный монитор. У меня есть ИК-датчик приближения, и я хотел бы, чтобы AT-команды отправлялись, когда датчик обнаруживает объект. Ниже я помещаю код GSM-модема (я еще не вставил код ИК-датчика).Я хочу знать, как отправлять AT-команды, когда Arduino подключен к батарее, а не к ПК
#include <SoftwareSerial.h>
SoftwareSerial myGsm(7,8);
float temp;
int tempPin = 0;
void setup()
{
myGsm.begin(9600);
Serial.begin(9600);
delay(500);
myGsm.println("AT+CIPSHUT");
delay(1000);
printSerialData();
myGsm.println("AT+CIPMUX=0");
delay(2000);
printSerialData();
myGsm.println("AT+CGATT=1");
delay(1000);
printSerialData();
myGsm.println("AT+CSTT=\"bsnlnet\",\"\",\"\"");// установка APN,2-й параметр пустой работает для всех сетей
delay(5000);
printSerialData();
myGsm.println();
myGsm.println("AT+CIICR");
delay(6000);
printSerialData();
myGsm.println("AT+CIFSR"); //init
delay(2000);
printSerialData();
myGsm.println("AT+CIPSTART=\"TCP\",\"122.178.80.228\",\"350\"");
delay(5000);
printSerialData();
delay(5000);
myGsm.println("AT+CIPSEND");
delay(2000);
printSerialData();
sendtemp();
delay(3000);
myGsm.println("AT+CIPCLOSE");
printSerialData();
myGsm.println("AT+CIPSHUT");
delay(1000);
printSerialData();
}
void loop()
{
}
void printSerialData()
{
while(myGsm.available()!=0)
Serial.write(myGsm.read());
}
void sendtemp()
{
temp = analogRead(tempPin);
temp = temp * 0.48828125;
Serial.print("TEMPERATURE = ");
Serial.print(temp);
Serial.print("*C");
Serial.println();
delay(5000);
myGsm.println(temp);
delay(3000);
printSerialData();
myGsm.write(0x1A);
delay(3000);
printSerialData();
}
1 ответ
Ну, у меня тоже была такая же проблема до сих пор. Простой способ исправить это - просто задержать void setup() до начала последовательной связи. Добавьте задержку (15000); // 15 секунд, чтобы GSM-модуль загрузился и подключился к сети. И нет необходимости менять какую-либо часть кода. Надеюсь, это поможет кому-то вроде меня. :)
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не отвечает на AT-команды
- GSM SIM900A Содержимое SMS не отображается
- Как отправить команду на Gsm модуль из Arduino через последовательный порт
- Последовательная связь между Arduino
- AT-команда не отвечает на последовательный монитор
- SIM800L не регистрируется в сети
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
Это сэкономило мне несколько часов перед презентациями в университете на выпускном курсе., @Samuel Silas