Я использую GSM-модем SIM340 и совместимый с Ramtron 8051 микроконтроллер.
Следуйте моей собственной последовательности для подключения к удаленному серверу, используя эту конфигурацию:
ATE0 // эхо, необязательно, облегчает анализ ответов SIM340; если вы используете терминальную программу, вы не хотите деактивировать эхо.
AT + CNMI = 0,0,0,0,0 // не выдают сообщения при получении нового SMS; опять же, облегчает мне жизнь, если мне не нужно проверять нежелательные ответы.
AT + CMGF = 1 // Формат SMS: текст
AT + CIPFLP = 0 // не фиксировать локальный порт (согласно приложению на SIM-карте это обеспечивает более быстрое переподключение к серверу)
AT + CIPMODE = 1 // Прозрачный режим TCP: все данные, записанные в модуль GSM, отправляются через TCP-соединение
AT + CIPCSGP = 1, "gprs.personal.com", "gprs", "adgj" // Настройки APN (APN, имя пользователя, пароль)
AT + CGDCONT = 1, "IP", "gprs.personal.com" // тип соединения
AT + CIPCCFG = 3,2,256,1
AT + CIPSTART = "TCP", "xxx.xxx.xxx.xxx", "82" // подключается к серверу по IP-адресу xxx.xxx.xxx.xxx, порт 82
После выдачи последней команды модуль GSM ответит «CONNECT OK», если попытка подключения была успешной.
С этого момента каждый байт, отправленный в UART GSM, будет отправлен на сервер.
Чтобы вернуться в командный режим, вы можете отправить строку «+++» (три знака плюс) без задержки между ними и без байта до или после в течение как минимум 0,5 с.
Если по какой-либо причине соединение с сервером обрывается, вы можете восстановить соединение, используя:
AT + CIPSHUT // закрывает TCP-соединение
AT + CIPSTART = "TCP", "xxx.xxx.xxx.xxx", "82" // повторно выполнить команду для запуска соединения TCP
С уважением.