SIM900, работа c GPRS

Предшествующие материалы: GSM модем SIM900, AT-команды GSM модема SIM900.

В продолжение серии статей по GSM модему SIM900, а точнее по его AT командам, расскажу, как работать с GPRS его составляющей.

GSM GPRS модуль SIM900

GSM GPRS модуль SIM900

Модуль всё также подключен через UART. В него установлена SIM карта, он видит сеть, на нём есть деньги, оператор поддерживает GPRS соединение и эта услуга включена.

Не забывайте, что неправильно настроенный GPRS или большой трафик по лимитному тарифу может влететь в копеечку.
Приступим.

Настройка GPRS соединения

Настройки GPRS подключения и само подключение к интернету производиться через одну команду AT+SAPBR с множеством параметров.

Количество входных параметров может доходить до 4-х:

1 параметр — тип выполняемой операции

  • 0 – закрыть соединение
  • 1 – открыть соединение
  • 2 – запросить сведения о соединение
  • 3 – передать параметры соединения
  • 4 – запросить параметры соединения
  • 5 – сохранить настройки в энергонезависимую память модуля

2 параметр – CID или идентификатор профиля

Оставшиеся 2 параметра могут применять различные значения в зависимости от запроса.

Команда

Описание

AT+SAPBR=1,1
OK
Устанавливаем GPRS соединение
AT+SAPBR=2,1
+SAPBR: 1,1,"xxx.xxx.xxx.xxx"
OK
Получаем сведения о соединении и IP адрес
В ответе:
Второй параметр:
0 – соединение устанавливается
1 – соединение установлено
2 – соединение закрывается
3 – нет соединения
Третий параметр – IP адрес
AT+SAPBR=0,1
OK
Закрываем GPRS соединение
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.mts.ru"
OK
AT+SAPBR=3,1,"USER","mts"
OK
AT+SAPBR=3,1,"PWD","mts"
OK
Установка настроек подключения
CONTYPE – тип подключения GPRS или CSD
APN – точка подключения
USER – имя пользователя
PWD – пароль
PHONENUM – номер телефона (для CSD)
RATE – скорость соединения (для CSD)
AT+SAPBR=4,1
+SAPBR:
CONTYPE: GPRS
APN: internet.mts.ru
PHONENUM:
USER: mts
PWD: mts
RATE: 2
OK
Узнать текущие настройки подключения

Настройки GPRS автоматически не сохраняются в памяти модуля, но текущие настройки можно сохранить командой – AT+SAPBR=5,1.

Модуль позволяет использовать не только GPRS соединение для выхода в интернет, но и осуществлять передачу данных напрямую между модулями, но это рассматривать не буду.

Пример запроса для настройки GPRS соединения и подключения к итеренету:

AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.mts.ru"
OK
AT+SAPBR=3,1,"USER","mts"
OK
AT+SAPBR=3,1,"PWD","mts"
OK
AT+SAPBR=1,1
OK

В первой строке указываем, что используем GPRS соединение, далее точку доступа оператора, далее пользователя и пароль, для соединения. Завершаем запрос установлением подключения.

Во время нахождения в Интернете можно производить следующие операции: читать страницы (осуществлять html запросы), посещать ftp, со всеми вытекающими последствиями, обмениваться TCP и UDP пакетами, проверять электронную почту (требуется специальная прошивка, читайте в следующих статьях) и возможно многое другое. Начнём по порядку.

HTML запросы

Команда

Описание

AT+HTTPINIT
OK
Инициализация http сервиса
AT+HTTPPARA="CID",1
OK
Установка CID параметра для http сессии
AT+HTTPPARA="URL","http://alex-exe.ru/links/links.html"
OK
Указание адреса страницы
AT+HTTPACTION=0
OK
Старт сессии, на обмен данными данных
Параметр, метод запроса:
0 – GET
1 – POST
2 – HEAD
+HTTPACTION:0,200,1647 Возвращаются данные о запрошенной страницы:
Первый параметр – тип запроса, с.м. предыдущий пункт
Второй параметр – HTTP код – статус о выполнение операции или код ошибки
100 – соединение
200 – Ок
204 – нет контента
404 – страницы не найдено
Третий параметр – размер доступных данных (байт)
AT+HTTPREAD Чтение данных
Первый параметр – адрес, с которого начать чтение
Второй параметр – количество байт, которые нужно прочитать
+HTTPREAD:1647
……………………..
В ответ приходит информация о количестве прочитанных байт и прочитанные данные
AT+HTTPDATA=10,10000
DOWNLOAD
1234567890

OK

Передача данных HTTP серверу
Первый параметр – количество передаваемых байт
Второй параметр – время ожидания данных, загружаемых в UART
После отправки команды вернётся сообщение DOWNLOAD – приглашение на ввод данных. После удачной передачи данных вернётся OK, иначе error.
AT+HTTPTERM
OK
Завершить работу HTTP службы

Пример HTTP запроса:

AT+HTTPINIT
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPPARA="URL","http://alex-exe.ru/links/links.html"
OK
AT+HTTPACTION=0
OK
+HTTPACTION:0,200,1647
AT+HTTPREAD
+HTTPREAD:1647
<html>
<head>
<title>Alex_EXE — Сайты</title>
<link rel="StyleSheet" href="http://alex-exe.net.ru/wp-content/themes/redplanet-10/style.css" type="text/css"/>
</head>
<body>
<center>
<table border=1 cellspacing=0 cellpadding=0>
………………………………………………………
</html>
OK
AT+HTTPTERM
OK

В запросе: сначала на модуле запускаем HTTP службу, далее указываем страницу с которой будем работать. Работать со страницей можно по разному: можно только узнать, существует ли она и её размер (HEAD), можно передать данные (POST), а можно, банально, прочитать (GET), что и продемонстрировано в примере. После указания своих намерений и получения ответа в виде существования страницы и её размера можем приступить к её чтению. По завершению работы закрываем HTTP службу.

FTP запросы

Команда

Описание

AT+FTPCID=1
OK
Установка CID параметра FTP сессии
AT+FTPSERV="xxx.xxx.xxx.xxx"
OK
Адрес ftp сервера
из 32 бит формата xxx.xxx.xxx.xxx или в виде текстовой ASCII строки, длиной до 49 символов.
AT+FTPUN="anonymous"
OK
AT+FTPPW="password"
OK
Аутентификация на сервере
AT+FTPGETNAME="README"
OK
Имя файла
AT+FTPGETPATH="/pub/site/"
OK
Путь к файлу
AT+FTPGET=1
OK
+FTPGET:1,1
Открыть FTP сессию для получения данных
Параметр указывает – на открытие FTP сессии
В ответе возвращается:
первый параметр – см выше,
а второй параметр – состояние открытой сессии или код ошибки:
1 – сессия открыта
61 – нет подключения
64 – время сессии истекло
71 – неправильное им пользователя
72 – неправильно введен пароль
В случае успешно открытой сессии сообщение 1,1 будет возвращаться в течении всей сессии, каждые 2 секунды, пока сессия не будет закрыта или выйдет её ремя с кодом ошибки 1,64.
AT+FTPGET=2,1024
+FTPGET:2,175
……………………..
Чтение данных с FTP сервера
Первый параметр – указывает на чтение данных с FTP сервера
Второй параметр указывает на количество читаемых байт
AT+FTPPUT=1
+FTPPUT=1,1,1280
Открыть FTP сессию для отправки данных
Параметр указывает – на открытие FTP сессии
В ответе:
Первый параметр – см. выше
Второй параметр – состояние открытой сессии или код ошибки:
1 – сессия открыта
Третий параметр – в случае успешно открытой сессии – максимальное количество возможных принятых данных за одну сессию
AT+FTPPUT=2,100
+FTPPUT=2,100
……………………..
OK
Отправка данных
Первый параметр – указывает на отправку данных на FTP
Второй параметр – количество отправляемых данных
После подтверждение приёма команды нужно передать данные по UART
AT+FTPPUT=2,0
OK
Уведомляем сервер, что данных для передачи больше нет.
Или закрытие сессии по передаче данных на FTP сервер.

Пример FTP запроса:

AT+FTPCID=1
OK
AT+FTPSERV="149.20.4.69"
OK
AT+FTPUN="anonymous"
OK
AT+FTPPW="password"
OK
AT+FTPGETNAME="README"
OK
AT+FTPGETPATH="/pub/site/"
OK
AT+FTPGET=1
OK

+FTPGET:1,1
AT+FTPGET=2,1024
+FTPGET:2,175
This directory contains files related to the operation of the
kernel.org file itself.

The file sample_mirror_script.pl is a sample script for mirroring
kernel.org via rsync.

OK

В запросе зашли на FTP сервер ftp://kernel.org/ (можно зайти как по IP адресу, как в примере, а можно указать адрес в виде имени — kernel.org) под анонимным пользователем (имя и пароль для входа на открытые ресурсы по умолчанию). Указали имя файла, который собирались прочитать и путь к нему. Далее открыли FTP сессию и убедились, что всё сделали верно: интернет есть, сервер существует, путь к файлу и параметры аутентификации верны и файл доступен для чтения. Теперь, пока сессия не закончилась, мы можем прочитать доступный файл – читаем 1024 байта из файла. Прочитан весь файл в 175 байт и его содержимое выведено в терминал.

.

24 комментария »

Alex_EXE | 30.09.2013 | Связь | 31 532 просмотров

24 комментария на « SIM900, работа c GPRS»

  1. Андрей пишет 25.11.2015 в 16:46 #

    AT+CNTP !??? А что єто за команда такая? Ее в описании нет.

  2. Александр пишет 26.11.2015 в 02:02 #

  3. Евгений пишет 15.04.2016 в 16:01 #

    Хочу записывать данные в файл по ftp, но постоянно получаю ошибку +FTPGET:1,64.
    Вот ответы от SIM900:
    AT
    OK
    AT+GSV
    SIMCOM_LTD
    SIMCOM_SIM900
    Revision:1137B04SIM900M64_ST_ENHANCE

    OK
    AT+SAPBR=3,1,»CONTYPE»,»GPRS»
    OK
    AT+SAPBR=3,1,»APN»,»internet.tele2.ru»
    OK
    AT+SAPBR=1,1
    OK
    AT+SAPBR=2,1
    +SAPBR: 1,1,»10.72.79.113″

    OK
    AT+SAPBR=4,1
    +SAPBR:
    CONTYPE: GPRS
    APN: internet.tele2.ru
    PHONENUM:
    USER:
    PWD:
    RATE: 2

    OK
    AT+FTPCID=1
    OK
    AT+FTPSERV=»192.150.16.26″
    OK
    AT+FTPGETNAME=»license.txt»
    OK
    AT+FTPGETPATH=»/»
    OK
    AT+FTPMODE=1
    OK
    AT+FTPTYPE=»A»
    OK
    AT+FTPGET=1
    OK

    +FTPGET:1,64

    ЧТО Я ДЕЛАЮ НЕ ТАК????

  4. elfrom пишет 30.12.2016 в 12:03 #

    была ошибка 1.64 решилось пополнением баланса сим карты (было 24 рубля стало 124) и заработало… странно как то..

Комментарии RSS

Оставьте отзыв