Статья опубликована в рамках: Научного журнала «Студенческий» № 23(193)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
ПРИМЕР РЕАЛИЗАЦИИ WEB ИНТЕРФЕЙСА ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ ОСВЕЩЕНИЯ НА БАЗЕ ARDUINO
АННОТАЦИЯ
В данной статье рассматриваются возможности модернизации освещения в помещении, а именно построение дизайна домашней интеллектуальной системы освещения на базе Arduino. Одним из важнейших направлений развития технологий смарт дома является дизайнерское освещение, заметно улучшающий условия проживания для людей с ограниченными возможностями. Важнейший аспект автоматизации будет управления освещения жилого помещения, с возможностью адаптации под деятельность людей.
Данная статья состоит в том, что разработан дизайнерский светильник на базе Arduino где было задействовано и схема техника, и программирование в среде Arduino IDE, а также его значимость в жизни человека, всё сделано для упрощения жизни человека и экономии времени и электрической энергии, а так е разработка модели интеллектуальной системы освещения на базе Arduino, реализованная в виде web-интерфейса и дизайнерским видоизменением осветительного устройства, обеспечивающей минимизацию затрат на разработку, экономии электроэнергии. Данная разработка может быть использована в помещениях, где используется освещение.
Ключевые слова: умные устройства, web-интерфейс, дизайнерское освещение.
На данный момент существует большое количество умных устройств и комплектов устройств для умного дома. Они разнообразны в своей функциональной, но как правило, для дальнейшего своего функционирования они требуют прямого входящего сигнала от пользователей, что данный момент существенно занижает степень автономности системы управлением умным домом [4].
Анализ показал, что существует небольшое количество исследований, посвященных проблеме интеллектуального освещения умных домов, к тому же они являются дорогостоящими.
Лучшим выбором является модуль ESP8266, так как он по всем параметрам превосходит аналог от Texas Instruments, при этом стоимость в разы ниже. Конечно, для каких-то применений модуль от TI окажется лучше, но для нашего случая выбором является ESP8266.
В перспективе развитие систем интеллектуального управления освещения как частички умного дома являются расширением функциональной помощи и содействием для пользователей [6, с.288].
Рисунок 1. Схема подключения ESP8266
Таким образом, определено, что есть готовые другие устройства и системы управления дизайна интеллектуальной осветительной системы на базе Arduino, имеют своё назначение и функционал, требующий от потребителя заданных им команд, непосредственно произведенных голосом, жестом или сделанным через телефон, компьютер. Тем самым будет применено и использовано на первом этапе формирования и разработки функция управления под web интерфейсом. Что указывает на то, что требуется в дальнейшем полная автоматизация той или иной области, где находиться человек и разработка контекстной уведомлённости.
Электрическая схема соединения устройств – документ, который определяет полный состав элементов и взаимосвязи между ними и, как правило, дает полное (детальное) представление о принципах работы изделия. Схемы принципиальные необходимы для изучения принципов работы устройств, а также их наладки, контроля и ремонта [10].
Схема рассчитана на современную элементарную базу. Используются smd-компоненты, имеющие малые габариты, за счет чего уменьшаются как габаритные размеры, так и масса конечного устройства. К тому же за счет малых размеров, у smd-компонентов минимизированы параметры.
Схема электрическая принципиальная для «Контроля бытовой техники в умном доме» представлена на рисунке 1. Перечень элементов необходим для записи данных об элементах и устройствах, изображенных на схеме. Связь между УГО и перечнем элементов осуществляется через позиционные обозначения.
Разработка и написание web интерфейса в Arduino IDE
Плата NodeMCU работает в режиме точки доступа и выполняет функцию сервера, а приложение на Андроид - работает как клиентская часть.
Для начала работы с NodeMCU нужно установить подключение к компьютеру посредством USB кабеля. При необходимости установить драйвер виртуального COM-порта CP2102.
В версии Windows не ниже 10, драйвер сам загрузится при наличии подключениия к сети. На Linux-подобных операционных системах драйвер не понадобится, но будет необходимо проследить чтобы текущий пользователь был членом группы “dialout”, иначе будет отказано в доступе к порту. Чтобы добавить пользователя в эту группу, достаточно указать в терминале команду
sudo usermod -a -G dialout <username>,
где <username> - имя пользователя, и ввести пароль администратора.
Компиляцию прошивки удобнее всего провести в среде Arduino Ide, но сперва необходимо настроить ее для работы с контроллером ESP8266, на котором базируется отладочная плата NodeMCU. Для этого нужно найти в меню «Файл» пункт «Настройки» и в окно ввода «дополнительные ссылки для менеджера плат» вставить ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json рисунок 2.
Рисунок 2. Настройка контроллера
После этого в меню «Инструменты» — «Плата» «Менеджер плат» выбрать «esp8266» и установить последнюю версию. После проделанных действий в меню «Инструменты» — «Плата» нужно найти NodeMCU рисунок 3.
Рисунок 3. Установка последней версии «esp8266»
Разберем код прошивки. В данном фрагменте листинга осуществляется подключение необходимых библиотек. Для корректной компиляции скетча, необходимо скачать и установить данные библиотеки.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include <EEPROM.h>
Библиотека WiFiUdp.h будет использоваться для программирования UDP-функционала. Стандартная EEPROM.h предназначена для работы с энергонезависимой памятью (запись данных, их чтение).
#define DEV_COUNT 4
#define interruptPin 0
Данный фрагмент листинга используется для определения или ссылки на тип структуры.
typedef struct ADDRESS {
char flag;
char ssid[32];
char password[32];};
ADDRESS address;
Следующим шагом является установка имени точки доступа и пароля входа в неё.
const char* ssid = "R_Lab";
const char* password = "54237890";
В следующем фрагменте запускаем сервер на порту 80.
ESP8266WebServer server(80);
Ниже указываем на каких пинах контроллера будут находится наши реле.
int devices[DEV_COUNT] = {D5, D6, D7, D8};
В данной части счетча описывается функция, возвращающая состояние пинов микроконтроллера.
String getState() {
String result = "";
for (int i = 0; i < DEV_COUNT; i++)
result += String(digitalRead(devices[i]));
return result;}
void setup() {
В следующем фрагменте листинга указываем подтяжку к высокому логическому уровню для кнопки сброса через внутренний резистор.
pinMode(interruptPin, INPUT_PULLUP);
Настраиваем вектор прерывания по изменению логического уровня на кнопке сброса.
attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, CHANGE);
В данной части скетча переводим все пины в состояние вывода и выводим низкий логический уровень.
for (int i = 0; i < DEV_COUNT; i++) {
pinMode(devices[i], OUTPUT);
digitalWrite(devices[i], LOW); }
Устанавливаем скорость передачи данных серийного порта для вывода отладочной информации.
Serial.begin(115200);
Serial.println();
Serial.print("Start as AccessPoint: ");
В этом фрагменте листинга указываем серверу режим работы - точка доступа.
WiFi.mode(WIFI_AP);
Serial.println("OK");
Выводим полученный IP для подключения.
IPAddress apip = WiFi.softAPIP();
Serial.print("Visit: \n");
Serial.println(apip); }
В данной части скетча используется обработчик входящего сообщения – установка логических уровней.
server.on("/set", []() {
int device = server.arg("device").toInt();
int state = (server.arg("state") == "on") ? HIGH : LOW;
Serial.println( "Device: " + server.arg("device") );
Serial.println( "State: " + server.arg("state") );
Serial.println( "------" );
digitalWrite(devices[device - 1], state);
server.send(200, "text/plain", "OK. Device " + server.arg(device) + " state: " + server.arg("state")); });
server.on("/get", []() {
server.send(200, "text/plain", getState()); });
server.onNotFound([]() {
server.send(404, "text/plain", "Not Found\n\n"); });
И, наконец, стартуем сервер.
server.begin(); }
В главном цикле просто заставляем сервер обрабатывать входящие сообщения.
void loop() {
server.handleClient();
Далее идём Инструменты/Плата:/Менеджер плат, находим там «esp8266 by ESP8266 Community» и устанавливаем последнюю версию. Все теперь можно прошивать модуль ESP8266 с Wi-Fi модулем.
Дальше скачиваем библиотеку WS2812FX по ссылке (https://github.com/kitesurfer1404/WS2812FX). В Arduino IDE подключаем Скетч, который содержится в библиотеках от Arduino IDE. Теперь при написание web интерфейса нужно задать пароль и название сети, то есть в нем SSID и пароль для подключения к вашему роутеру будет так как мы его назовем.
#define WIFI_SSID "esp2812" #define WIFI_PASSWORD "123456789" показано на рисунке 4
Тем самым мы настраиваем web интерфейс освещения.
Рисунок 4. Задание пароля и названия сети
Таким образом, определена структура связей внутренних назначенных компонентов системы управления освещением с применением стандарта IEEE 802.15 и спецификации беспроводной локальной сети IEEE 802.11 Wi-Fi для получения удаленного доступа к осветительному устройству через web интерфейс.
Определена составляющая комплектная основа аппаратной части системы управления освещением на основании программной и аппаратной совместимости компонентов и основная стоимость на рынке.
Список литературы:
- Авдеев А. С. Разработка систем автоматизации жилых и офисных помещений «Умный Дом»: сб. науч. тр. / «Катановские чтения» - 2017». 2017. С. 142-143
- Авдеев А.С., Герасимова А.И. Основные проблемы программирования систем «Умного Дома»: сб. науч. тр. / Перспективы науки. - 2018. 62-65 С.
- Блум Дж. Изучаем Arduino: инструменты и методы технического волшебства. СПб.: БХВ-Петербург, 2016. 336 с.
- Шаров Ю.В., Хорольский В.Я. Электроэнергетика: учебное пособие. М.: Инфра-М, 2016. 384 с.
- Кашкаров А. Умный дом своими руками. М.: ДМК-Пресс, 2015. 256 с.
- Кнорринг Г.М. Осветительные установки. Л.: Изд-во Энергоиздат, 2016. 288 с.Ревинская О. Г. Основы программирования в MatLab: учеб. Пособие. СПб.: БВХ-Петербург, 2016. 209 с.
- URL: https://www.arduino.cc/
- https://github.com/arduino/Arduino/
Оставить комментарий