Перейти к содержанию

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


b00blik

Рекомендуемые сообщения

Доброго времени суток!
вот  ковыряю я ардуиновский модуль CSM/GPRS  SIM800L. 
Пытаюсь собрать устройство которое имеет  модуль CSM/GPRS  SIM800L,  порт RS485 (для опроса датчиков) и USB (для настройка девайса) + Мега 328
Хочу организовать опрос датчиков удаленно:

на ПК стоит CSM/GPRS модем
устанавливаю соединение с GPRS  на ПК ( оператор МТС,  APN - internet, звоню на номер *99#)
Запускаю программулину TIBBO , создаю виртуальный ком порт, указываю IPадрес:порт  моего девайса  и работаю со своим удаленным устройством по GPRS   как с простым ком портом.

вот теперь задача: надо ввести мой девайс в прозрачный режим передачи данных по GPRS,  тоесть пересылать данные с SIM800L(0й -USART Меги 328)  в  1й USART  Меги 328 ( в данном случае порт RS48) и потом с порта опять в SIM800L, если подключен  2й USARт  (USB )  пересылать данные с SIM800L в 2й USARт и обратно.

девайс, я так понял что, должен работать в режиме сервера (SIM карта с выделенным IP есть)

с меги посылаю модулю

>AT 
<OK 
AT+CPIN=0000 
<OK 
AT+COPS? 
<+COPS:1 
AT+CREG? 
< +CREG: 0, 1 AT+CGATT? 
<+CGATT: 1  состояние регистрации в GPRS сети


А вот дальше я завис...
--------------1 вариант--------------

даю 

 

AT+CGDCONT=1,"IP","inetnet" 
<OK 
AT+CGACT=1,1 
<OK 
AT+CGDATA=1 
<CONNECT

и мне с SIM800L в USART  меги начанает сыпать мусор пакет длинной ~ 20 символов 1 раз в секунду, помогает только RESET

------------2й вариант------------
даю 

 

AT+CGDCONT=1,"IP","inetnet" 
<OK 
AT+CGACT=1,1 
<OK 
ATD*99***1#;

и мне с SIM800L в USART  меги начанает сыпать мусор пакет длинной ~ 20 символов 1 раз в секунду, помогает только RESET

----------3й вариант----------------
даю

 

>AT+CIPSHUT -сброс всех tcp/ip соединений 
< SHUT OK 
AT+CIPSTATUS 
< STATE: IP INITIAL 
AT+CIPMUX=0 настраиваем соединение только с одним каналом 
<OK 
AT+CSTT= "internet", "", "" 
<OK 
AT+CIICR - пытаемся установить GPRS соединение жду 
<OK 
AT+CIFSR 
< 100.85.76.xxx 
AT+CIPSERVER=1, 2001 - запускаем сервер с TCP портом 2001

тут я с ПК даже пингую свой ip,  соединяюсь, даже принимаю данные. но в таком режиме не все байты пропускает, есть коммандные байты, которые "сьедаются", например байт 0х1А модуль принимает как конец посылки

как только ПК соединяется то я получаю
<+REMOTE IP: 100.78.14.ххх
затем получаю пакет, а вот как отправить я не знаю

----------4й вариант ----------------------

AT+SAPBR=3,1,"CONTYPE","GPRS" 
OK 
AT+SAPBR=3,1,"APN","internet" 
OK 
AT+SAPBR=1,1 
OK

 модуль  SIM800 уходит в GPRS подключение, "лампочка" быстро мигает,  но я его не могу пропинговать, я не вижу его в сети и как передать данные?

 

и 5й вариант нашел

1: Прикрепите к сервису GPRS «AT + CGATT = 1»
2: Подождите, присоедините OK и установите контекст 0 как FGCNT "AT + QIFGCNT = 0"
 3: Ожидание контекста ОК и Установка типа носителя как GPRS, APN, имя пользователя и пароль «AT + QICSGP = 1 ...»
 4: Подождите OK и активируйте функцию MUXIP «AT + QIMUX = 1»
 5: Подождите, пока отключите MUXIP OK и установите режим сеанса как непрозрачный «AT + QIMODE = 0»
 6: Дождитесь режима сеанса OK и Включить уведомление, когда полученные данные «AT + QINDI = 1»
 8: Подождите доменное имя ОК и зарегистрируйте стек TCP / IP «AT + QIREGAPP»
 9: Подождите, чтобы зарегистрировать OK и активировать FGCNT "AT + QIACT"
 10: Подождите, чтобы активировать OK


 

кто работал с GPRS ?  колитесь! какие тут мантры надо читать?  чем этот модуль надо обкуривать? и какой тряпочкой протирать? как правильно создать GPRS соединение чтобы  "удлинить" ком порт по GPRS  и передавать по нему данные/ как это делают модемы типа iRZ ATM2 или MС52iT

Ссылка на комментарий
Поделиться на другие сайты

нашел, вот если кому пригодится:

Инициализация

AT+CPIN? // Проверка готовности SIM-карты;
+CPIN: READY
OK
AT+CSQ // Уровень сигнала RSSI=18 ед., удовлетворительный уровень;
+CSQ: 18,0
OK
AT+CREG? // Проверка наличия регистрации сети GSM;
+CREG: 0,1
OK
AT+CGATT? // Проверка доступа к услугам пакетнойпередачи данных;
+CGATT: 1
OK
AT+CIPMODE=0 // Командный режим передачи данных;
OK
AT+CIPMUX=0 // Моносокет;
OK


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

AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CSTTinternet» // Настройка точки доступа;
OK
AT+CIPSTATUS
OK
STATE: IP START
AT+CIICR // Активация контекста;
OK
AT+CIPSTATUS
OK
STATE: IP GPRSACT
AT+CIFSR
100.86.15.224
AT+CIPSTATUS
OK
STATE: IP STATUS
AT+CIPSTARTTCP»,»81.95.20.18»,8888 // Открытиесоединения с удаленным сервером;
OK
CONNECT OK // Сообщение об успешном открытиисоединения;
AT+CIPSTATUS
OK
STATE: CONNECT OK


 


Передача данных с подтверждением в командном режиме

AT+CIPSEND? // Проверяем максимальный размерданных, которые можно послать в сторону удаленнойстороны. Этот размер зависит от сети;
+CIPSEND: 1460
OK
AT+CIPQSEND? // Нормальный режим передачи данных.При этом режиме каждая порция высланных данных подтверждается сообщением “SEND OK”, что означает, чтосервер данные принял и подтвердил их получение;
+CIPQSEND: 0
OK
AT+CIPSEND=100 // Передача 100 байт данных;
> // Приглашение; hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данных не должен быть больше1460 байт;
SEND OK // Данные успешно переданы;
AT+CIPSEND // Передача данных произвольного размера;
> hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello // Размер данныхне должен быть больше 1460 байт и в конце блока данныхследует байт 0x1A;
SEND OK


Быстрая передача данных в командном режиме

AT+CIPQSEND=1 // Режим быстрой передачи данных.
Этот режим подразумевает передачу данных без ожидания
от сервера подтверждения о получении;
OK
AT+CIPSEND=100 // Передача 100 байт данных;
> hellohellohellohellohellohellohellohellohellohellohellohellohe
llohellohellohellohellohellohellohello
DATA ACCEPT:100 // Модуль принял данные в свой
буфер и вышлет их в сторону сервера в фоновом
режиме;
AT+CIPACK // Проверка: 300 байт передано на сервер
из них 300 байт сервером приняты и подтверждены;
+CIPACK: 300,300,0
OK
AT+CIPSEND // Передача данных произвольного раз-
мера происходит аналогичным образом;
> hellohellohellohellohellohellohellohellohellohellohellohellohe
llohellohellohellohellohellohellohello
DATA ACCEPT:100
AT+CIPACK
+CIPACK: 400,400,0
OK
AT+CIPQSEND=0 // Нормальный режим передачи
данных;
OK

Прием данных в командном режиме, автоматический вывод принятых данных

AT // Модуль находится в командном режиме;
OK
AT
OK
HelloHelloHelloHelloHelloHelloHelloHelloHelloHello //
Данные, принятые от сервера выводятся из порта UART
модуля SIM5300EA автоматически. Данные выводятся
«как есть» и это неудобно, поэтому будут полезны
следующие настройки;
AT
OK
AT+CIPHEAD=1 // Перед блоком данных, принятых
от сервера добавлять заголовок формата +IPD,<длина
блока данных>;
OK
AT+CIPSRIP=1 // При приеме данных показы-
вать уведомление в виде RECV FROM:<IP адрес
отправителя>,<порт>;
OK
AT+CIPSHOWTP=1 // Показывать тип протокола
в уведомлении +IPD,<длина блока данных>,<тип протокола>;
OK
RECV FROM:81.95.20.18:8888 // Блок принятых данных,
обрамленных уведомлением и заголовком с указанием
типа протокола TCP и длиной 50 байт;
+IPD,50,TCP:HelloHelloHelloHelloHelloHelloHelloHelloHell
oHello


Прием данных в командном режиме, ручной вывод принятых данных
Для смены способа вывода данных требуется разорвать соединение и деактивировать контекст.

AT+CIPCLOSE // Закрытие соединения;
CLOSE OK
AT+CIPSTATUS
OK
STATE: TCP CLOSED
AT+CIPSHUT // Деактивация контекста;
SHUT OK
AT+CIPRXGET?
+CIPRXGET: 0 // Автоматический вывод принятых
данных;
OK
AT+CIPRXGET=1 // Настройка ручного вывода данных;
OK
AT+CSTT
OK
AT+CIICR
OK
AT+CIFSR
100.116.1.79
AT+CIPSTARTTCP»,»81.95.20.18»,8888
OK
CONNECT OK
AT
OK
AT
OK
+CIPRXGET: 181.95.20.18:8888» // Уведомление о
приеме данных от сервера;
AT
OK
AT+CIPRXGET=4 // Уточнение размера принятых
данных;
+CIPRXGET: 4,100 // Пришло 100 байт данных;
OK
AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART;
+CIPRXGET: 2,20,8081.95.20.18:8888» // В буфере
модуля осталось 80 байт;
HelloHelloHelloHello // Запрошенные 20 байт данных;
OK
AT+CIPRXGET=2,20 // Вывести 20 байт в порт UART;
+CIPRXGET: 2,20,6081.95.20.18:8888» // В буфере
модуля осталось 60 байт;
HelloHelloHelloHello // Запрошенные 20 байт
данных;
OK
AT+CIPRXGET=2,60 // Вывести 60 байт в порт UART
+CIPRXGET: 2,60,081.95.20.18:8888» // Приемный
буфер модуля пуст;
HelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHelloHello
// Запрошенные 60 байт данных;
OK
AT+CIPRXGET=4 // Проверка наличия данных в буфере
модуля;
+CIPRXGET: 4,0 // Буфер пуст
OK


Обмен данными с сервером в прозрачном режиме
Для смены режима передачи данных требуется разорвать соединение и деактивировать контекст.

AT+CIPCLOSE
CLOSE OK
AT+CIPSHUT
SHUT OK
AT+IFC=2,2 // Аппаратный контроль потока должен
быть включен, чтобы избежать потери данных;
OK
AT+CIPMODE=1 // Прозрачный режим передачи данных
OK
AT+CIICR
OK
AT+CIFSR
100.71.67.196
AT+CIPSTARTTCP»,»81.95.20.18»,8888
OK
CONNECT // Соединение установлено;
HelloHelloHelloHelloHelloHelloHelloHelloHelloHello //
/Передача данных на сервер как есть;
HelloHelloHelloHelloHelloHelloHelloHelloHelloHello //
Прием данных от сервера как есть;
AT // АТ команды будут неотвеченными и будут
восприняты как данные для отсылки;
AT
+++ // Эта escape-последовательность переведет
модуль в режим АТ команд, но при этом контекст
и соединение сохраняются активными;
OK // В этом месте можно обработать входящие СМС,
отменить входящий голосовой вызов и проч.;
AT
OK
AT
OK
AT
OK
ATO // Команда ATO возвращает модуль в режим пере-
дачи данных;
CONNECT
HelloHelloHelloHelloHelloHelloHelloHelloHelloHello
HelloHelloHelloHelloHelloHelloHelloHelloHelloHello
CLOSED // Это сообщение говорит о том, что удален-
ная сторона закрыла сокет. Теперь встроенный стек
TCP/IP нужно перевести в исходное состояние;
AT+CIPSTATUS
OK
STATE: TCP CLOSED
AT+CIPSHUT
SHUT OK
AT+CIPSTATUS
OK
STATE: IP INITIAL // Стек в исходном состоянии.

 

Изменено пользователем b00blik
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Коллеги!

Спасите/помогите!

 

Мне нужно использовать SIM800L в качестве модема к обычному компутеру. Я дошёл до стадии "работаю через терминал" и встрял. Существует ли драйвер для использования SIM800L в качестве usb-модема???

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...