Kincony KCS: фирменная прошивка для ESP32 контроллеров |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-05-23 05:55 У компании Kincony есть обширная линейка контроллеров на основе популярного ESP32. Но контроллеры не работают сами по себе, для них требуется программное обеспечение, и тут просто просится создание «фирменной» прошивки для этой линейки контроллеров. Идея очевидная, но тут не всё так просто: создание софта — это довольно сложный процесс, нельзя просто так взять и создать прошивку для контроллера (а тем более для линейки контроллеров), — тут нужно иметь представление об архитектуре IoT систем и месте и роли контроллера, работающего под управлением этой прошивки в этих системах и т. д. Далее мы подробно разберём функционал и принципы работы фирменной прошивки KCS (сокращение от «KinCony Super») компании Kincony и посмотрим, что у неё получилось (и что не получилось) реализовать. ? Kincony KCS Линейка KC868-A серии содержит множество контроллеров, на данный момент поддержка KCS заявлена для моделей A4, A6, A8, A8S, A16, A32, A64, A128, AI, AK и E16S. Часть контроллеров из линейки KC868-AНа любой из этих контроллеров можно без особых проблем установить KCS и получить из коробки базовый функционал ESP32 контроллера «начинающего любителя домашней автоматизации». Не нужно ничего выдумывать и мудрить со сторонними прошивками — базовый функционал «логических хабов» и интеграция с популярными системами домашней автоматизации присутствует из коробки. Примечание. Под «логическим хабом» я понимаю контроллер, работающий под управлением прошивки, которая позволяет задать простейшую логику реакции на входные сигналы, без необходимости непосредственного программирования и компиляции кода самой прошивки. Можно сказать, что это огромный шаг вперёд для всей экосистемы контроллеров Kincony — собственная прошивка в сочетании с собственной линейкой контроллеров — это выглядит очень и очень сильно. Также стоит отметить, что на данный момент актуальная версия прошивки KCS — 1.0.19, что прозрачно намекает на то, что всё ещё только начинается. Теперь наглядно посмотрим как всё это хозяйство устанавливается на контроллер и как работает. ? Установка KCS Для экспериментов возьмём самый первый контроллер линейки — KC868-A4. Кроме всего прочего, он хорош ещё и тем, что содержит множество различных подсистем и мы сможем наглядно увидеть какие из них поддерживаются стандартной прошивкой, а какие — нет. И сможем сделать соответствующие выводы. Kincony (бесплатно) предоставляет специализированную прошивку для каждой модели контроллера. То есть установить прошивку от одной модели на другую физически получится, но предопределённый состав оборудования не будет совпадать и из работы такого контроллера ничего хорошего не получится. Поэтому имеет смысл устанавливать на контроллер только предназначенную для него прошивку. Прошивка бесплатная, но исходный код закрыт, то есть что-то изменить в прошивке мы самостоятельно не сможем — это для нас закрытая «вещь в себе».Загрузка прошивки Поставляется прошивка в виде одного файла, который нужно прошивать при помощи утилиты Flash Download Tool, актуальная версия на сегодня 3.9.4. Последнюю версию KCS можно найти на странице, там же можно ознакомиться с информацией о KCS и задать свои вопросы, если они у вас появятся. Сам процесс прошивки очень простой: подключаете контроллер к компьютеру, запускаете утилиту Flash Download Tool и производите в ней настройки, согласно этому скриншоту: Процесс работы Flash Download Tool и прошивки ESP32 отображается в окне:Предварительная настройка Далее перезагружаете контроллер и находите на смартфоне в списке Wi-Fi сетей открытую сеть нашего контроллера KC868-A4 с прошивкой KCS. Подключаетесь к ней и открываете в браузере страницу по адресу 192.168.4.1. Затем вводите логин и пароль (admin/admin) и попадаете на главную страницу с основными сведениями о контроллере. Поскольку KC868-A4 не имеет проводного Ethernet интерфейса, то часть полей остаются пустыми. Далее устанавливаем режим работы контроллера AP/STA (нам нужен режим STA) и вводим актуальные логин и пароль от вашей домашней Wi-Fi сети. Всё, на этом предварительный этап настройки закончен, далее контроллер будет работать в вашей локальной сети штатным образом.Начало работы Перезагружаем контроллер и смотрим в Serial мониторе его текущий IP адрес в вашей сети. Теперь, узнав текущий IP адрес контроллера, вводим его в браузере на компьютере и видим приглашение системы для ввода логина и пароля.? Работа с прошивкой KCS Теперь давайте посмотрим, какие возможности предоставляет пользователю прошивка KCS. Сразу после входа в систему мы попадаем на информационную страницу, которую компания Kincony назвала «Index». Я бы назвал этот пункт «Home», «Main», «About» или «Info». Тут представлены основные сведения о системе. Часть полей пустые, поскольку у нас контроллер без поддержки Ethernet интерфейса. Сам интерфейс представляет собой расположенное слева вертикальное меню и справа поле для загрузки страниц, соответствующих пунктам этого меню.Input Страница управления работой и определения логики цифровых входов. В нашем случае контроллера KC868-A4 это 4 цифровых входа для которых можно выставить логический уровень, реакцию на клики и удержание кнопок, привязать реакцию выходных реле (тоже 4 штуки на борту) и т. д. Output Управление выходами в том же духе — определение элементарной логики работы реле, инвертирование, определение задержки срабатывания, группировка и т. д. При помощи такого подхода можно без непосредственно программирования задать базовый слой логики работы выходов «включил-выключил». Monitor На этой странице собрана информация по основным подсистемам контроллера: индикация работающих в данной момент подсистем, состояние аналоговых входов, управление выходными уровнями DAC, индикаторы состояния цифровых входов и кнопки управления реле. Я бы сказал, что это основной экран системы, на котором видно текущее состояние её элементов. Некоторые из этих элементов являются интерактивными, то есть они не только отображают информацию, но и позволяют изменять состояние контроллера. Например, кнопки управления реле можно нажимать и изменять как состояние отдельных реле, так состояние всех реле сразу. На индикаторах ADC и DAC есть значки шестерёнок — при нажатии на них появляются всплывающие окна с дополнительными настройками: название канала (устройства), единицы измерения, минимальные и максимальные значения, порог срабатывания для посылки сообщений MQTT и т. д. То есть при помощи этого инструментария можно настраивать работу подсистем ADC/DAC.Schedule Расписание выполнения задач по управлению реле. Можно задать периодичность срабатывания, реакцию реле и т. д. Проблема заключается в том, что в системе, кроме реле, присутствует ещё куча сущностей, которые могут потребовать управления по расписанию. А прикладная задача может содержать производные сущности от базовых «железного» уровня, которые тоже могут требовать управления по расписанию, причём не простого, а в зависимости от множества входных параметров. Концепция «логического хаба» не позволяет реализовать подобное управление и просто «тупо» (в умолчаниях) делегирует решение этой задачи куда-то «наверх» в распределённой IoT системе.Другими словами — пощёлкать реле по расписанию по предопределённой простой логике вы сможете, но сам функционал вашей IoT системы вам придётся программировать руками, где-то на более высоком уровне. Network Сетевые настройки. В данном случае для Wi-Fi, на других контроллера серии KC868-A на этой странице появляются ещё настройки проводного Ethernet интерфейса. Wi-Fi может работать в качестве AP (точки доступа) или STA — элемента вашей беспроводной Wi-Fi сети.Protocol (General) Прошивка поддерживает работу со множеством протоколов, причём эти протоколы можно динамически включать и отключать. Тут же присутствуют типовые настройки этих протоколов. Поддержка такого количества протоколов выглядит довольно внушительно и несомненно является достоинством рассматриваемой прошивки.Protocol (Tuya) Настройки, ассоциированные с Tuya. Любители этой технологии должны остаться довольны. Стоит также заметить, что некоторые контроллеры Kincony имеют на борту специализированные Tuya-чипы. System Основные настройки, назначение которых стандартно и понятно из их названия. Тут же присутствует возможность программной перезагрузки контроллера и восстановления заводских настроек (гут). ? Как это работает Теперь давайте посмотрим как это работает с технической точки зрения, так сказать, заглянем системе под капот. Сразу после прошивки KCS разует нас обширным логом, из которого пионеры DIY автоматизации могут извлечь много интересной для себя информации. После загрузки система начинает сетевую работу, при этом подробно комментируя все свои действия в логе (Serial выводе), откуда тоже можно почерпнуть много полезной информации (для тех, кто понимает (смайл). Пользователь, в основном, имеет дело с веб-интерфейсом, поэтому уделим ему некоторое внимание. Судя по доступной нам информации, разработчики KCS являются приверженцами традиционных ценностей в духе ESP-IDF/Bootstrap/jQuery и не в чём себе не отказывают, в результате чего страница собирается за 1,33-1,58 сек. Что, учитывая такой подход, — неплохо и приемлемо для более-менее нормальной работы с контроллером.Идеологически, все страницы интерфейса KCS являются статическими, то есть загружаются по запросу и далее не проявляют какой-то сетевой активности (что исключает какую-то интерактивность). Но есть и некоторые исключения, например, страница «Monitor». На этой странице используется динамическое сетевое Websockets взаимодействие между контроллером и веб-браузером пользователя. В результате мы имеем полностью интерактивную страницу, на которой вся информация динамически обновляется и работают всякие «кнопки» и «шестерёнки». Получить некоторое представление о размахе мысли и творческой потенции разработчиков KCS можно по скриншоту фрагмента одного из Javascript файлов системы. Это те дополнения технического характера, которые можно сделать из доступной нам информации (сама прошивка закрыта и исходный код нам недоступен). В целом, для меня, как разработчика подобной системы, «всё понятно». Архитектура, технологии и подход к реализации довольно прозрачны и ожидаемы. ? Чего не хватает? Теперь скажем несколько слов о том, чего не хватает в текущей версии KCS. Как я уже отметил выше, KCS воплощает концепцию «логического хаба», избавляет пользователя от тягот прямого программирования, но взамен низводит функционал контроллера до уровня логического калькулятора с сетевыми функциями. ? Итого по KCS В целом можно сказать, что KCS — это большой (и правильный) шаг компании Kincony — теперь «простым» автоматизаторам достаточно купить контроллер Kincony и залить в него фирменную прошивку — и можно получить базовый функционал подобных систем «из коробки». Источник: habr.com Комментарии: |
|