WebIOPiweb-интерфейс и облако для Raspberry Pi.

 

Байманкулов А.Т., доктор физико-математических наук, доцент

Летвинко Полина Сергеевна, магистр, ст. преподаватель

Белов Алексей Валерьевич,  магистрант специальности 6М072400 – Технологические машины и оборудование (траектория Мехатроника)

Костанайский государственный университет им. А. Байтурсынова

 

Аннотация: Одна из важных функций, которая должна присутствовать в системе «Умный дом» -  это возможность слежения за показаниями датчиков и управление частями системы через веб-интерфейс. Для простой реализации этой функции часто используется фреймворк WebIOPi. Данный фреймворк разработан под платформу RaspberryPi.

 

Понятие Internet of Things (IoT, Интернет вещей) – это концепция «умного дома», где все датчики, приборы, системы управляются удаленно через глобальную сеть Интернет.

Raspberry Pi – это компактный компьютер, величиной с кредитную карту. В основном Raspberry Pi рассматривается как дешевое решение для начинающих разработчиков. С учетом удовлетворительной аппаратной мощности данного мини-ПК, малого энергопотребления и низкой себестоимости его можно использовать для создания персонального мини-сервера. Важным преимуществом является подключение многих устройств через порты GPIO.

Фреймворк WebIOPi – сервис Internet of Things, позволяющим контролировать состояние и управлять всеми портами GPIO локально или удаленно, из браузера или любого другого приложения. Достоинства данного фреймворка заключается в следующем: имеет встроенную поддержку более чем 30 устройств, совместимость с Python 2 и 3, возможность работы с облачным сервисом Weaved, парольная защита.

Для начала работы с данным фреймворком необходимо в первую очередь скачать соответствующий архив и установить его. Рекомендуемая система на Raspberry Pi – ОС Raspbian. Для установки WebIOPi  в данной системе выполнены следующие команды в консоли:

wget http://webiopi.googlecode.com/files/WebIOPi-0.7.1.tar.gz

tar xvzf  WebIOPi-0.7.1.tar.gz

cd WebIOPi-0.7.1

sudo ./setup.sh

В процессе долгой установки будет предложено создать профиль в облачном сервисе Weaved для доступа к фреймворку через сеть Интернет. Установленный фреймворк лучше запускать как сервис.

sudo /etc/init.d/webiopi start

Далее сервер WebIOPi настраивается путём изменения его конфигураций в соответствующем ini-файле. В блоке [GPIO] устанавливаются пользовательские настройки для портов. В блоке [SCRIPTS] определяется список скриптов, выполняемых при запуске WebIOPi. Блок [DEVICES] позволяет подключить устройства, поддерживаемые фреймворком к конкретным портам GPIO

При запуске сервера браузер загружает библиотеку webiopi.js, которая осуществляет асинхронную передачу данных – удобно тем, что нет необходимости в перезагрузке страницы браузера для получения обновленных данных, к примеру показателей с датчиков. Для подключения к Raspberry Pi по Web на мини-ПК необходимо установить веб-сервер:

sudo apt-get install apache2

Страница доступа из Weaved к веб-серверу на Raspberry Pi показана на рисунке 1.

 

Рисунок 1. Страница доступа из Weaved к веб-серверу на Raspberry Pi

 

WebIOPi содержит в себе HTTP-сервер, содержащий не только HTML-содержимое, но и интерфейс REST API, управляющий портами GPIO. Расширения возможностей WebIOPi можно путем загрузки пользовательского скрипта на языке программирования Python. Скрипт на данном языке будет содержать функции настройки выводов GPIO и будет создан с использованием Arduino-подобного синтаксиса. Общая схема организация сервера на данном фреймворке показана на рисунке 2.

 

Рисунок 2. Общая схема работы WebIOPi

 

В html-документе для создания необходимых элементов используются соответствующие функции из java-скрипта webiopi.js. Список основных функций библиотеки:

WEBIOPI.ready регистрирует функцию обратного вызова при загрузке скрипта

WEBIOPI.setFunction устанавливает значение порта GPIO

WEBIOPI.digitalWrite конфигурирует порт на выход и устанавливает его значение

WEBIOPI.digitalRead конфигурирует порт на ввод и читает его значение

WEBIOPI.pulse отправляет импульс на выход GPIO

WEBIOPI.createButton создает простую кнопку

WEBIOPI.createRatioSlider возвращает объект - шкалу

WEBIOPI.setLabel позволяет изменить надпись на кнопке

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

·                   Веб-интерфейс с использованием библиотеки webiopi.js

·                   Серверный скрипт на языке Python, запускаемый при старте фреймворка

·                   Правка файла конфигурации WebIOPi

 

Список литературы

1. Петин В.  Arduiono и Raspberry Pi в проектах Internet of Things / СПб.: БХВ-Петербург, 2016. – 320 с.

2. Тесля Е.В.  "Умный дом" своими руками. Строим интеллектуальную цифровую систему в своей квартире / СПб.: Питер, 2008

3. Том Иго  Arduino, датчики и сети для связи устройств, 2-е изд. / СПб.: БХВ-Петербург, 2015. – 544с.