Материал: Разработка и тестирование программно-аппаратного модуля сбора данных в беспроводных сенсорах сетях

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Выводы

Для разработки программно-аппаратного модуля сбора данных в беспроводной сенсорной сети будет выбрана беспроводная технология передачи данных Wi-Fi. Стоимость модулей Wi-Fi очень низкая. Данная технология очень распространена на сегодняшний день и с её помощью достаточно просто реализовать необходимый программно-аппаратный модуль.

Глава 2. Выбор методов сбора данных для разработки программно-аппаратного модуля

.1Обзор облачных платформ

Bluemix

IBM Bluemix [5] - это облачная платформа, предоставляющая различные услуги для разработки и развертывания мобильных, интеграционных приложений, а также web- приложений.

IBM Bluemix является открытой платформой с расширенной пробной версией и имеет ряд преимуществ:

поддерживаются многие языки программирования;

имеется выбор способа среды исполнения кода;

имеется встроенная поддержка полного цикла разработки приложения;

имеется большое количество сервисов;

Также имеется возможность push-уведомлений.Azure IoT SuiteAzure IoT Suite [6] - это облачный сервис разработки решений для интернета вещей, предоставляемый компанией Microsoft и основывающийся на службе «Центр IoT Azure». Так же, как и IBM Bluemix обладает широким спектром возможностей, поддерживает большое количество языков программирования и др. Так же этот сервис обладает хорошей масштабируемостью и имеет предварительно настроенные решения для быстрого начала работы с ней, если это требуется. Однако, данный сервис не является полностью бесплатным. Есть как пробная версия использования, цель которой дать пользователю попробовать работу в этом сервисе. В пробной версии можно оперировать только маленьким объемом данных. Другие версии использования, оперирующие большим объемом данных платные, что можно считать минусом этого сервиса. Наиболее расширенная версия составляет 312 500 рублей за месяц и позволяет 300 000 000 сообщений в день.

Cisco IOx

Cisco IOx [7] - это реализация облачного вычисления компанией Cisco. Это достаточно гибкая платформа с множеством возможностей, которых нет в Microsoft Azure IoT Suite и IBM Bluemix, а именно только Cisco имеет возможность использовать сетевые устройства для работы: коммутаторы, маршрутизаторы своего производства. Также IOx позволяет разработчикам приложений работать со средой Linux.

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

PTC ThingWorx

ThingWorx [8] - это облачная платформа для интернета вещей компании PTC. Данная платформа позволяет создавать новые виджеты, или использовать уже имеющиеся для разработки новых приложений. Так же, как и платформа IBM Bluemix поддерживает многие языки программирования. Имеется пробная версия на 30 дней. Остальные характеристики платформы приведены в таблице 2.

В таблице 2 показаны технические характеристики, которыми обладают рассматриваемые платформы [8].

Таблица 2.

Технические характеристики облачных платформ

Критерий/Платформа

IBM Bluemix

Microsoft Azure IoT Suite

Cisco IOx

ThingWorx

Собственный или открытый код

собственный, в основе лежит открытый код

собственный

собственный

собственный

Поддерживаемые протоколы

• HTTP • MQTT • MQTT over WebSockets

• AMQP • AMQP over WebSockets • MQTT • HTTP/1

• HTTP • MQTT • CoAP

• HTTP • MQTT • RabbitMQ

Поддерживаемый формат данных

JSON

JSON

JSON

Not specified

Транспортная безопасность

TLS

TLS

TLS

TLS

Способ аутентификации

• API Key and authentication token; • User defined token

• Token based Authentication; •X.509 certificates

•X.509 certificates; •RFID; •shared secret

• Application Key


.2 Выбор платформы

Опираясь на проведенный выше обзор платформу необходимо решить какую платформу использовать в рамках данной работы. Для того чтобы выбрать наилучшую платформу необходимо сравнить описанные выше четыре облачные платформы разных компаний. Для сравнения платформ выделены следующие критерии [8]:

наличие пробной версии;

поддержка протокола MQTT;

визуализация данных;

наличие GUI интерфейса;

наличие интегрированной среды разработки;

наличие средств анализа данных;

наличие хранилища;

мониторинг;

поддержка.

В таблице 3 показано сравнение платформ по выделенным критериям.

Таблица 3.

Сравнение облачных платформ

Критерий/Платформа

IBM Bluemix

Microsoft Azure IoT Suite

Cisco IOx

ThingWorx

Пробная версия

+

+

+

+

Поддержка протокола MQTT

+

+

+

+

Визуализация данных

+

+

+

+

GUI интерфейс

+

+

+

+

Интегрированная среда разработки

+

-

-

-

Средства анализа данных

+

+

+

+

Хранилище

+

+

+

+

Мониторинг

+

+

+

+

Поддержка

+

+

+

+


Для разрабатываемого программно-аппаратного модуля выбрана облачная платформа IBM Bluemix, так как данная платформа полностью отвечает всем заявленным критериям.

Требования к программно-аппаратному модулю

К разрабатываемому программно-аппаратному модулю будут предъявлены следующие требования:

аппаратная часть модуля должна иметь компактный размер;

аппаратная часть модуля должна иметь широкий диапазон температур;

аппаратная часть модуля должна поддерживать технологии Wi - Fi;

аппаратная часть модуля должна поддерживать протоколы 802.11 b//g/n;

аппаратная часть модуля должна собирать и отправлять полученные данные на облачный сервер;

программная часть модуля должна получать собранные данные от аппаратной части;

программная часть модуля должна анализировать собранные данные от аппаратной части;

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

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

Глава 3. Теоретическая часть

.1 Алгоритм взаимодействие модуля с облачной платформой

Архитектура

Модуль подключается к шлюзу или напрямую к датчику в случае, если это единственный датчик. Модуль подключается к сети интернет, используя подключение Wi-Fi к существующим точкам доступа. Используя протокол MQTT (Рис. 7), собранные данные передаются на сервера Bluemix, где данные сохраняются в Cloadant NoSQL DB. Собранные данные анализируются и визуализируются в виде графиков. При выходе за приделы допустимого интервала значений происходит оповещение посредством электронной почты и SMS, используя сервис Twilio (Рис. 6).

Рис. 6. Схема системы

Рис. 7. Протокол MQTT

(Message Queue Telemetry Transport) - компактный протокол обмена данных, отличительной чертой которого является лёгкость и открытость, следственно может использоваться при низкой пропускной способности канала, что позволяет использовать его в M2M (Межмашинное взаимодействие) и IoT (Интернет вещей).

Протокол Message Queue Telemetry Transport работает над TCP/IP на порту 1883 либо 8883 порт для использования Message Queue Telemetry Transport через SSL (Рис.8).

Рис. 8. Расположение протокола MQTT в модели OSI

Queue Telemetry Transport протокол работает по принципу издатель-подписчик (Рис. 9).

Рис. 9. Принцип работы MQTT

программный данные сенсорный сеть

Отличительные черты протокола MQTT:

Компактность передаваемых сообщений;

возможность работы при низкой пропускной способности сети;

поддержка QoS;

Простая масштабируемость.

Разработка устройства

Для отправки данных на облако был выбран Wi-Fi модуль с MCU ESP-201 серии ESP8266. ESP-201 серии ESP8266 работает без дополнительного МК благодаря входящему в состав микросхемы ESP8266EX микроконтроллеру класса 8051 и наличию 80 Кб ОЗУ DRAM и высокоскоростной памяти IRAM. [9] Имеется как встроенная антенна, так и гнездо для подключения внешней антенны (Рис. 10).

Рис. 10. Внешняя антенна для диапазона 2,4 ГГц

Для подключения к компьютеру будет использоваться конвертер USB-TTL. В качестве датчика для первичного тестирования будет использоваться ультразвуковой дальномер HC-SR04 (Рис.11).

Рис. 11. Ультразвуковой дальномер HC-SR04

Так как в короткие сроки не удалось приобрести блок питания для макетной платы, который способен выдавать как 5V так и 3,3V, так как ультразвуковой дальномер HC-SR04 требует питания 5V, а Wi-Fi модуль ESP-201 серии ESP8266 не толерантен к питанию 5V (требует 3,3V, а при превышении питания 3,6V уже сгорает) [10], будет использоваться внешний аккумулятор Экспедиция Hoox Infinity 7800 mAh, а для питания Wi-Fi модуля ESP-201 серии ESP8266 будет использован преобразователь RP022 5V->3,3V.

.2 Разработка схемы электрической структурной

Так как многие датчики питаются от 5V, а ESP-201 серии ESP8266 не может питаться от сети более 3,6V [10]. Поэтому ESP-201 серии ESP8266 будет питаться от аккумулятора 5V через конвертер 5V-3,3V. Для прошивки и сбора отладчной информации используется USB-TTL. Связь модуля с сервером IBM Bluemix обеспечивается через Wi-fi. Структурная схема представлена в приложении Б.

.3 Выбор Wi-Fi модуля

- микроконтроллер, представленный компанией Espressif, поддерживающий Wi-Fi. Важными преимуществами является малый размер, низкая цена и широкий выбор из модификаций начиная от ESP-01 серии ESP8266 (Рис. 12), имеющий минимальный размер и самые необходимые выведенные порты и встроенную антенну, до ESP-201 серии ESP-8266 (Рис. 13) имеющий кроме встроенной антенны, гнездо для установки внешней антенны, и все возможные выведенные порты.

Рис. 12. ESP-01 серии ESP8266

Рис. 13. ESP-201 серии ESP8266

Модуль EMW3165 (Рис. 14), представленный компанией Seeed Studio, является конкурентным решением ESP8266. На EMW3165 устанавливается микроконтроллер STM32F4 с ядром ARM Coretex M4, который работает на частоте более 99 МГц (у ESP8266 только до 80 МГц) [11]. Однако в результате данный модуль стал иметь больший размер и цену.

Рис. 14. Модуль EMW3165

В данной работе для разработки программно-аппаратного модуля сбора данных будет взят за основу Wi-Fi модуль ESP-201 серии ESP826. В таблице 4 представлены технические характеристики Wi-Fi модулей ESP-201 серии ESP8266 и EMW3165.

Таблица 4.

Технические характеристики Wi-Fi модулей ESP-201 серии ESP8266 и EMW3165

Характеристики

ESP-201 серии ESP8266

EMW3165

Tensilica L106 32-bit, 80

Cortex-M4, 100

Wi-Fi

802.11b/g/n

802.11b/g/n

Поддерживаемое шифрование

WEP, WPA, WPA2

WEP, WPA, WPA2

Напряжение питания, В

2...3,6

3...3,6

Потребляемый ток, мА

до 215

До 320

GPIO

16

22

Интерфейсы

UART, I2C, SPI, PWM

JTAG,SWD

Встроенная антенна

да

да

Внешняя антенна

да

да

Flash память, Мб

до 4

до 2

RAM данных, Кб

80

128

RAM инструкций, Кб

64

64

Стоимость, $

4

9


Глава 4. Экспериментальная часть

.1 Изготовление макета устройства

Рис. 15. Схема аппаратной части

заземляется только для ввода модуля в режим прошивки и при нормальной работе заземление с него убирается. GPIO15 связан с LED’ом модуля поэтому его рекомендуется заземлять через резистор 10 КОм. RST через тактовую кнопку соединяется с землей, таким образом при нажатии на кнопку модуль будет перезагружен, таким образом заземляя GPIO0 и убирая заземление, нажимая тактовую кнопку можно переводить модуль из режима прошивки в нормальный режим работы.

Рис. 16. Собранный макет

Собранный модуль (Рис.16) Подключается к компьютеру через USB-TTL конвертер для отображение отладочной информации через монитор порта (Рис.17). Первые артефакты объясняются отладочной информацией отсылаемым модулем на иной частоте, затем идет сообщение о попытке подключения к точке доступа с именем Keenetic-3929. Точками показывается ожидание подключения. На следующей строке идет подтверждение подключения и полученный IP адрес. После этого происходит подключение к брокеру предоставляемым платформой IBM Bluemix. После чего отправляется сообщение брокеру с нагрузкой в виде расстояния измеренного ультразвуковым дальномером HC-SR04.

Рис. 17. Монитор порта

Создание основы приложения

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

На платформе IBM Bluemix нужно добавить описание устройства, в данном случае модуля (Рис. 18).

Рис. 18. Пустой диспетчер устройств

При добавлении устройства необходимо указать тип устройства, но так как его еще нету, необходимо его сначала создать (Рис. 19).

Рис..19. Указание типа устройства

Далее надо выбрать созданный тип устройства (Рис. 20).

Рис. 20. Созданный тип устройства

Далее нужно указать некоторые параметры такие как ID и Serial Number (Рис. 21).

Рис. 21. Задание параметров

Далее нужно выбрать автоматическое получение ключа Token. Token - это ключ безопасности, используется для подключения устройства к облаку, однако он не восстанавливается, и если произошла его утеря, то придется заново пересоздавать устройство в диспетчере устройств (Рис. 22).

Рис. 22. Выбор ключа Token

Далее должно быть получено подтверждение параметров (Рис.23).