Тема работы:

Радиосеть передачи данных типа умный дом

 

 

Выполнил:

студент группы 218

Широких Дмитрий

 

Данная статья посвящена описанию программной части разработки системы; описанию работы сети и взаимодействия системы с пользователем.

 

Описание программной части включает:

- определение функций, возлагаемых на элементы сети;

- описание алгоритмов работы элементов сети;

1       Функции, возлагаемые на элементы сети

 

К функциям точки доступа (Рисунок 1) относится инициализация портов и функции сетевого взаимодействия. Сетевое взаимодействие делится на управление сетью в режиме АР и взаимодействие с сетью Интернет в режиме клиента домашней сети. Управление сетью сводится к определению формата сообщений (определение структуры сообщения, его размера, размера полей), определению алгоритма обмена сообщениями (выбор протокола обмена сообщениями, регистрации  и адресации в сети) и обеспечению достоверной доставки сообщений в сети (проверка целостности).

Рисунок 1 – Функции АР

Функции терминала представлены на Рисунке 2. Они аналогичны функциям АР за исключением взаимодействия с сетью Интернет.

Рисунок 2 – Функции терминала

 

Инициализация портов

В качестве процедуры, упрощающей подключение различных устройств к плате, выступает инициализация портов. Её суть заключается в том, что каждому GPIO присваивается определенная задача/интерфейс. Например,  для того, чтобы к конкретному терминалу присоединить устройство, взаимодействующее через SPI интерфейс, подключение следует осуществить через зарезервированные порты. Для осуществления подключения необходимо внести в программный код изменения для конкретного устройства.

Рисунок 3 – Распиновка (pinout) для платы NodeMCU v1.0

Присвоим каждому порту определенные функции.

А0 – используется для подключения устройств сбора информации посредством аналого-цифрового преобразования. Подходит для подключения потенциометров, термисторов, фоторезисторов.

D0/D1 – служат  для подключения устройств сбора дискретной информации (значений логической 1 или 0). Подходит для подключения датчиков движения, кнопок и переключателей. Для инициализации необходимо ввести данные GPIO в режим INPUT.

D2/D3/D4/D11/D12 – предназначены для установления значений управляемых устройств. Подходит для подключения реле, ШИМ. Для инициализации необходимо ввести данные GPIO в режим OUTPUT.

D5/D6/D7/D8 – служат для подключения устройств, использующих SPI интерфейс.

D9/D10 – используются для устройств, подключаемых через UART.

Сетевое взаимодействие

Обеспечение обмена сообщениями через сеть Интернет: для реализации обмена информацией с пользователем  существует два пути, а именно:

использование облачного сервера  совместно с http сервером на базе ESP 8266 и использование специальных приложений.  Суть первого решения заключается в том, что на базе данного модуля формируется http сервер. Запросы данного сервера перенаправляются через облачный сервер (например, MQTT), к которому может обращаться пользовательское устройство. Основной  недостаток  этого решения −  необходимость хранить в памяти устройства http сервер. С учётом размера памяти модуля реализовать сложный сервер для управления умным домом не представляется возможным.

Второе решение − использование приложений на базе Android или IOS. Существует несколько приложений, специализирующихся на управлении IоT устройствами. К ним относятся IoT Manager и Blynk.

Остановлюсь на приложении с, поскольку оно позволяет управлять устройствами как с использованием, так  и без использования сети Интернет.

Blynk представляет собой облачный сервис для создания графических пультов управления и подходит для широкого спектра микрокомпьютеров и микроконтроллеров. Подключение и настройка данного приложения описана на сетевом ресурсе. После установки и настройки  Blynk на мобильное устройство получаем «пульт управления» умным домом (Рисунок 4).

Рисунок 4 – Рабочий проект Blynk

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

Управление сетью

Определение структуры сообщений.

Для обмена информации внутри сети необходимо определиться со структурой сообщений.

Структура сообщений представлена на рисунке 5, где размеры полей указаны в байтах.

 

Рисунок 5 – Структура сообщений Uplink и Downlink внутри сети

В состав сообщения  Downlink включены поля:

-тип сообщения: определяет назначение сообщения – широковещательное или сообщение опроса;

-интервал опроса: поле, предназначенное для определения частоты отправки сообщения данного типа ( «00»−каждые 100мс, «FF»−25,6 с);

-данные: поле для передачи данных фиксированной длины;

-CRC: используется для определения целостности сообщения.

В состав сообщения  Uplink включены поля:

-адрес источника: IP-адрес;

-назначение терминала: для определения функций, возлагаемых на данный терминал;

-данные: поле для передачи данных фиксированной длины;

RC: используется для определения целостности сообщения.

Определение алгоритмов обмена сообщениями сводится к определению адресации в сети и выбору протокола обмена сообщениями.

Адресация в сети будет производиться посредством IP-адресов. В сети будет два типа адресов: адрес элемента сети и широковещательный адрес.

 Адреса элементов сети:

192.168.4.1−индивидуальный адрес точки доступа;

192.168.4.10−индивидуальный адрес первого терминала;

192.168.4.11− индивидуальный адрес второго терминала. И так далее по аналогии. Адреса указываются в каждом элементе сети при прошивке и хранятся в памяти.

Широковещательный адрес будет образован адресом точки доступа и маской подсети: маска 255.255.255.0, тогда широковещательный (broadcast) IP-адрес − 192.168.4.255.

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

Рисунок 6 − Алгоритм регистрации в сети со стороны АР

Точка доступа периодически (раз в пять секунд) отправляет сообщения по широковещательному каналу (broadcast). В случае наличия ответа на это сообщение точка доступа выделяет из сообщения ответа IP-адрес регистрирующегося терминала и производит опрос по этому адресу. В сообщении опроса указывается интервал, через который будет производиться обмен сообщениями с данным терминалом.  Если после опроса приходит ответное сообщение, терминал считается зарегистрированным по указанному им адресу с указанным интервалом опроса. Иначе производится повторный опрос данного терминала через интервал указанный ему точкой доступа. Повторный опрос будет производиться три раза, в случае, если ответное сообщение не будет принято, терминал считается незарегистрированным, его адрес удаляется из буфера.

На рисунке 7 представлен алгоритм регистрации со стороны терминала.

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

Далее производится прием по собственному адресу. При наличии сообщения терминал пытается отправить ответ, и регистрация считается завершенной. В случае, если сообщение не принято, производится повторный прием сообщения по этому адресу в течение трех интервалов опроса. Если же по истечении этого времени сообщение от АР не будет принято, то терминал считается незарегистрированным, и процедура регистрации повторяется.

Рисунок 7 – Алгоритм регистрации со стороны терминала

Определение протокола обмена сообщениями.

Существует два способа доставки сообщений, использующих IP-технологию:

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

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

Рисунок 8 – Сценарий взаимодействия при  обмене сообщениями

 

2 Описание алгоритмов работы элементов сети 

Точка доступа:

Для работы системы с сервером Blynk необходимо обеспечивать постоянный обмен с данным ресурсом. Обновление и установка значений виртуальных пинов (см.выше) производится не чаще, чем 10 запросов в секунду, иначе произойдет обрыв соединения с сервером. Также периодически производится опрос терминалов с установленным интервалом и регистрация в сети раз в 5 секунд (Рисунок 9).

 

Рисунок 9 – Диаграммы состояний элементов сети

 

Терминал:

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

 Список использованной литературы

1.Использование Arduino IDE для esp8266 

2. Пример использования протокола UDP для esp8266

3. Документация Blynk 

4.Радиосеть передачи данных типа умный дом. ч1