Система взаимодействия с микроконтроллером из приложения и веб-сервиса GyverHUB, конструктор интерфейса
Находится в Wiki репозитория
Проект пока что тестируется. Особенности, обсуждение и всё остальное - тут https://github.com/GyverLibs/GyverHUB/issues/3
GyverHUB - это программный комплекс, включающий в себя библиотеку для микроконтроллеров и программу для управления. Программа написана на JavaScript и по сути является сайтом, что позволяет ей работать:
- С официального сайта hub.gyver.ru
- Сайт можно установить как веб-приложение (PWA) на любое устройство (Android/iOS/Windows...)
- Файлы сайта можно скачать и использовать локально с компьютера
- Отдельное Android приложение (в разработке)
Микроконтроллер и приложение обмениваются данными по своему протоколу (см. API) через различные интерфейсы связи:
- MQTT (через Интернет)
- WebSocket (в локальной сети)
- Serial (проводное подключение) (в разработке)
- Bluetooth (в разработке)
- В ручном режиме - любой символьный интерфейс (GSM, GPRS, радио...)
Основные моменты:
- Приложение может обнаруживать устройства в своей "сети"
- В программе для микроконтроллера "собирается" графический интерфейс, который отправляется в приложение
- Можно управлять микроконтроллером с полученного интерфейса в приложении или с сайта
- В случае с ESP8266/ESP32 это работает через Интернет
- Библиотека реализована таким образом, что помимо использования в паре с родным приложением можно очень просто и быстро интегрировать свою самоделку в любую систему умного дома, которая поддерживает MQTT (Алиса, Home Assistant...)
Особенности:
- Библиотека невероятно проста в использовании
- Стильный дизайн ;) светлая и тёмная темы
- Удобный парсинг действий с приложения/сайта или сервера умного дома
- Более 20 активных компонентов интерфейса (кнопки, слайдеры, выбор...) + блоки оформления и навигации
- Настраиваемые модули: загрузка и скачивание файлов, информация о плате, OTA обновление, защита паролем, интерфейс командной строки...
- 1000 FontAwesome иконок оформления для кнопок и списка устройств
- Библиотека асинхронная (опционально для ESP8266/ESP32)
- Оптимальное использование памяти для работы на слабых МК
Ближайшие аналоги:
- Приложение RemoteXY
- Сервис Blynk
В отличие от них GyverHUB полностью бесплатный, безопасный, не имеет ограничений и не нуждается в локальном сервере
- Все Arduino: Serial, Bluetooth (Serial) и ручной режим
- ESP8266 и ESP32: + WebSocket и MQTT
Общие:
Для синхронной работы (ESP8266/ESP32):
Для асинхронной работы (ESP8266/ESP32):
- Библиотеку можно найти по названию GyverHUB и установить через менеджер библиотек в:
- Arduino IDE
- Arduino IDE v2
- PlatformIO
- Скачать библиотеку .zip архивом для ручной установки:
- Распаковать и положить в C:\Program Files (x86)\Arduino\libraries (Windows x64)
- Распаковать и положить в C:\Program Files\Arduino\libraries (Windows x32)
- Распаковать и положить в Документы/Arduino/libraries/
- (Arduino IDE) автоматическая установка из .zip: Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… и указать скачанный архив
- Читай более подробную инструкцию по установке библиотек здесь
- Рекомендую всегда обновлять библиотеку: в новых версиях исправляются ошибки и баги, а также проводится оптимизация и добавляются новые фичи
- Через менеджер библиотек IDE: найти библиотеку как при установке и нажать "Обновить"
- Вручную: удалить папку со старой версией, а затем положить на её место новую. "Замену" делать нельзя: иногда в новых версиях удаляются файлы, которые останутся при замене и могут привести к ошибкам!
- v1.0
При нахождении багов создавайте Issue, а лучше сразу пишите на почту [email protected]
Библиотека открыта для доработки и ваших Pull Request'ов!
При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать:
- Версия библиотеки
- Какой используется МК
- Версия SDK (для ESP)
- Версия Arduino IDE
- Корректно ли работают ли встроенные примеры, в которых используются функции и конструкции, приводящие к багу в вашем коде
- Какой код загружался, какая работа от него ожидалась и как он работает в реальности
- В идеале приложить минимальный код, в котором наблюдается баг. Не полотно из тысячи строк, а минимальный код
