Пусть у нас есть сервер, на который нам нужно передать какие-либо данные с удаленного девайса (например передать информацию о температуре, или о давлении или количестве подсчитанных импульсов, или о чем-то другом). Проделаем это мы через GPRS, используя модем SIM900.
В SIM900 встроен tcp/ip стек, а установка связи и управление происходит с помощью AT-команд. Далее описаны команды необходимые для установки соединения.
Общение с SIM900 происходит через USART — скорость USART SIM900 по умолчанию определяет сам — но для этого первой командой должна быть AT (заглавными буквами)
-> AT — первая команда для определения модемом скорости передачи и проверки работоспособности
<- OK — если все хорошо
-> AT+CPIN? — проверка работоспособности SIM карты и наличия отсутствия PIN-кода
<- +CPIN: READY — данный ответ при правильной работоспособности SIM карты и отсутствие PIN-кода
-> AT+CREG? — проверка регистрации в сети
-< +CREG: 0, 1: — ответ указывает на состояние регистрации
-> AT+CGATT? — проверка регистрации в GPRS сети
<- +CGATT: 1 — состояние регистрации в GPRS сети
NOTE: Выход модема STATUS будет выдавать импульсы различной длительности (см. DataSheet) в зависимости от состояния регистрации в GPRS и GSM сети
-> AT+CIPSHUT — сброс всех tcp/ip соединений
<- SHUT OK — все соединения разорваны
-> AT+CIPSTATUS — проверяет состояние инициализации IP стека
<- STATE: IP INITIAL — ответ когда стек проинициализирован
-> AT+CIPMUX=0 настраиваем соединение только с одним сервером
<- OK
-> AT+CSTT= “APN”, “UNAME”, “PWD” — данные настройки выдаются оператором связи, например, AT+CSTT=»internet.mts.ru»,»mts»,»mts»
<- OK
-> AT+CIICR — пытаемся установить GPRS соединение с настройками, заданными предыдущей командой. Ответ от этой команды может задержаться достаточно надолго — вплоть до 2 минут.
<- OK
-> AT+CIFSR — получаем локальный IP адрес
<- xxx.xxx.xxx.xxx — в ответе содержится непосредственно сам IP адрес
-> AT+CIPSTART= “TCP” , “IP-adr”, “TCP-port″ — подключаемся к серверу, указывая IP и TCP порт, например на котором работает сервер, AT+CIPSTART=»TCP»,»81.210.200.174″,»23070″
<- CONNECT OK — ответ при удачном соединение
-> AT+CIPSEND — запрос на посылку сообщения серверу
<- > — в ответе символ готовности, после его получения можно вводить данные, которые надо передать
-> data — данные которые необходимо передать. После ввода данных необходимо указать модему, что сообщение окончено и его надо передавать серверу — для этого передают следующую команду
-> 26 — команда конца сообщения (0x1A) после нее модем передает серверу данные data
-< SEND OK
-> AT+CIPCLOSE — закрытие соединения с сервером или можно вызвать AT+CIPSHUT
Если вы хотите использовать SIM900 как сервер, то вам нужна SIM карта c белым IP адресом. Обычно оператор вместе с такой SIM картой дает новый APN. Таким образом команда AT+CSTT должна указывать на тот APN, который вам дал оператор.
Стартовая инициализация сервера почти такая-же как и описана выше для клиента. Рассмотрим отличия:
Вместо AT+CIPSTART, надо давать команду:
-> AT+CIPSERVER=1, 3000 — где 1 указывает на то, что мы запускаем сервер, а 3000 — номер TCP порта, на котором поднимается сервер. IP адрес сервера — IP адрес SIM карты.
После, необходимо подключиться клиентом к серверу, тогда SIM900 выдаст ответ:
-< REMOTE IP: 10.78.103.220 — 10.78.103.220 — ip адрес, подключившегося клиента.
После можно отправлять данные с SIM900 также, как и было описано выше для клиента.
Для отключения cервера:
-> AT+CIPSERVER=0
-< OK
-< SERVER CLOSE