У продовження серії статей по GSM модему SIM900, а точніше по його AT командам, розповім, як працювати з GPRS його складової.
GSM GPRS модуль SIM900
Модуль все також підключений через UART. У нього встановлена SIM карта, він бачить мережу, на ньому є гроші, оператор підтримує GPRS, а послуга включена.
Не забувайте, що неправильно налаштований GPRS або великий трафік по лімітної тарифу може влетіти в копієчку.
Приступимо.
Налаштування GPRS з'єднання
Налаштування GPRS підключення і саме підключення до інтернету проводитися через одну команду AT + SAPBR з безліччю параметрів.
Кількість вхідних параметрів може доходити до 4-х:
1 параметр - тип виконуваної операції
- 0 - закрити з'єднання
- 1 - відкрити з'єднання
- 2 - запросити відомості про з'єднання
- 3 - передати параметри з'єднання
- 4 - запросити параметри з'єднання
- 5 - зберегти настройки в незалежну пам'ять модуля
2 параметр - CID або ідентифікатор профілю
Решта 2 параметра можуть застосовувати різні значення в залежності від запиту.
Відкрити FTP сесію для отримання даних
Параметр вказує - на відкриття FTP сесії
У відповіді повертається:
перший параметр - см вище,
а другий параметр - стан відкритої сесії або код помилки:
1 - сесія відкрита
61 - немає підключення
64 - час сесії минув
71 - неправильне їм користувача
72 - неправильно введений пароль
У разі успішно відкритої сесії повідомлення 1,1 повертатиметься протягом всієї сесії, кожні 2 секунди, поки сесія не буде закрита або вийде її ремя з кодом помилки 1,64.
Читання даних з FTP сервера
Перший параметр - вказує на читання даних з FTP сервера
Другий параметр вказує на кількість читаних байт
Відкрити FTP сесію для відправки даних
Параметр вказує - на відкриття FTP сесії
У відповіді:
Перший параметр - див. Вище
Другий параметр - стан відкритої сесії або код помилки:
1 - сесія відкрита
Третій параметр - в разі успішно відкритої сесії - максимальна кількість можливих прийнятих даних за одну сесію
Відправка даних
Перший параметр - вказує на відправку даних на FTP
Другий параметр - кількість відправлених даних
Після підтвердження прийому команди потрібно передати дані по UART
Повідомляємо сервер, що даних для передачі більше немає.
Або закриття сесії з передачі даних на FTP сервер.
Приклад FTP запиту:
+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.
Вітаю!
Дякую за статтю, класно і по порядку викладено.
У мене питання: хочу передати дані (цілі числа) з Sim900 на сервер, на стороні сервера використовую GET.
Через веб-форму (тобто, браузер) дані передаються і приймаються чудово. А через Sim900 в базу записуються нульові значення, причому записуються після комманди HTTPDATA, а відразу після HTTPACTION. Я так розумію, що GET приймає сигнал старту сесії за якесь число, і відправляє його в базу. Після цього з почуттям виконаного обов'язку завершує свою роботу.
Як цього уникнути, не знаєте?
Код сторінки, на всяк випадок:
Питання обміну інформацією поки-що торкнувся поверхнево і нічого нікуди не передавав, а тільки читав.
Можу порекомендувати почитати офіційну інструкцію по роботі з модулем - sim900_ip_application note_v1.03.
Alex_EXE, спасибі за посилання)
Привіт звідки у вас ця інформація де ще можна почитати оригінал?
Швидше за все з документації до самого модулю.
Посилання на даташіта наведені в першій статті по сім900.
Так само можете почитати інші стати з серії з цього модулю.
Як зробити, щоб при включенні модем автоматично включався GPRS?
З цього питання не підкажу, зазвичай цим у мене МК займається.
Хотілося б в'їхати в т.зв. CID - ідентифікатор профілю. На що він впливає? У наведених прикладах завжди бачу що він одиниця. Хоча, якщо я правильно зрозумів мануал по АТ командам, може приймати значення 1,2 і 3. Можна як то розжувати, а то щось не врублю ніяк.
З модулем розважався давно і точно не пам'ятаю:
здається збереження налаштувань профілю підключення до точки доступу. Тобто можна зробити два записи з різними настройками GPRS підключення (3-службова і недоступна для запису).
Детальніше дивіться опис до команди AT + CGDCONT. причому не тільки в описі до даного модулю.
Доброго вам дня! Дуже потрібна інформація з приводу передачі даних з одне модуля іншому безпосередньо. Якщо таке дійсно можливо, будь ласка, підкиньте якусь інфу або хоча б посилання де про це можна дізнатися? Буду безмежно вдячний за будь-яку корисну інформацію на цю тему!
Точно не пам'ятаю, але на мою вони відповідають за різні інтернет з'єднання.
Перший більше годиться для прямого TCP / IP через порт, який я так і не зміг випробувати, тому що потрібно було відключати захист роутера, з якою не хотів зв'язуватися.
Другий використовує більш високорівневі HTTP, FTP ... запити.
Дякую за статтю! Все працює до команді AT + HTTPTERM. На неї я не отримую відповідь від модуля «\ r \ nOK \ r \ n». Якщо повторно откріваю HTTP сесію, то на команду AT + HTTPINIT отримую відповідь «\ r \ nERROR \ r \ n». Нічого не допомагає до перевантаження модуля!
А час очікування відповіді не проходить до відправки завершення сесії? Може вона завершується раніше автоматично.
Я очікую 45 сек - і не приходить нічого! Взагалі! Ні ERROR, ні ОК - взагалі нічого!
На команду AT + SAPBR = 0,1 отримую OK, тобто профайл закрівается! А команда закрітія HTTP-сесії не проходить ні до, ні після! Повторно HTTP-сесія не запускається - не проходить команда AT + HTTPINIT. Доводиться перевантажувати модуль через PWRKEY.
AT + CNTP. А що єто за команда така? Її в описі немає.
Хочу записувати дані в файл 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
ЩО Я РОБЛЮ НЕ ТАК.
була помилка 1.64 вирішилося поповненням балансу сім карти (було 24 рубля стало 124) і запрацювало ... дивно як то ..