- PVSM.RU - https://www.pvsm.ru -
Я провел много часов повторяя проекты других по умным беспроводным вещам. Это привело меня к очевидному выводу: после третьего-четвертого проекта ты обнаруживаешь, что все они выполнены на разных принципах, с использованием разных технологий и приемов, особенно после того, как изменил или модернизировал некоторые из них. Это значит, что что твой мир вещей становится абсолютно не подлежащим обслуживанию.
Другими словами, ты должен поддерживать огромные библиотеки спецификаций и кодов. И необходимо больше времени для того чтобы справиться со всеми своими устройствами. Определенно, некоторые более организованы, чем я, но, наверняка, большинство в борьбе с энтропией добились незначительных успехов. Без обид.
Что делать, чтобы обуздать нашествие роботов на свой дом (а это в любом случае неизбежно)?.. Все просто. Вещи проще. Облако умнее.
Крохотный сервер принимает данные с датчиков, хранит их и посылает команды исполнительным устройствам. Теперь ваши устройства не толпа мыслящих вещей. Они лишь синапсы
В моей сети два типа устройств:
Все они общаются с сервером посредством модулей wifi (ESP8266 из известного китайского магазина). Входы отправляют данные о своем состоянии на сервер базы данных. Выходы принимают и исполняют команды от сервера. Как я уже упомянул, никакого разума у устройств нет.
Цель — сделать вещи как можно более простыми.
Вся логика остается на сервере. На сервере все алгоритмы, триггеры и т.п. Например, сервер принимает решение включить отопление, если температура в определенных помещениях опускается ниже определенного уровня на определенное количество времени. Сервер принимает решение открыть электромагнитный клапан полива в теплице, если влажность почвы упала до определенного уровня в определенное время суток. Естественно, человек может всегда вмешаться и взять управление в свои руки или изменить логику. Сервер также уведомляет владельца о критических событиях по СМС. Он может принимать команды с определенных телефонов.
Я использовал маленький беспроводный роутер с OpenWRT и расширенной памятью, способный содержать веб сервер и сервер баз данных — Gl-iNet 6416A не дороже 25 USD.
Удивительно крохотное устройство дает нам:
Это мое частное облако. Оно создает свою собственную подсеть сеть (192.168.8.1), свою собственную сеть wifi, доступную только моим вещам. У него также есть внешний интерфейс (WAN), подключенный к моему обычному домашнему роутеру (с назначенным адресом 192.168.1.100). Он нужен для доступа к панели управления из моей домашней wifi сети.
Прикладное программное обеспечение, использованное в проекте:
Текущая конфигурация хранится на GitHub [2].
И да, виноват, я использовал флешку как файловое хранилище, хотя по-взрослому не стоит использовать память NAND (требование mySQL).
Модуль wifi (ESP8266) заправленный стандартным скетчем. Вкратце, он считывает параметры последнего доступа к точке доступа, пытается к ней подключиться, если ему не удается, он запускает свою точку доступа и страницу с формой для новых параметров доступа. А если ему удается подключиться, он загружает с сервера предназначенные этому модулю скрипты и запускает их. Модули различаются по MAC адресам.
В моем облаке для каждого MAC адреса есть выделенная папочка с рабочими скриптами по адресу 192.168.8.1:86
Итак, изначально у модуля всего три скрипта:
AP_config — две строки: SSID и пароль.
init.lua — подключение к точке доступа с сохраненными параметрами из AP_config. При неудаче — запуск do(«ap_request.lua»). При удаче — загрузка рабочих скриптов и запуск их.
ap_request.lua — запрос новых параметров доступа к точке доступа, запись их в файл AP_config (в случае, если подключение с предустановленными не удалось).
Скрипты модуля [3]
Цель — сделать периферийный устройства как можно более простыми. Например модуль с двумя реле (выключатели света) состоит из:
Всё про всё — 7 USD.
Устройство с датчиком состоит из:
Всё не более 5 USD.
Он измеряет показания температуры и влажности и каждые 3 минуты отправляет на сервер, где они сохраняются в базу данных mySQL.
Самое интересное это то, что у меня нет обычных панелей управления. Все интерфейсы виртуальные. Кнопки, выключатели, движки виртуальны. Конечно, можно сделать их реальными и некоторые из них я сделаю.
С помощью этого сайта мы можем наблюдать историю датчиков и текущие значения, можем управлять лампами, клапанами и т.п.
Вы всегда можете добавить новые устройства к панели при помощи простых навыков HTML и Javascript кодирования.
Я использовал карты ссылок с изображениями построенными в простой программе SweetHome 3D для организации навигации по дому.
Гораздо больше людей знают как кодировать для веба (PHP, Javascript, HTML), чем для контроллеров (C++, Lua). При помощи этой структуры мы можем получать, запрашивать, отправлять данные и команды простыми php или js скриптами. Мы можем построить обучаемую систему, которая сможет приспосабливаться к нашим привычкам, сообщать нам о происшествиях.
Автор: Alex--T
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/umny-j-dom/169801
Ссылки в тексте:
[1] мозга: http://www.braintools.ru
[2] GitHub: https://github.com/rudotcom/home-cloud/blob/master/backup-GL-iNet-2016-06-15.tar.gz
[3] Скрипты модуля: https://github.com/rudotcom/home-cloud/blob/master/ESP8266_module.rar?raw=true
[4] Источник: https://geektimes.ru/post/279292/
Нажмите здесь для печати.