Содержание
GSM-модем SIM800L. Советы по использованию.
Вводная часть
Здесь и далее в статье, GSM-модулем SIM800L или модемом (GSM-модемом) будет называться модуль SIMCom SIM800L распаянный на такой плате:
Говорить так про плату не совсем корректно. Вообще то модуль SIM800L скрывается под металлической крышкой с бело-красной наклейкой:

Сердцем модуля SIM800L является чип Mediatek ARM MT6261. Это тот который побольше. За GSM/GPRS-связь отвечает 4- диапазонный (GSM850/GSM900/DCS1800/PCS1900) приемопередатчик RF7198. На фото поменьше.
SIM800L. Руководство по началу работы
Питание
Для начала работы понадобится рабочая SIM-карта формата microSIM. Для питания модуля требуется напряжение из диапазона 3,4-4,5 В, рекомендованное 4 В. Это нестандартное для Arduino/Raspberry Pi 3, напряжения (5 В / 3.3 В), поэтому необходимо использовать отдельный источник питания.
При подключении питания, не соответствующего требуемому, модем выдает два типа сообщений. В случае, если питание находится на пороговом уровне (≤3.5 В, ≥4.4 В), модуль выдает предупреждение UNDER-VOLTAGE WARNING, OVER-VOLTAGE WARNING. В случаях, когда пороговый уровень превышен (≤3.4 В, ≥4.5 В), модуль сообщает об этом — UNDER-VOLTAGE POWER DOWN, OVER-VOLTAGE POWER DOWN и выключается. С температурой дела обстоят также — при превышении пороговых значений (-30…80°С), сначала предупреждение, потом выключение.
Нельзя запитывать модуль SIM800L от Arduino. Дело в том, что по даташиту максимальное потребление тока может достигает 2А. Arduino не в состоянии обеспечить его таким током, поэтому очень вероятен сбой в работе — будет работать некорректно или модем, или Arduino, или оба вместе взятые.
Синхронизация времени для SIM800L
Иногда работа IoT устройств происходит при отсутствии интернета, а синхронизация устройства по времени очень важна. Время SIM800L может быть синхронизировано с NTP серверами оператора сотовой связи, и это очень полезное свойство.
Итак давайте прочитаем из SIM800L текущее местное время оператора сотовой связи.
AT+CCLK?
+CCLK: «04/01/01,00:00:40+12»
OK
Мы видим время от момента подключения модуля сети сотовой связи. Это нас немного не устраивает. Проверим автоматическую синхронизацию времени.
AT+CLTS?
+CLTS: 0
OK
Синхронизация выключена. Активируем автоматическую синхронизацию времени командой AT+CLTS:
AT+CLTS=1
OK
Сохраним настройку в памяти, чтобы не потерять её после первой же перезагрузки модуля. SIM800L.
AT&W
Перезагружаем модем командой AT+CFUN=1,1 (не всегда корректно отрабатывает) или AT+CFUN
AT+CFUN=0
+SAPBR 1: DEACT
+PDP: DEACT
+CPIN: NOT READY
OK
AT+CFUN=1
+CPIN: READY
OK
SMS Ready
Call Ready
*PSUTTZ: 2019,5,25,18,46,18,»+12″,0
DST: 0
Проверяем повторно время
AT+CCLK?
+CCLK: «19/05/25,21:50:06+12»
OK
Теперь время возвращается правильное. Оно возвращается в формате: «yy/mm/dd,hh:mm:ss+/-zz».