Как передать файл gprs

Обновлено: 07.07.2024

Американская фирма Enfora специализируется на разработке и изготовлении модулей, модемов и готовых изделий для систем беспроводной связи. Фирма Enfora известна российским разработчикам по ряду публикаций [1—4].

Продукты Enfora выпускаются как в виде модулей GSM0107/0108, так и в виде терминалов GSM1209/ 1218. Подробные технические сведения о GSM/GPRS-продукции Enfora представлены в документах [5—7], которые свободно доступны на сайте [8]. Дополнительную информацию на русском языке можно найти на сайте [9].

Идеология модулей Enabler построена на том, что основные случаи пользовательских приложений уже зашиты в базовое программное обеспечение и реализуются с помощью АТ-команд. Таким образом, в модулях Enabler пользователю предоставляется возможность сопряжения с традиционными схемами счетчиков, охранных систем и тому подобной аппаратуры. Фирма Enfora предлагает разработчикам не тратить время на написание собственных уникальных приложений, а вместо этого воспользоваться готовыми стандартными программными блоками, включенными в базовую прошивку.

Семейство продуктов Enabler представляет собой целостную платформу с большим набором разнообразных функций, упрощающих разработку и интеграцию сложных встраиваемых M2M-приложений.

Модули Enfora Enabler позволяют обойтись базовыми настройками для реализации многих стандартных задач, которые при использовании продукции других фирм требуют разработки сложного ПО и аппа ратного обеспечения. Кроме того, модули Enabler имеют мощный IP-ориентированный программный блок, интегрированный в базовое программное обес печение.

Передача данных в режиме GSM

При передаче данных в режиме GSM наименьшее время соединения достигается при использовании обоими GSM-терминалами протокола V. 110 и прозрачного асинхронного режима передачи. В этом случае время, необходимое для установления соединения, может быть уменьшено до 2 секунд [10].

Актуальной для новых пользователей является задача замены проводных телефонных модемов, например Acorp-EMSF, на современные GSM/GPRS-модемы.

В стандартных телеметрических задачах устройства, доступ к которым необходимо получить, имею т интерфейс RS-232. При этом часто для работы используются только линии данных RXD и TXD, а также протоколы обмена Modbus, Bitbus и им подобные. В простейшем случае используется режим асинхронной передачи, 8 бит, без четности, на скорости 9600 бит/с.

В модулях ENFORA поддерживается прозрачный режим. Для этих целей используется команда [11]:

AT+CBST = A, B, C,

где A, B, C — параметры, задаваемые пользователем и определяющие: A — скорость передачи, B — имя, C — выбор режима (прозрачный, непрозрачный или оба режима с предпочтением одному из двух).

AT+CBST=71,0,0

означает прозрачный режим передачи данных на скорости 9600 бит/с (V110), без определения имени.

Внешний беспроводного терминал ENFORA GSM1218

Рис 1. Внешний терминал ENFORA GSM1218

Подробно данная команда рассмотрена в [11]. (Все документы, без ограничений, доступны на сайте [8].)

Наименьшее время инициализации достигается при использовании на обоих GSM-терминалах протокола V110 в прозрачном режиме.

Следует учитывать, что при работе в прозрачном режиме снижается помехозащищенность передачи данных. Кроме того, ужесточаются требования по минимально допустимому уровню сигнала (около –60 дБм) [10].

Для передачи данных между двумя терминалами «точка-точка» в режиме GSM необходимо получить у оператора сотовой связи дополнительный номер для приема/передачи данных MSISDN.

Для того чтобы перевести модем в командный режим и работать с АТ-командами, необходимо выполнить команду +++.

После отработки этой команды модем переходит в режим offline, в котором становится доступным АТ-интерфейс.

Для конфигурирования пользовательских I/O применяется прикладная программа Enfora Event Tools. Никакого дополнительного оборудования для этого не требуется.

Работа с программой осуществляется в диалоговом режиме.

Под термином «события» понимаются состояния вводов/выводов, режим питания, связи и т. д. Для того чтобы представить себе потенциальные возможности, предоставляемые пользователям для перепрограммирования вводов/выводов, целесообразно привести варианты возможных значений входящих и исходящих событий.

Программа Enfora Event Tools позволяет сконфигурировать COM-порт (номер порта, скорость обмена, скорость передачи, четность, управление).

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

Кроме описанных единичных событий можно задать и множественные последовательные события. Например, «Состояние вводов/выводов» и «Сетевые IP-события».

Передача данных в режиме GPRS

Большинство продуктов других произ водителей позволяют работать с ус трой ством по IP через «внутренний» последовательный интерфейс, пользуясь лишь «внешним» IP-адресом, и только после того, как установлено внешнее GPRS-соединение с оператором. Таким образом, при потере соединения с GPRS-сетью или при изменении внешнего IP-адреса теряется связь с беспроводным устройством по IP через «внутренний» последовательный интерфейс.

Модули и терминалы Enfora могут работать в автоматическом и ручном режимах установления соединения с сетью GSM/GPRS.

Команда at$areg=1 обеспечивает автоматическую регистрацию в сети GSM.

Автоматическая GPRS регистрация зада ется командой: at%cgaatt=0,1.

Переключение в ручной режим задаетс я командой: at$areg=0.

Из специальных команд Enfora следует отметить команду $HOSTIF, определяющую тип подключения через последовательный порт, а также команды %CGPPP и %CGPCO, с помощью которых задаются необходимые параметры PPP-идентификации.

Просмотреть текущий IP-адрес и адрес DNS-сервера можно с помощью команды AT$NETIP. Следует учитывать, что устройство имеет динамический IP-адрес только в том случае, если активирован режим GPRS и установлена PPP-сессия с оператором.

Терминалы и модули ENFORA позволяют сконфигурировать несколько вариантов соединения с модемом через последовательный порт.

Например, может быть выбрана схема соединения с поддержкой стандартного PPP-протокола (Point To Point Protocol). Этот вариант широко используется, когда необходимо организовать передачу данных в асинхронном режиме. При этом для подключения к GPRS может быть использован стандартный интерфейс (Windows PPP interface).

Если устройство, подключенное к модему, не имеет TCP/IP-стека и не поддерживает протокол PPP, терминалы и модули ENFORA могут использоваться для подключения устройства к IP-сети в режиме, называемом «Сборка/разборка пакетов» (Packet Assembler / Disassembler — PAD). Подробно этот режим описан в [15].

Функция PAD позволяет конвертировать, упаковывать и передавать данные со стандартного последовательного интерфейса без специального протокола, необходимого внешнему устройству. Сопряжение с устройствами, не поддерживающими TCP/IP, реализуется с помощью команды AT$HOSTIF=<type>.

В режиме PAD терминал Enfora может быть сконфигурирован либо как клиент (active), либо как сервер (passive). В активном режиме предусмотрена возможность установления TCP-соединения по известному IP-адресу посредством команды ATDT<IP address>/<port>. В пассивном режиме терминал может ожидать внешнее TCP-соединение на заданном порту (см. описания команд AT$ACTIVE, AT$PADSRC).

Работа модулей в режиме GPRS подробно описана в документах [11, 15–18].

Ниже приведен пример настройки терминалов Enfora при отсылке информации в режиме GPRS на центральный сервер.

Настройка терминала GSM1208/1218 в режиме passive/server с отсылкой уведомлений (wakeup-пакетов) на центральный сервер

В данном примере рассматривается вариант использования модема в режиме TCP PAD passive/server (модем ожидает соединения с центрального сервера, после установления TCP-соединения модем принимает/передает данные).

Для построения стенда требуется следующее оборудование и ПО (рис. 2):

Стенд для тестирования режима TCP PAD passive/server

Рис 2. Стенд для тестирования режима TCP PAD passive/server

Последовательность действий по настройке стенда:

  • Если на центральном сервере установлена операционная система Microsoft Windows XP, требуется временно отключить брандмауэр (снять настройку «Защитить мое подключение к Интернету») в свойствах соединения с Интернетом (рис. 3).

В свойствах соединения с Интернетом нужно временно отключить защиту

Рис. 3. В свойствах соединения с Интернетом нужно временно отключить защиту

  • Далее необходимо подключиться к Интернету, как обычно.
  • После успешного подключения, используя стандартную утилиту ipconfig, необходимо выяснить, какой ip-адрес в данный момент выдан центральному серверу. На центральном сервере в меню Windows, в строке запуска программ по имени Start ? Run, набираем «cmd.exe /K ipconfig /all» (рис. 4).

Необходимо определить, какой ip-адрес в настоящий момент присвоен центральному серверу

Рис. 4. Необходимо определить, какой ip-адрес в настоящий момент присвоен центральному серверу

  • Выбираем UDP-порт, на котором центральный сервер будет ожидать wakeup-пакеты от модема Enfora. Допустим, выбран порт 5452.
  • На центральном сервере запускаем утилиту netcat. В меню Windows, в Start ? Run, набираем «cmd.exe /K c:tmpnetcat — l — u — o c:tmptrafdump.txt — p 5452 — vv»
  • На ПК, к которому подключен GPRS-модем Enfora, воспользовавшись терминальным ПО (например, HyperTerminal), производим предварительную настройку модема (табл. 1).


  • Переводим модем в режим установки GPRS/PPP-соединения (рис. 5).

Настройка модема в режиме passive/server, инициирование GPRS/PPP соединения

Рис. 5. Настройка модема в режиме passive/server, инициирование GPRS/PPP соединения

  • После того как модем успешно соединился с сетью оператора (т. е. после установления PPP-соединения), на центральном сервере видим отправленные модемом уведомления (wakeup-пакеты), содер жимое которых позволяет определить присвоенный модему в сети GPRS-динамический ip-адрес, а также видеть индентификатор модема-отправителя (рис. 6).

Модем отсылает уведомления после того, как установит GPRS/PPP-соединение, центральному серверу доступна актуальная информация об ip-адресе и индентификаторе модема

Рис. 6. Модем отсылает уведомления после того, как установит GPRS/PPP-соединение, центральному серверу доступна актуальная информация об ip-адресе и индентификаторе модема


  • Проверяем, доступен ли модем с центрального сервера. На центральном сервере в меню Windows, в Start ? Run, набираем «cmd.exe /K telnet 213.87.8.11 5000», где 213.87.81.7 — ip-адрес GPRS-модема (см. п. 7.2, рис. 6). После успешного установления TCP-соединения с сервера к модему, набираем: test test test<enter>

Проверка установления TCP-соединения с модемом с центрального сервера через сеть Интернет

Рис. 7. Проверка установления TCP-соединения с модемом с центрального сервера через сеть Интернет

  • Видим, что модем успешно работает в режиме TCP PAD (рис. 8).

Набранная в telnet-сессии строка отображается в окне HyperTerminal’а — модем получил данные по TCP/IP, отбросил заголовки IP, затем передал данные хосту

Рис. 8. Набранная в telnet-сессии строка отображается в окне HyperTerminal’а — модем получил данные по TCP/IP, отбросил заголовки IP, затем передал данные хосту (через COM-порт)

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

GPRS (General Packet Radio Service) – технология пакетной передачи данных посредством сотовой связи.

Суть услуги заключается в организации постоянного подключения через GPRS-телефон или GPRS-модем к сети интернет. Для работы в Сети можно использовать компьютер, ноутбук или электронный органайзер (Palm Pilot, Psion, Cassiopea). При этом Вы сможете просматривать HTML-страницы, перекачивать файлы, работать с электронной почтой и любыми другими ресурсами Интернета.

Чем привлекательна эта технология?

  • GPRS предоставляет немедленный доступ к услугам, без необходимости дозваниваться к интернет-провайдеру.
  • Пользователи GPRS получают доступ к Интернету в полном объеме, как при проводном соединении.
  • Можно работать с WAP-сайтами непосредственно с телефона.
  • Оплачивается только объем посланной/полученной информации, а не эфирное время. До сих пор в сотовых сетях для передачи или приема данных абонентом занимался целый канал на время от установления соединения до его разрыва, которое оплачивалось вне зависимости от его загрузки.
  • В GPRS максимально возможная скорость передачи данных составляет 171,2 кбит/с.

Передача данных: GPRS и GSM.

В настоящее время передача данных по GSM-сетям организована следующим образом: абоненту выделяется отдельный канал, используемый системой для передачи голоса, посредством модема, встроенного в мобильный терминал, происходит передача данных через этот канал, при этом в промежутках между передачей данных канал остается занятым. GPRS – это система, которая реализует и поддерживает протокол пакетной передачи информации в рамках сети сотовой связи GSM.

При использовании системы GPRS информация собирается в пакеты и передается в эфир, они заполняют те «пустоты» (не используемые в данный момент голосовые каналы), которые всегда есть в промежутках между разговорами абонентов, а использование сразу нескольких голосовых каналов обеспечивает высокие скорости передачи данных. При этом этап установления соединения занимает несколько секунд. В этом и заключается принципиальное отличие режима пакетной передачи данных. В результате у абонента появляется возможность передавать данные, не занимая каналы в промежутках между передачей данных, более эффективно используются ресурсы сети.

Что дает абоненту технология GPRS?

GPRS позволит ввести принципиально новые услуги, которые раньше не были доступны. Прежде всего это мобильный доступ к ресурсам Интернета с удовлетворяющей потребителя скоростью, мгновенным соединением и с очень выгодной системой тарификации. Например, при просмотре Web-страницы в Интернете, мы можем изучать содержимое столько, сколько нам необходимо, поскольку платим только за принятую информацию и не платим за время нахождения в сети Интернет (не передавая данные, мы не занимаем каналы сети). При введении повременной оплаты на фиксированных телефонных линиях, тарифы на доступ в Интернет с мобильного телефона будут еще более конкурентоспособны.

Технология GPRS позволит быстро передавать и получать большие объемы данных, видеоизображения, музыкальные файлы стандарта mp3 и другую мультимедийную информацию.

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

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

Принципы построения системы GPRS.

На структурном уровне систему GPRS можно разделить на 2 части: подсистему базовых станций и ядро сети GPRS (GPRS Core Network). В подсистему базовых станций входят все контроллеры и базовые станции системы GSM, которые поддерживают пакетную передачу данных на программном и аппаратном уровне. Ядро сети GPRS включает в себя совершенно новые сетевые элементы, предназначенные для обработки пакетов данных и обеспечения связи с сетью Интернет.

Основным сетевым элементом является пакетный коммутатор – SGSN (Serving GPRS Support Node). Данный сетевой элемент берет на себя все функции обработки пакетной информации и преобразования кадров GSM в форматы, используемые протоколами tcp/ip глобальной компьютерной сети Internet. Пакетный коммутатор призван разгрузить GSM-коммутатор, обеспечивая обработку пакетной информации, оставляя обычному коммутатору лишь голосовой трафик.

Вторым важным сетевым элементом является GPRS-шлюз – GGSN (Gataway GPRS Support Node). Он обеспечивает связь системы GPRS с пакетными сетями передачи данных: Internet, Intranet, X.25 и др. GGSN содержит всю необходимую информацию о сетях, куда абоненты GPRS могут получать доступ, а также параметры соединения.

Кроме упомянутых элементов в GPRS Core входят другие элементы: DNS (Сервер доменных имен), Charging Gateway (Шлюз для связи с системой тарификации), Border Gateway (Пограничный шлюз) и другие вспомогательные элементы.

Следует отметить широкие возможности масштабирования системы GPRS. При быстром увеличении количества абонентов, пользующихся услугой пакетной передачи данных возможно увеличение емкости системы GPRS за счет расширения или установки дополнительных пакетных коммутаторов (SGSN).

При увеличении суммарного объема данных, передаваемых абонентами (при несущественном увеличении числа абонентов), возможна установка дополнительных GPRS-шлюзов, которые обеспечат большую суммарную пропускную способность всей системы, а также расширение системы базовых станций. Таким образом, наращивая систему GPRS, оператор сможет обеспечивать высокое качество услуг, основанных на пакетной передаче данных.

Терминальное оборудование GPRS.

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

Стандартами определены 3-класса GPRS терминалов:

  • Класс А – терминал позволяет осуществлять одновременно голосовое соединение и работу в режиме GPRS;
  • Класс В (сотовые телефоны) – терминал поддерживает и голосовое соединения и передачу данных в пакетном режиме, но эти режимы используются не одновременно (во время передачи данных через GPRS, абонент не может совершать и принимать голосовые звонки и наоборот);
  • Класс С (карты PCMCIA, CF и USB адаптеры) – терминал обеспечивает только передачу данных в пакетном режиме. Наиболее вероятное исполнение – PCMCIA-карта устанавливаемая в портативный компьютер – ноутбук.

Скорости передачи в системе GPRS.

В сетях, поддерживающих GPRS, предусмотрен поэтапный путь наращивания скорости передачи данных; максимальная реальная скорость приема и передачи, которую на первом этапе сможет поддерживать система GPRS

Сегодня основные ограничения накладывают абонентские терминалы. Скорость приема и передачи информации, которую может обеспечить мобильный терминал, зависит от количества каналов, которые терминал поддерживает на прием и передачу. Один канал поддерживает передачу информации с максимальной скоростью. Таким образом, количество каналов, которые будет поддерживать конкретная модель терминала, будет определять максимальные возможные скорости, на которых возможна передача и прием информации.

Абонентские терминалы GPRS, предполагаемые к выпуску в ближайшее время, будут поддерживать от 2 до 4 каналов для приема информации и до 2 каналов для передачи, что позволяет получить максимальную скорость приема и передачи. В последующем ожидается появление моделей GPRS-терминалов, поддерживающих большее количество каналов (до 7).

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

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

Перспективы развития услуг на базе GPRS.

Появление технологии GPRS значительно ускорило развитие мобильной передачи данных во всех областях человеческой деятельности. Во многом это связано с появлением новых услуг, развитие которых было затруднено из-за низкой скорости и высокой стоимости передачи данных через голосовые каналы GSM. Технология GPRS позволит абонентам получать доступ в глобальную сеть из любой точки, где существует покрытие сети, при этом цена такой передачи будет чрезвычайно привлекательной, а при введении повременной оплаты на фиксированных телефонных линиях, тарифы на доступ в Интернет с мобильного телефона будут еще более конкурентоспособны.

Для корпоративных пользователей появление услуг на основе технологии GPRS будет означать реализацию давней мечты полностью мобильного офиса с доступом как в глобальную, так и в корпоративную сеть своей фирмы, с гарантией безопасного соединения. Практически исчезнет проблема доступа к корпоративной сети во время командировок, в том числе и зарубежных, поскольку GPRS-роуминг, организация которого планируется в ближайшее время, обеспечит безопасный, дешевый и высокоскоростной доступ к любому ресурсу корпоративной сети. Существуют идеи промышленного применения данной технологии для различных задач подвижного мониторинга и контроля состояния объектов.

Не стоит забывать и о том, что GPRS является идеальным транспортом для WAP-приложений, практически все телефоны с поддержкой GPRS будут иметь встроенный браузер, что позволит их владельцам не только передавать данные, но и получать оперативную информацию с различных web-серверов.

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

Система GPRS является первым шагом на пути развития сетей беспроводной пакетной передачи данных. Первоначально услуги на основе GPRS будут предоставляться на ограниченной территории действия сотовой связи. В дальнейшем зона, где возможно использование технологии GPRS будет расти и, в результате, в ближайшем будущем услуги на основе GPRS будут предоставляться на всей территории действия сети сотовой связи. Также планируется увеличение скоростей приема и передачи информации за счет улучшения характеристик мобильных терминалов и инфраструктуры GPRS.

Следующим шагом на пути развития сетей пакетной передачи данных будет внедрение технологии EDGE, которая позволит достичь скорости передачи информации до 384 кбит/с, при этом базой для развертывания технологии EDGE частично будет служить система GPRS. Таким образом, будет плавно осуществлен переход от систем с коммутацией каналов к системам пакетной передачи данных, которые найдут свою конечную реализацию в системах передачи информации следующего поколения беспроводной связи. При этом для абонента станет возможной скорость передачи до 2 Мбит/с.

Обмен файлами через USB перестал быть чем-то незаурядным, но и удобным такой способ передачи данных вряд ли назовешь. Рассказываем, как без проблем перенести данные с android на комп или другой девайс без технологии USB.

Кардридер

Это самый простой и быстрый способ: у большинства ноутбуков есть встроенные картридеры с навыками чтения флеш-устройств.

Извлеките MicroSD из телефона, вставьте в соответствующий разъем компа или подключенного к нему съёмного устройства. Проводник Windows распознает карту как обычный съемный диск. Далее по плану проводите манипуляции с содержимым.

Ощутимый минус этого способа, пожалуй, состоит в сложности извлечения из смартфона карты памяти. Также в этом случае запрещено создавать копии файлов с internal memory смартфона.

Bluetooth

Все смартфоны на Android поддерживают Bluetooth, а еще это делают большинство ноутбуков. В домашние компьютеры функцию встраивают редко, но адаптер продается отдельно.

Чтобы передать содержимое, включаете Bluetooth на обоих девайсах. У некоторых моделей ПК актуальна спецкнопка. Еще можно воспользоваться горячими клавишами Fn+F5. Как только девайсы друг друга "увидят", откройте доступ, начинайте переброску.

Вся прелесть этого метода в беспроводной передачи файлов. Из минусов — скромная скорость трансфера, особенно на старых версиях.

Wi-Fi

Все устройства Android имеют модуль беспроводной сети. С помощью сети Wi-Fi, оперируя только мобильным или ноутбуком, но только при условии, что компьютер и телефон связаны одним маршрутизатором.

Для работы следуйте инструкции:

  1. Установите любой файловый менеджер файлов из Google Play.
  2. Подключитесь к Wi-Fi.
  3. Откройте файловый менеджер.
  4. Выберите «Сеть» и добавьте IP-адрес компа (подглядеть в "роутер-настройки").
  5. Во второй вкладке выделите файлы для передачи.
  6. Выберете «Копировать».

Второй метод куда проще в реализации:

  • Установите из андроид маркета Software Dada Cable.
  • Активируйте ПО, нажав Start Service.
  • В адресной строке наберите появившийся IP.

Коллекция файлов телефона открыта через браузер компа. Высокая скорость передачи входит добавочным бонусом.

Специальные приложения

ОС Android имеет в арсенале специализированный софт, который расширяет границы передачи файлов любого размера и формата с телефона или планшета на компьютер и наоборот.

AirDroid

AirDroid даже может отыскать потерянный смартфон, дирижировать камерой и юзать Android-приложения. Ключевые функции в AirDroid бесплатны, но за расширенный интерфейс придется потратиться на подписку.

Feem

У этой утилиты своеобразный алгоритм обмена файлами между устройствами. Процесс передачи файлов происходит при условии, что оба гаджета подключены к одной сети Wi-Fi. Причем сама сеть не требует реального наличия интернета. Локальная сеть — это все, что в данном случае нужно. А еще приложение Feem не только простое, но и бесплатное.

Cloud Storage

Чтобы изящно перейти к заключительному способу из нашего списка, стоит вспомнить Cloud Storage. Прога апеллирует целым списком облачных сервисов обмена данных, среди которых Google Drive, Dropbox и другие.

Передача происходит по следующему принципу: загружаете файл в облачное хранилище с одного гаджета, а затем выманиваете его на другой. В этом и преимущество Cloud Storage: приложение работает с многими облачными хранилищами, что упрощает взаимодействие со всеми ними.

Облачные хранилища

Облачные сервисы стоит применять как для трансфера, так и хранения файлов и документов. Причем в таком объеме, сколько сам пожелает владелец смартфона. Данные хранятся на «облаке», откуда их можно доставать как с книжной полки. Чтобы воспользоваться виртуальным жестким диском нужно скачать из Google Play официальный клиент на смартфон, создать аккаунт и добавить всё на хранение. Ради передачи их на ПК воспользуйтесь своим аккаунтом через браузер.


Продолжение описания работы с GSM-модемом и stm32. В предыдущей статье рассматривалось взаимодействие с модемом как с телефоном (звонки, смс), а здесь рассказано как передавать/получать данные через GPRS.


Как и в предыдущем примере (ознакомьтесь), здесь используются два USART'а, один таймер и выход для светодиода. То есть ничего нового за исключением одного — добавлен выход (PA0) для управления реле через которое запитан модуль…


Это нужно чтобы вместе с ресетом платы модуль обесточивался и сбрасывал все свои настройки. Рекомендую это сделать, чтоб было меньше непоняток.


Работает следующим образом:

При старте, автоматически устанавливается скорость USART'а — 57600, и начинают отсылаться команды настройки с помощью функции set_comand(. ) (файл gprs.c). Посылая эти команды программа проверяет ответы модуля, и в случае ошибки выполнение программы приостановится, а светик (PA7) начнёт мигать.


Предварительная настройка производится в начале программы, в блоке…



Всё происходящее (и успешные команды, и ошибки) выводится в терминал.

В блоках обработки ошибок…


… есть закомментированная функция, с помощью которой можно ресетить плату (а вместе с ней и модуль). Ошибки обрабатываются не только при начальной настройке, но и в процессе дальнейшей работы.

Сейчас запрос с аргументами закомментирован и указан просто тестовый сайт. Если загрузить программу, то вернётся запрошенная страничка…


Раскомментить верхнюю строчку и вписать в неё ваш адрес. Аргументов может быть больше, но нужно следить за тем, чтобы строка (начиная с AT. ) была не больше 64-ёх символов.

Если строка получается больше, тогда отправлять её нужно частями, и только последняя часть должна содержать символы \r\n .

То есть, если строка у вас такая.

Тогда отправка будет выглядеть так.


Вернётся то, что отправили, и дату/время…


Данные вычитываются по 1024 байта (можно увеличить в файле usart_ring.h) и выводятся в терминал. Обрабатывать данные нужно там где написано «тут можно парсить ответ».

Там у меня ещё есть комменты — «как-то обрабатываем ошибку», я не знаю что лучше делать в этом случае. С одной стороны это может быть разовая ошибка (допустим вы периодически отправляете данные, а сервер по какой-то причине не принял запрос) и дальше всё будет работать нормально, а с другой стороны это может быть долговременная проблема (сбой сервера, сбой модуля, Вселенский апокалипсис), тогда надо что-то делать. Самое простое решение, это добавить туда счётчик ошибок, типа — «если десять раз насчёлкало, тогда ресетим плату», ну или ещё что-то.


Чтоб посмотреть как всё происходит, дайте в терминале команды…

0 — данные были получены GET-запросом.
200 — код ответа сервера.
1270 — кол-во принятых байт.




При отсылке команд через терминал, данные будут вычитываться в функции if(gsm_available()) , в бесконечном цикле.


Если в течении некоторого времени (около 4-х часов) ничего не посылать серверу, то происходит разрыв GPRS-соединения, модуль присылает уведомление +SAPBR 1: DEACT . Чтоб восстановить соединение, нужно послать команду AT+SAPBR=1,1 . Вручную ничего делать не надо, в коде есть обработка этой ситуации…


Все команды описаны в файле gprs.h , в разделе «ИНТЕРНЕТ».


TCP


Здесь почти всё то же самое, различие только в методе запроса к серверу. При старте производятся настройка, проверка и обработка ошибок…


Добавлена функция chek_status(. ) , для проверки всяких статусов (в коде всё прокомментировано). Находится в файле gprs.c .

Вся работа с сетью происходит в функции send_tcp() .

Запрос состоит из следующих команд…

AT+CIPSEND — эта команда сообщает модулю, что сейчас будут вводится данные (в примере это «GET /» или «GET /gsm.php?a=33&b=55»). В ответ модуль пришлёт приглашение — символ '>'. После этого можно вводить данные. Чтоб модуль понял что ввод данных закончился и их можно отправлять на сервер, надо послать символ Ctrl + z ((char)26).

Если дать команду так — AT+CIPSEND=23 (цифра — это количество байт для отправки), то модуль отправит данные на сервер после ввода указанного количества символов, при этом Ctrl + z вводить не нужно.

Строка с данными (обычный GET-запрос) выглядит так:

В подтверждение что данные отправлены модуль вернёт «SEND OK». После этого можно ловить ответ от сервера…



Через терминал это ввести не получится. У меня там из середины строки удаляются символы "\r\n", а в конец добавляются.

По завершении приёма данных мы посылаем команду закрытия соединения — «AT+CIPCLOSE». Однако может так случиться, что пока мы вычитываем данные, модуль уже сам (автоматически) закроет соединение, тогда эта команда вернёт ошибку — +CME ERROR: operation not allowed , ничего страшного в этом нет. Кстати, модуль на все ошибки отвечает строкой operation not allowed .

Функция send_tcp() вызывается без каких-либо аргументов, но вам ничего не мешает передавать в неё всё что заблагорассудится.


В примерах предусмотрена возможность позвонить на модуль и при определении номера сделать что-то, например перезагрузку. Другие функции можно добавить из первой части.


И в довершение, пример для передачи и чтения данных с Thingspeak.


Это всё, если что-то непонятно — пишите в чат.



Всем спасибо

Читайте также: