Отправить SMS Arduino Uno + плата SIM900A
Я работаю над модулем для отправки сообщений. Я пишу сообщение на последовательный монитор + номер телефона, и я должен отправить сообщение на линию.
Вопрос:
Как отправлять сообщения через экран SIM900A?
Проблема: Что я делаю неправильно в своем коде? Потому что я не получаю ошибку, но не отправляет смс с помощью щита.
Попробуйте:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6, 7);
char msg;
void setup() {
mySerial.begin(9600); // Установка скорости передачи GSM-модуля
Serial.begin(9600); // Установка скорости передачи Serial Monitor (Arduino)
delay(100);
}
void loop() {
if (Serial.available()>0)
switch(Serial.read()) {
mySerial.println("AT+CMGF=1"); // Устанавливает модуль GSM в текстовый режим
delay(1000); // Задержка 1000 миллисекунд или 1 секунда
mySerial.println("AT+CMGS=\"+XXXXXXXXX\"\r"); // номер мобильного телефона
delay(1000);
mySerial.println("sim900a sms");// Текст SMS, который вы хотите отправить
delay(100);
mySerial.println((char)26);// ASCII-код CTRL+Z
delay(1000);
}
if (mySerial.available()>0) Serial.write(mySerial.read());
}
Это мой щит
Другая попытка:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(6, 7);
char msg;
void setup() {
mySerial.begin(9600); // Установка скорости передачи GSM-модуля
Serial.begin(9600); // Установка скорости передачи Serial Monitor (Arduino)
delay(100);
}
void loop() {
mySerial.println("AT+CMGF=1"); // Устанавливает модуль GSM в текстовый режим
delay(1000); // Задержка 1000 миллисекунд или 1 секунда
mySerial.println("AT+CMGS=\"+XXXXXXXXX\"\r"); // номер мобильного телефона
delay(1000);
mySerial.println("sim900a sms");// Текст SMS, который вы хотите отправить
delay(100);
mySerial.println((char)26);// ASCII-код CTRL+Z
delay(1000);
}
@R. Fernandez, 👍-1
Обсуждение1 ответ
На самом деле вопроса не было, но я заметил, что в вашем операторе switch нет регистра..
пример из здесь
// делаем что-то другое в зависимости от значения диапазона:
switch (range) {
case 0: // ваша рука на датчике
Serial.println("dark");
break;
case 1: // ваша рука находится близко к датчику
Serial.println("dim");
break;
case 2: // ваша рука находится в нескольких дюймах от сенсора
Serial.println("medium");
break;
case 3: // ваша рука не находится рядом с датчиком
Serial.println("bright");
break;
}
delay(1); // задержка между чтениями для стабильности
нужно отправить сообщение щиту, @R. Fernandez
Хотите ли вы отправлять все эти команды при получении ЛЮБОГО байта от Serial.read()?, @Chad G
переключатель - посмотреть есть данные или нет в серийнике, вопрос. Как отправить СМС с помощью щита?, @R. Fernandez
@R.Fernandez Это не то, как работает оператор switch
., @gre_gor
println() также добавляет новую строку ( \n ) в конец того, что вы отправляете, не уверен, ожидает ли ваш модуль этого или нет, но у вас также есть возврат ( \r ) в одном из ваших сообщений, необходимо проверить посмотреть, что именно ожидает модуль, @Chad G
- Как использовать I2C от Arduino Uno, когда у меня установлен GSM-shield?
- Ошибка AT%13% с защитой GSM/GPRS
- SD-карта не инициализируется
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- SIM900 3G? Или SIM900A умеет подключаться к 3G?
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
И вопрос/проблема?, @gre_gor
Вопросов по-прежнему нет., @gre_gor
сейчас? Помоги мне, пожалуйста, @R. Fernandez