SIM800L_SMS_long_send_flash_Memory_PDU_Cyrillic_2021_03_09.ino
https://drive.google.com/drive/folder...
https://drive.google.com/drive/folder...
часть 1
https://ok.ru/group/55500490473687/to...
часть 2
https://ok.ru/group/55500490473687/to...
SIM800L_SMS_long_send_flash_Memory_PDU_UCS2_Cyrillic_Arduino_2021_03_09
arduino-IDE v 1.6.12 - (Arduino Pro Mini + SIM800L)
Отправка длинных SMS сообщений, в формате PDU / UCS2 - (кириллице и латинице), ("обычное-SMS" или "flash-SMS - флэш-SMS")
добавлена возможность хранить текст для SMS сообщения во Флэш-памяти atmega328.
в отличии от SRAM-памяти 2 KB, Flash memory / Флэш-память у atmega328 32 KB.
можно отправить небольшую книжку в SMS сообщение.
ВНИМАНИЕ; (если в коде используются - символы кириллицы) перед загрузкой кода в Arduino,
нужно сдвинуть в право или влево комментарии.
(проблемы с arduino-IDE v...)
обычное SMS сообщение, в формате PDU / UCS2, вмещает максимум 70 символов.
длинные SMS, разделяются на части, одна часть максимум 67 символов.
части SMS склеиваются, и отображаются на телефоне получателя как одно большое SMS
отправка возможна;
1.) через (монитор порта). на (кириллице и латинице)
2.) через CMD - bat файл. (кириллицу настроить не удалось, пока только на латинице)
3.) в коде, через передачу параметров в функцию. (проблемы с arduino-IDE v...)
строка для отправки SMS через (монитор порта), состоит из 3 параметров, разделённых символом '*', или '#'
сначала номера телефона получателя SMS, патом разделитель, патом текст SMS сообщения.
разделитель это тоже параметр,
'*' - flash-SMS - флэш-SMS")
'#' - "обычное-SMS"
// Препроцессорная компиляция кода.
// Препроцессор выполняет предварительную настройку кода, перед передачей компилятору (загрузкой в Arduino)
#define DEBUG_PRINT_SERIAL HIGH // (ВЫБЕРИТЕ!) режим тестирования устройства
// #define DEBUG_PRINT_SERIAL LOW // (ВЫБЕРИТЕ!) режим эксплуатации устройства
// для экономии памяти микроконтроллера, в режиме эксплуатации устройства, эти строки не будут загружаться в микроконтроллер
#if DEBUG_PRINT_SERIAL == HIGH
#define DEBUG_SERIAL_BEGIN(x) Serial.begin(x);
#define DEBUG_SERIAL_PRINT(x) Serial.print(x);
#define DEBUG_SERIAL_PRINTLN(x) Serial.println(x);
#define DEBUG_SERIAL_WRITE(x) Serial.write(x);
#else
#define DEBUG_SERIAL_BEGIN(x)
#define DEBUG_SERIAL_PRINT(x)
#define DEBUG_SERIAL_PRINTLN(x)
#define DEBUG_SERIAL_WRITE(x)
#endif
/* ###################################### */
/*
// для отладки кода, выводим название функции, номер строки начала функции, и другую информацию.
#define DEBUG_FUNCTION_LINE \
DEBUG_SERIAL_PRINT(__PRETTY_FUNCTION__); \
DEBUG_SERIAL_PRINT(F("\t""LINE""\t")); \
DEBUG_SERIAL_PRINT(__LINE__); \
DEBUG_SERIAL_PRINT(F("\t")); \
DEBUG_SERIAL_PRINTLN(__COUNTER__);
*/
// AT команды - для настройки SIM800L
#define FACTORY_RESET_SIM800L "AT&F" // Сброс настроек SIM800L до заводских
#define SMS_DEL_ALL R"(AT+CMGDA="DEL ALL")" // удаляем все SMS.
#define RESTART_SIM800L "AT+CFUN=1,1" // перезагружаем - SIM800L
#define SETUP_SMS_PDU_MODE "AT+CMGF=0;&W" // Включаем PDU режим SMS (PDU mode) и сохраняем значение (AT&W)!
#define SETUP_SMS_CENTER_NUMBER_MTS R"(AT+CSCA="+79168999100")" // установить номер центра отправки SMS сообщений MTS.
#define SETUP_DISABLE_ECHO "ATE0;&W" // отключить дублирование в терминале отправленной команды
#define SETUP_ERROR_RESPONSE_2 "AT+CMEE=2;&W" // 2 - сообщение об ошибке, содержит описание ошибки
#define RESPONSE_SMS_SENT_OK "+CMGS:" // УВЕДОМЛЕНИЕ - SMS отправлено успешно
// ###########################################
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// Прототипы функций: нужны - чтобы все функции были видны компилятору, вне зависимости от их расположения в коде
void FOO_serialReadStr(); // клавиши Ctrl + L (Перейти к строке) № 346
bool FOO_responseMySerial(char * , char * ); // (Перейти к строке) № 384
bool FOO_SMS_long_PDU_send(char * , char * , bool); // функция для отправки длинных SMS в PDU-формате // (Перейти к строке) № 438
void FOO_byteToHex2Char(byte , char &, char &); // (Перейти к строке) № 838
Ссылка на видео:
• SIM800L самый длинный SMS кириллица Ф...