:::: MENU ::::

SIM900 — TCP соединение с сервером / сервер

Пусть у нас есть сервер, на который нам нужно передать какие-либо данные с удаленного девайса (например передать информацию о температуре, или о давлении или количестве подсчитанных импульсов, или о чем-то другом). Проделаем это мы через 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


  • Павел Сафронов

    Все по полочкам, огромное спасибо!

  • Megan Novosibirsk

    спасибо чувак

  • Roman Golovkin

    Передать-то передали,а как принять данные со стека?