В итоге не помогают команды на стирание хоть всего, хоть отправленных только, хоть в сетапе хоть в командной строке.
ОТвет после запуска
+CMGS: 93
OK
Что получается т.к. никто с этим не сталкивался и у остальных работает нормально то можно пока на это подзабить я полагаю, иначе эта тема была бы уже давно раскушена.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600); //Скорость порта для связи Arduino с компьютером
Serial.println("Goodnight moon!");
mySerial.begin(9600); //Скорость порта для связи Arduino с GSM модулем
//mySerial.println("ATE0");
mySerial.print("AT+CMGF=1\r");//устанавливает текстовый режим смс-сообщения
delay(1000);
mySerial.print("AT+IFC=1, 1\r");// устанавливает программный контроль потоком передачи данных
delay(1000);
mySerial.println("AT+CLIP=1\r"); //включаем АОН
delay(1000);
mySerial.println("AT+CSCS=\"GSM\"\r"); //режим кодировки текста
delay(1000);
mySerial.print("AT+CPBS=\"SM\"\r");// открывает доступ к данным телефонной книги SIM-карты
// delay(1000);
// mySerial.print("AT+CNMI=1,2,2,1,0\r");
delay(1000);
mySerial.println("AT+CMGDA=\"DEL SENT\"");
delay(1000);
mySerial.print("AT+CMGS="); // отправляем смс
mySerial.print((char)34);
mySerial.print("89111234567"); // номер получателя
mySerial.print((char)34); // символ кавычки "
mySerial.print((char)13); // символ <cr> (ASCII character 13)
delay(1500);
mySerial.print("SMS from GSM Shields"); // текст смс
delay(500);
mySerial.print((char)26); // символ <ctrl-z> (ASCII character 26)
}
void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
delay(2);
}
To NiKK 80: Кстати, решая свои проблемы по запустку своего модуля, я тоже упустил эту деталь. Сейчас в режиме отладки скеча, у меня +GMGS: 32
и так понимаю тоже никакие комманды типа DEL ALL, DEL SENT не помагают. Счетчик ползет наверх. Только вот в чем вопрос, эти смс-ки все же забивают симку, оставаясь внутри неё, или просто идет отсчет модулем отосланных смс-ок?
Удивителен еще вот какой факт: получаешь значит цифиру (например +GMGS: 30) и думаешь, что в памяти симки сохраняются 30 смс-ок. Делаешь DEL ALL или DEL SENT, получаешь положительный ответ, пытаешься (для контроля) прочитать группы смс-ок, в ответ пусто. Думаешь: Всё, работает. Модуль шлет смс-ку и в ответ: +GMGS: 31. Может все таки просто счетчик?
Досадно что нет тут возможности подключить батареечку для RTS...
Есть вопросы
1. Кто знает какое количество вмещается в sim800l входящих СМСок?
2. Подскажите также есть ли такие АТ команды , которыми можно просмотреть списком , входящие и исходящие звонки?
3. По СМС тоже такой вопрос, тут есть просмотр входящих AT+CMGL="ALL", а исходящие и сохраненные СМС, сохраняются ли в самом модуле , если да то как их можно просмотреть?
datasheet , это для тех кто без "учителя" все может освоить, для меня конечно английская грамота чуть понятнее чем китайская, но многое совсем простое понять не могу..
Честно говоря я наверное тут один такой, если бы не форум, то вообще бы ни на цент ничего не понял, о чем там.
И все таки, есть ли словесный ответ на мои вопросы?.
Short Circuit пишет:
ваши смс по умолчанию будут на симкарту писаться, а не по умолчанию
тут тоже вопросы, по умолчанию AT+CPBS="SM"
а если я активирую записи командой AT+CPBS="ME", все будет в памяти модуля sim800?
Потренировался тут чуть, оказвается в памяти модуля может храниться тольк10 СМС.
свое неотправленое сообщение пишется командой AT+CMGW , с этой командой все ОК.
А вот отправить это сохраненое неотправленное сообщение похоже что тут есть проблема
должно работать так
//К примеру, команда отправки сохраненного сообщения под номером 12 выглядит так:
AT+CMGS=12
//Этот способ удобен в тех случаях, когда один и тот же текст нужно доставить нескольким адресатам. Вместо того чтобы каждый раз передавать его устройству, достаточно один раз сохранить сообщение в памяти, а затем указывать модему лишь его индекс и номер получателя.
AT+CMGS=12,"+79295556924"
AT+CMGS=12,"+79295556925"
AT+CMGS=12,"+79295556926"
To NiKK 80: Кстати, решая свои проблемы по запустку своего модуля, я тоже упустил эту деталь. Сейчас в режиме отладки скеча, у меня +GMGS: 32
и так понимаю тоже никакие комманды типа DEL ALL, DEL SENT не помагают. Счетчик ползет наверх. Только вот в чем вопрос, эти смс-ки все же забивают симку, оставаясь внутри неё, или просто идет отсчет модулем отосланных смс-ок?
Удивителен еще вот какой факт: получаешь значит цифиру (например +GMGS: 30) и думаешь, что в памяти симки сохраняются 30 смс-ок. Делаешь DEL ALL или DEL SENT, получаешь положительный ответ, пытаешься (для контроля) прочитать группы смс-ок, в ответ пусто. Думаешь: Всё, работает. Модуль шлет смс-ку и в ответ: +GMGS: 31. Может все таки просто счетчик?
я тоже это заметил до вас но решил что и удалять тогда не нужно, (пока не пробовал)
а вот например так сформировать смс и послать несколько строк: не получается, использую процедуру отправки вверху - в смс приходит только "Rele-1: 0" например, в епром пишу 1 или 0 (вкл или выкл реле) почему не приходят остальные строки?? пробовал по разному, одна строка на ура. а больше нет..
#include
SoftwareSerial gsm(2, 3); // 2-txd, 3-rxo , Arduino mini или Arduino nano
void setup()
{
gsm.begin(9600);
gsm.write("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения
delay(300);
gsm.write("AT+IFC=1, 1\r"); //устанавливает программный контроль потоком передачи данных
delay(300);
gsm.write("AT+CPBS=\"SM\"\r");//открывает доступ к данным телефонной книги SIM-карты
delay(300);
gsm.write("AT+CNMI=1,2,2,1,0\r");// включает оповещение о новых сообщениях, новые сообщения
delay(500);
gsm.write("AT+GSMBUSY=1\r\n"); // запрет всех входящих звонков.
delay(300);
gsm.write("AT+CMGDA=DEL ALL\r\n"); // команда удалит все сообщения
delay(500);
gsm.println("AT+CSQ");// Проверяем уровень сигнала
delay(800);
}
void loop()
{
//*******************************************************************
if (gsm.available()) { //есть данные от GSM модуля
String currStr = ""; //выждем, чтобы строка успела попасть в порт целиком раньше чем будет считана
String currStrN = "";
String dataBalanceTemp = "";
String dataBalance = "";
String dataSms = "";
String val = "";
int flag1 = 0;
int flag2 = 0;
while (gsm.available()) { //сохраняем входную строку в переменную val
c:
int ch = gsm.read(); //int
val += char(ch); // String
char data = ch; // char = int
if ('\r' == data) {
currStr = "";
} else if ('\n' != data) {
currStr += String(data);
dataSms = currStr;
}
честно говоря, код считается крайне плохо, местами вообще непонятно из-за лишнего переноса строк, вы можете нормально вставить код в веб форму?? а то вроде хотите дать совет, а сами и не можете нормально совет оформить в удобоваримую форму.
поканичего не понятно, просто куски непонятного кода.
читал, а потом проверял на разных операторах, и скажу что автор заблуждается, работает не везде, и по умолчанию у операторов "111# а #111# то программистты у операторов сами допилили имхо..
а никто не делал код на интелектуальную проверку баланса симкарты, тоесть раз в сутки или по событию идет проверка баланса и ответ сравнивается с цифрой 100 например. если там баланс ниже 100 - шлем владельцу смс с остатком на балансе.
а никто не делал код на интелектуальную проверку баланса симкарты, тоесть раз в сутки или по событию идет проверка баланса и ответ сравнивается с цифрой 100 например. если там баланс ниже 100 - шлем владельцу смс с остатком на балансе.
Отличный пост, надо сделать:)
Как сделаю, напишу, но только для МТС
Немного отвлечённый вопрос, модуля под рукой сейчас нет чтоб проверить. Вопрос о приеме СМС модулем длинных текстовых сообщений. При отправке длинных СМС сообщений, насколько я знаю, текст разбивается на отдельные сообщения по 140 символов, а при приеме на уровне оператора (?) они склеиваются и получателю приходит одно длинное сообщение ? Я не ошибаюсь? Поправьте если не так. Так вот, мне необходимо будет отправлять на модуль оччень длинную строку, т.е. несколько СМС сразу. Что меня ждёт? У него ограничения какие-то по СМС, по длине строки и т.д. ?
смс ограничение 140 символов или сколько там. так я так понимаю это в обе стороны.
только вот откуда телефон знает, что данные два сообщения нужно склеить а не по одному показывать? видать есть служебная инфа. ведь если послать два отдельных с одного номера, то два отдельных и придет.
Интересные статьи, хорошо описано. Но, наверное, чтоб создать или распарсить строку PDU уже есть что-то готовое, типа библиотек или каждый ковыряется в одиночку и переставляет байты местами?
Я ковырялся, отталкиваясь от указанных статей. Но мне не надо было слеплять сообщения друг с другом. Написал простенькие говноклассы, если кому пригодится, мне не жалко:
пробую этот скетч, перебирая скорости для модуля.... в монитор порта после Goodnight moon! через некоторое время приходят пробелы. бесконечное количество.... непонятно
питание 4в
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
Serial.begin(19200); //Скорость порта для связи Arduino с компьютером
Serial.println("Goodnight moon!");
mySerial.begin(19200); //Скорость порта для связи Arduino с GSM модулем
mySerial.println("AT");
}
void loop() {
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
если с терминалки не удалет - то очень странно.
у меня со всех модулей в терминалке честно все команды работают, в том числе и эта.
To NiKK 80: Кстати, решая свои проблемы по запустку своего модуля, я тоже упустил эту деталь. Сейчас в режиме отладки скеча, у меня +GMGS: 32
и так понимаю тоже никакие комманды типа DEL ALL, DEL SENT не помагают. Счетчик ползет наверх. Только вот в чем вопрос, эти смс-ки все же забивают симку, оставаясь внутри неё, или просто идет отсчет модулем отосланных смс-ок?
Удивителен еще вот какой факт: получаешь значит цифиру (например +GMGS: 30) и думаешь, что в памяти симки сохраняются 30 смс-ок. Делаешь DEL ALL или DEL SENT, получаешь положительный ответ, пытаешься (для контроля) прочитать группы смс-ок, в ответ пусто. Думаешь: Всё, работает. Модуль шлет смс-ку и в ответ: +GMGS: 31. Может все таки просто счетчик?
Надо будет попробовать считать с него отправленные смс должна быть такая команда. Буду читать datasheet.
Здравствуйте.
С интересом рассматриваю возможности sim800l.
Досадно что нет тут возможности подключить батареечку для RTS...
Есть вопросы
1. Кто знает какое количество вмещается в sim800l входящих СМСок?
2. Подскажите также есть ли такие АТ команды , которыми можно просмотреть списком , входящие и исходящие звонки?
3. По СМС тоже такой вопрос, тут есть просмотр входящих AT+CMGL="ALL", а исходящие и сохраненные СМС, сохраняются ли в самом модуле , если да то как их можно просмотреть?
2 - а помоему даташит более красноречивее вам скажет.
ваши смс по умолчанию будут на симкарту писаться, а не по умолчанию - есть команды их даташита..
datasheet , это для тех кто без "учителя" все может освоить, для меня конечно английская грамота чуть понятнее чем китайская, но многое совсем простое понять не могу..
Честно говоря я наверное тут один такой, если бы не форум, то вообще бы ни на цент ничего не понял, о чем там.
И все таки, есть ли словесный ответ на мои вопросы?.
тут тоже вопросы, по умолчанию AT+CPBS="SM"
а если я активирую записи командой AT+CPBS="ME", все будет в памяти модуля sim800?
и в даташате, и в интернете - и так многое понтно без особых знаний английского, я тоже не знаю английский.
опрсите потом выбранную записную книжку - сколько там ячеек и т.д. запишите номер в ячейку, считайте.. и т.д.
Опрашиваю
Потренировался тут чуть, оказвается в памяти модуля может храниться тольк10 СМС.
свое неотправленое сообщение пишется командой AT+CMGW , с этой командой все ОК.
А вот отправить это сохраненое неотправленное сообщение похоже что тут есть проблема
должно работать так
Разве тут такое ,не применимо?
To NiKK 80: Кстати, решая свои проблемы по запустку своего модуля, я тоже упустил эту деталь. Сейчас в режиме отладки скеча, у меня +GMGS: 32
и так понимаю тоже никакие комманды типа DEL ALL, DEL SENT не помагают. Счетчик ползет наверх. Только вот в чем вопрос, эти смс-ки все же забивают симку, оставаясь внутри неё, или просто идет отсчет модулем отосланных смс-ок?
Удивителен еще вот какой факт: получаешь значит цифиру (например +GMGS: 30) и думаешь, что в памяти симки сохраняются 30 смс-ок. Делаешь DEL ALL или DEL SENT, получаешь положительный ответ, пытаешься (для контроля) прочитать группы смс-ок, в ответ пусто. Думаешь: Всё, работает. Модуль шлет смс-ку и в ответ: +GMGS: 31. Может все таки просто счетчик?
я тоже это заметил до вас но решил что и удалять тогда не нужно, (пока не пробовал)
Потренировался тут чуть, оказвается в памяти модуля может храниться тольк10 СМС.
свое неотправленое сообщение пишется командой AT+CMGW , с этой командой все ОК.
А вот отправить это сохраненое неотправленное сообщение похоже что тут есть проблема
должно работать так
Разве тут такое ,не применимо?
AT+CMGF=1
OK
AT+CMGS="+......."
>TEST <Ctrl+Z>
+CMGS: 239
а чем этот вариант хуже?
Слишком он прост, нет "пространства " для творчества.
А какой модуль у вас , что " +CMGS: 239 " достигло аж 239?
У меня по запросу
ATI //выдает
SIM800 R14.18
OK
Слишком он прост, нет "пространства " для творчества.
а здесь есть где творчеству развиваться? я думаю - да.
учимся правильно отправлять смс в которой сразу несколько строк.
мой опыт пока отрицательный.
смс в одну строку получается например таким кодом:
а вот например так сформировать смс и послать несколько строк: не получается, использую процедуру отправки вверху - в смс приходит только "Rele-1: 0" например, в епром пишу 1 или 0 (вкл или выкл реле) почему не приходят остальные строки?? пробовал по разному, одна строка на ура. а больше нет..
Как правильно "собрать смс из нескольких строк", где бывают ошибки? Потому что смотрю не только у меня по одной строке смс шли?
а где тут отправка нескольких строк то ?
А не пробовал
gsm.print("Rele-1: ");
gsm.print(String(EEPROM.read(2)))
gsm.print("\r\n")
итак далеевсе твои строчки за раз а потом символ отправки
да, по ходу ковырял и понял почему строчки не строятся как хочется, оставил только \n
и все отправилось как нужно, это я понял символ перевода строки.
еще вопрос, Делаю проверку баланса счета и смотрю что вычитывает ардуина..
так вот ответ такой:
//Разбор баланса для оператора МТС
#include
SoftwareSerial gsm(2, 3); // 2-txd, 3-rxo , Arduino mini или Arduino nano
void setup()
{
gsm.begin(9600);
gsm.write("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения
delay(300);
gsm.write("AT+IFC=1, 1\r"); //устанавливает программный контроль потоком передачи данных
delay(300);
gsm.write("AT+CPBS=\"SM\"\r");//открывает доступ к данным телефонной книги SIM-карты
delay(300);
gsm.write("AT+CNMI=1,2,2,1,0\r");// включает оповещение о новых сообщениях, новые сообщения
delay(500);
gsm.write("AT+GSMBUSY=1\r\n"); // запрет всех входящих звонков.
delay(300);
gsm.write("AT+CMGDA=DEL ALL\r\n"); // команда удалит все сообщения
delay(500);
gsm.println("AT+CSQ");// Проверяем уровень сигнала
delay(800);
}
void loop()
{
//*******************************************************************
if (gsm.available()) { //есть данные от GSM модуля
String currStr = ""; //выждем, чтобы строка успела попасть в порт целиком раньше чем будет считана
String currStrN = "";
String dataBalanceTemp = "";
String dataBalance = "";
String dataSms = "";
String val = "";
int flag1 = 0;
int flag2 = 0;
while (gsm.available()) { //сохраняем входную строку в переменную val
c:
int ch = gsm.read(); //int
val += char(ch); // String
char data = ch; // char = int
if ('\r' == data) {
currStr = "";
} else if ('\n' != data) {
currStr += String(data);
dataSms = currStr;
}
// Начинаем разбор полученного смс, Работает 100% с оператором МТС
//Полученный текст: +CUSD: 0, "Balance:117,27r ", 15
if (data == 'U' && flag1 == 2){flag2 = 3;}
if (data == 'S' && flag2 == 3){flag2 = 4;}
if (data == 'D' && flag2 == 4){flag2 = 5;}
if (data == ':' && flag2 == 5){flag2 = 6;}
if (data == '"' && flag2 == 6){dataBalanceTemp = ""; flag2 = 7; goto c;}
if (data != '"' && flag2 == 7){dataBalanceTemp += String(data); dataBalance = dataBalanceTemp;}
if (data == '"' && flag2 == 7){flag2 = 8;}
}
// Смотрим данные полученные от модуля, Получили смс с балансом, теперь отсылаем
if (val.indexOf("+CUSD:") > -1) {
// +CUSD: 0, "Balance:117,27r ", 15
if (dataBalance != "") {
smsSendAlarm("Hi, " + dataBalance);
dataBalance = "";
}
}
// Читаем смс полученные с мобильного
if (val.indexOf("+CMT") > -1) {
if (dataSms.indexOf("Balans") > -1) { // Запрос баланса
GoBalans();
}
}
}
}
//процедура отправки СМС
void smsSendAlarm(String text) {
String NBoss = "79115557744";
gsm.println("AT+CMGS=\"" + NBoss + "\""); //Отправляем на GSM комманду отправка смс-номер
NBoss = ""; //Очищаем перемунную
delay(300); //Делаем задержку на передачу комманды
gsm.print(text); //Отправляем на GSM комманду отправка смс-текст
text = ""; //Очищаем перемунную
delay(500); //Делаем задержку на передачу комманды
gsm.print((char)26); //Отправляем на GSM комманду отправка смс!
delay(5000); //Делаем задержку отправку смс
}
//Отправка смс о балансе
void GoBalans(){
gsm.print("AT+CUSD=1,");
gsm.print('"');
gsm.print("#100#");
gsm.println('"');
}
честно говоря, код считается крайне плохо, местами вообще непонятно из-за лишнего переноса строк, вы можете нормально вставить код в веб форму?? а то вроде хотите дать совет, а сами и не можете нормально совет оформить в удобоваримую форму.
поканичего не понятно, просто куски непонятного кода.
еще один момент не ясен:
как верно вставить строку AT+CUSD=1,"*101#" ??
делаю так:
но ругается компилятор на:
exit status 1 stray '#' in progra
ссылка на файл запроса баланса и ответ обратно на телефон:
https://yadi.sk/d/xlAHdS5BsXLWJ
еще один момент не ясен:
как верно вставить строку AT+CUSD=1,"*101#" ??
делаю так:
но ругается компилятор на:
exit status 1 stray '#' in progra
Правильно писать:
gsm.print("AT+CUSD=1,");
gsm.print('"');
gsm.print("#100#");
gsm.println('"');
кто вам сказал что правильно #100# а *100# - неправильно ??
как раз *100# - работает, а первый вариант - нет.
и зависит это от оператора, хотя *100# - помоему это всегда работает, это команда по умолчанию.
кто вам сказал что правильно #100# а *100# - неправильно ??
как раз *100# - работает, а первый вариант - нет.
и зависит это от оператора, хотя *100# - помоему это всегда работает, это команда по умолчанию.
читать надо лучше, в нете дофига примеров
кто вам сказал что правильно #100# а *100# - неправильно ??
как раз *100# - работает, а первый вариант - нет.
и зависит это от оператора, хотя *100# - помоему это всегда работает, это команда по умолчанию.
Почитай тут: http://alex-exe.ru/radio/wireless/gsm-sim900-at-command/
Раздел :USSD (Команды приведены для текстового режима и в GSM кодировке.)
Хочу отметить, #100# поддерживают все операторы, ответ приходит на латинице
Всем доброго дня.
Кое-что по работе с SIM800L есть здесь:
http://arduino.ru/forum/proekty/gsm-sistema-kontrolya-za-avtomaticheskim...
читал, а потом проверял на разных операторах, и скажу что автор заблуждается, работает не везде, и по умолчанию у операторов "111# а #111# то программистты у операторов сами допилили имхо..
а никто не делал код на интелектуальную проверку баланса симкарты, тоесть раз в сутки или по событию идет проверка баланса и ответ сравнивается с цифрой 100 например. если там баланс ниже 100 - шлем владельцу смс с остатком на балансе.
а никто не делал код на интелектуальную проверку баланса симкарты, тоесть раз в сутки или по событию идет проверка баланса и ответ сравнивается с цифрой 100 например. если там баланс ниже 100 - шлем владельцу смс с остатком на балансе.
Отличный пост, надо сделать:)
Как сделаю, напишу, но только для МТС
я делал. Только не раз в сутки, а просто с интервалом времени после отправки сообщения с контроллера.
Коллеги, вопрос. Сжег свой модуль GSM, приобрел другой. Вопрос: куда эту проволочку припаивать?
если антенна с разьемом не ставится, то рядом с разьемом - пин для запаивания "проволочки" - тоесть антенны.
Т.е. , проволочка ставится вместо антенны? А если я подключаю внешнюю антенну, то проволочка не нужна, верно?
и то и то - антенны. ставите одну антенну само собой.
Спасибо!
Немного отвлечённый вопрос, модуля под рукой сейчас нет чтоб проверить. Вопрос о приеме СМС модулем длинных текстовых сообщений. При отправке длинных СМС сообщений, насколько я знаю, текст разбивается на отдельные сообщения по 140 символов, а при приеме на уровне оператора (?) они склеиваются и получателю приходит одно длинное сообщение ? Я не ошибаюсь? Поправьте если не так. Так вот, мне необходимо будет отправлять на модуль оччень длинную строку, т.е. несколько СМС сразу. Что меня ждёт? У него ограничения какие-то по СМС, по длине строки и т.д. ?
Нет. Получателю приходит N сообщений, и склеивать их в одно - задача на стороне получателя.
смс ограничение 140 символов или сколько там. так я так понимаю это в обе стороны.
только вот откуда телефон знает, что данные два сообщения нужно склеить а не по одному показывать? видать есть служебная инфа. ведь если послать два отдельных с одного номера, то два отдельных и придет.
В служебных заголовках всё указано - к какому сообщению относится полученная часть, и номер этой части.
это видно в терминалке если принимать инфу с модуля?
За текстовый режим не скажу, в PDU-режиме - да, видно, там всё закодировано в PDU-пакете.
а если он не пду? а в текстовом режиме.
За текстовый не скажу, т.к. работаю только с PDU.
а есть рекомедация в каком документе почитать как с смс работать, или достаточно доков от симкома?
http://hardisoft.ru/soft/samodelkin-soft/poluchenie-i-dekodirovanie-sms-...
http://hardisoft.ru/soft/samodelkin-soft/poluchenie-i-dekodirovanie-sms-soobshhenij-v-formate-pdu/
Интересные статьи, хорошо описано. Но, наверное, чтоб создать или распарсить строку PDU уже есть что-то готовое, типа библиотек или каждый ковыряется в одиночку и переставляет байты местами?
Я ковырялся, отталкиваясь от указанных статей. Но мне не надо было слеплять сообщения друг с другом. Написал простенькие говноклассы, если кому пригодится, мне не жалко:
https://github.com/Porokhnya/GreenhouseProject/blob/master/Main/PDUClasses.h
https://github.com/Porokhnya/GreenhouseProject/blob/master/Main/PDUClasses.cpp
Там работа с UTF-8, правда, идёт, т.к. все исходники у меня в этой кодировке сохраняются. По итогу - можно принимать/отправлять SMS на русском.
Ну и, конечно, код по приведённым ссылкам полностью не мой - что-то надёргано из сторонних источников, сейчас уже и не упомню, из каких.
блин, чото не получается подружится с модулем(
пробую этот скетч, перебирая скорости для модуля.... в монитор порта после Goodnight moon! через некоторое время приходят пробелы. бесконечное количество.... непонятно
питание 4в