Умная Дача Нового Поколения

С декабря 2018 года велась разработка прототипа новых модулей для Умного Дома. И вот 3 марта 2019 года успешно выпущен первый релиз метеостанции нового поколения.

 futcamp01

 

Был переосмыслен сам принцип взаимодействия внешних модулей с центральным контроллером. Появилось понимание, что необходимо перейти к модели, когда каждый из датчиков имеет собственный Wi-Fi микроконтроллер, что позволяет добиться отказоустойчивости и большой масштабируемости. В качестве опытного полигона на протяжении 3-х месяцев использовалось моё рабочее место в компании Eltex. Датчики температуры-влажности, оснащенные собственными LCD экранами для отображения показаний были размещены в 2-х кабинетах, кухне и за окном на подоконнике.

futcamp04futcamp03

 

За время испытаний было написано много кода и решено множество багов. Однако, что оставалось стабильным, так это работа новой архитектуры. Она полностью доказала право на существование. Также со времени завершения проекта "Майский" был полностью переработан Телеграм-бот, что позволило упростить добавление нового функционала, а также привести исходный код к более структурированному и понятному виду. В прошивку сервера было добавлено множество нововведений. Теперь на главном контроллере, который работает на ARM OrangePi One 4 core, крутится база данных PostgreSQL, куда периодически сохраняются данные со всех метеодатчиков.

futcamp02

Также изменен способ конфигурирования главного контроллера. Теперь используются динамические Cisco-like конфигурации, которые легко изменять непосредственно в программе и сохранять заново не боясь, что что-то где-то поедет. Для работы с самой базой данных теперь используется ORM на основе библиотеки xorm, что позволило избавиться от сырого SQL кода и упростить работу с базой. Для логирования всех действий и ошибок была использована библиотека логера от Google для golang. А для создания понятной и структурированной архитектуры использовался принцип Dependency Injection и библиотеки компании Uber.

futcamp05futcamp06

 

Впервые в проект внедрена система удаленной настройки серверного контроллера RemoteCLI. Remote Command Line Interface позволяет подключаться по IP адресу к контроллеру и менять любую из настроек, удалять добавлять сенсоры и сохранять в конфигурационный файл новые данные. Также серверное приложение обзавелось апдейтером, что позволяет с помощью RemoteCLI полностью обновить серверную прошивку.

futcamp07

 

Еще одним нововведением стала система мониторинга датчиков, которая позволяет с помощью информирования в Телеграм бота получать актуальное состояние всех устройств, находящихся в единой сети и моментально определять отключилось ли питание на каком-либо устройстве.

futcamp08

Ссылка на репозиторий github: https://github.com/futcamp

Группа Вконтакте: https://vk.com/futcampru

Метки: Arduino, ESP8266, smart, golang, orange pi