Имеется модуль https://ru.aliexpress.com/item/SIM8...467842817.html?spm=2114.13010608.0.134.2Icd8O и mega 2560. Код (C++): #include <SoftwareSerial.h> SoftwareSerial gprsSerial(15,16); void setup() { // put your setup code here, to run once: gprsSerial.begin(19200); // Cкорость передачи данных модуля Serial.begin(19200); delay(500); gprsSerial.print("AT+CMGF=1\r"); delay(100); // даём время на усваивание команды // Устанавливаем адресата: телефонный номер в международном формате gprsSerial.println("AT + CMGS = \"+79001110011\""); delay(100); // Пишем текст сообщения gprsSerial.println("ALARM!"); delay(100); // Отправляем Ctrl+Z, обозначая, что сообщение готово gprsSerial.println((char)26);gprsSerial.print("AT+CMGF=1\r"); } void loop() { } к 15 ноге Меги подключаю TX шилда, к 16 ноге Меги подключаю RX. СМС пока не приходит. Симка в порядке, питание в порядке. Подскажите где проблема. Заранее спасибо.
На AT команды отвечает модуль? на китайской меге перепутаны наименования 14 и 15 ног и 16,17 и 18,19 - попробуйте переключить местами. и инициализирую так Код (C++): Serial3.begin(9600); /*вместо */ SoftwareSerial gprsSerial(15,16);
Победил! Зацепил GSM на 16 и 17 ноги а это у нас получается Serial2. Соответственно минимальный скетч получается такой: Код (C++): void setup() { Serial.begin(19200); //Скорость порта для связи Arduino с компьютером Serial.println("Goodnight moon!"); Serial2.begin(19200); //Скорость порта для связи Arduino с GSM модулем Serial2.println("AT"); } void loop() { if (Serial2.available()) Serial.write(Serial2.read()); if (Serial.available()) Serial2.write(Serial.read()); } Плата реагирует на команды. Не нужны никакие SoftwareSerialы. Лишняя библиотека это лишняя занятая память. Теперь буду двигаться дальше..