Приложение написано на HTML/CSS/JS и представляет собой "сайт", для запуска которого нужен сервер. Сервером может быть сама плата на базе esp, локальный сервер может быть вшит в приложение и так далее. Исходный код приложения можно почитать здесь.
GyverHub доступен в разных вариациях и на разных платформах. Приложение полностью автономное, для работы ему не нужен интернет, оно не зависит от каких-то серверов и вообще от разработчика, поэтому в системе даже нет таких понятий как "регистрация" и "личный кабинет". Приложение существует:
- Как онлайн версия на официальном сайте hub.gyver.ru: HTTP и HTTPS версия, есть HTTPS зеркало на GitHub Pages
- Как веб-приложение (оффлайн PWA): официальный сайт можно установить на любое устройство (Android/iOS/Linux/Windows/Mac...) - инструкция
- Как телеграм-приложение
- Как нативное приложение:
- Android: Google Play, скачать APK, исходник
- iOS: App Store, исходник
- Desktop (Windows/Linux/Mac): скачать, исходник
- Как автономная вебморда из Flash памяти ESP8266/ESP32 - инструкция
Примечание: все варианты приложения за исключением вебморды ESP автоматически обновляются: при выходе обновления приложение скачивает себе в память минифицированный HTML файл приложения вот отсюда (размер около 700кб)
По техническим причинам в некоторых версиях приложения доступны не все способы связи. Это не относится к устройству с библиотекой, речь идёт только о приложении!
Источник / режим | WiFi | MQTT | Serial/BT | BLE | Telegram |
---|---|---|---|---|---|
Desktop | ✔ | ✔ | ✔ | ✔ | dev |
Android | ✔ | ✔ | dev | dev | dev |
iOS | ✔ | ✔ | dev | ||
ESP | ✔ | ||||
localhost | ✔ | ✔ | ✔ | ✔ | dev |
Сайт HTTP | ✔* | ✔ | dev | ||
Сайт HTTPS | ✔ | ✔*** | ✔ | dev | |
PWA HTTP** | ✔ | ✔ | dev | ||
PWA HTTPS | ✔ | ✔ | ✔ | dev | |
Telegram | ✔ | ✔ | ✔ | dev |
- dev - В разработке TODO
- * - Режим WiFi работает после настройки браузера
- ** - Для установки PWA с HTTP версии сайта нужно добавить сайт в список доверенных
- *** - Только на десктопном Chrome/Edge/Opera, на других поддержки нет
Сайт может работать из памяти ESP8266/32, в библиотеке для этого уже настроен веб-сервер. Файлы вебморды весят 55 кБ. Если зайти в браузере на IP адрес ESP в локальной сети - откроется вебморда. Также она автоматически откроется при подключении к AP (настроен MDNS). Код сильно оптимизирован и настроено кеширование, морда будет открываться очень быстро: вес главной страницы всего 300 байт. Чтобы это работало, нужно подключить нужную опцию.
Необходимые файлы будут включены в программу в бинарном виде, для этого нужно объявить дефайн GH_INCLUDE_PORTAL
перед подключением библиотеки:
#define GH_INCLUDE_PORTAL
#include <GyverHub.h>
Нужно загрузить в файловую систему файлы приложения из архива esp-gz.zip - скачать свежую версию. Это можно сделать через:
- Портал загрузки esp:
http://ip_еспшки/hub/upload_portal
, он автоматически загружает файлы в нужный каталог - Файловый менеджер в приложении GyverHub (подключившись через отдельное приложение)
- Arduino IDE: ESP8266, ESP32
- PlatformIO: ESP8266, ESP32
Файлы должны располагаться в папке /hub/
:
/hub/index.html.gz
/hub/script.js.gz
/hub/style.css.gz
Также нужно объявить дефайн GH_FILE_PORTAL
перед подключением библиотеки:
#define GH_FILE_PORTAL
#include <GyverHub.h>
Современные браузеры запрещают слать запросы на локальные адреса в целях безопасности, поэтому для работы в режиме WiFi нужно перейти по адресу chrome://flags/#block-insecure-private-network-requests
(адрес настройки для вашей версии браузера будет указан в настройках GyverHub) и отключить настройку Block insecure private network requests. Затем перезапустить браузер.
Эта настройка снижает безопасность браузера! По возможности используйте приложение GyverHub или MQTT связь |
---|
- Chrome
- Открыть
chrome://net-internals/#hsts
, пункт Delete domain security policies, ввестиhub.gyver.ru
, нажать Delete - Очистить кэш
chrome://settings/clearBrowserData
выбрать Изображения и другие файлы- ИЛИ на сайте хаба в строке адреса нажать иконку со значком i, Файлы cookie... и очистить
- Открыть
- Firefox: нажать Ctrl + Shift + H, найти hub.gyver.ru, правой кнопкой - забыть сайт
Для установки PWA приложения с HTTP версии сайта (для работы в режиме WiFi) нужно включить настройку chrome://flags/#unsafely-treat-insecure-origin-as-secure
(адрес настройки для вашего браузера указан в настройках GyverHub) и добавить http://hub.gyver.ru
в список доверенных сайтов. После этого можно будет установить PWA приложение по кнопке HTTP и пользоваться им в локальном режиме.
Перед поиском устройства нужно ввести в настройках имя сети, которое указано в программе устройства.
В этом режиме устройство общается с приложением по протоколам HTTP/WS. Устройство должно находиться в одной сети с приложением (подключены к одному роутеру, телефон подключен к ESP).
Если локальный адрес устройства известен - можно ввести его в поле "добавить по IP" и нажать +
- устройство будет добавлено.
Для поиска в этом режиме нужно указать:
- Локальный IP приложения (девайса с открытым приложением или сайтом) или IP роутера. Также можно определить автоматически, для этого нужно отключить Anonymize local IPs exposed by WebRTC вот тут
chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
- Маску подсети роутера. По умолчанию стоит стандартная для большинства роутеров
- HTTP порт (по умолч. 80, задаётся в библиотеке)
После этого можно нажать кнопку поиска ниже.
Примечание: поиск в этом режиме работает на основе перебора всех адресов подсети, некоторые роутеры могут блокировать такие запросы и устройство не найдётся. Иногда поиск начинает работать после перезагрузки роутера.
MQTT позволяет управлять устройством через интернет из любой другой точки планеты. GyverHub работает с внешним MQTT брокером, это может быть бесплатный брокер, платный, а также можно поднять свой сервер на малинке или роутере - инструкция. Требования к брокеру:
- Наличие Wildcards (топики с
/#
) - Наличие TCP соединения для устройства
- Наличие Websocket с TLS (WSS) для приложения
- Список бесплатных брокеров
Для экспериментов можно использовать бесплатный публичный mosquitto, он настроен в примерах и в приложении по умолчанию:
- Хост:
test.mosquitto.org
- Порт (ESP):
1883
- Порт (приложение):
8081
Внимание! На публичном MQTT брокере ваше устройство могут обнаружить и другие люди и полноценно им пользоваться! Пользуйтесь брокерами с авторизацией из списка выше
После успешного подключения к серверу (появится иконка в правом верхнем углу) можно запускать поиск устройства.
Примечание: это публичный сервер, другие пользователи смогут найти ваше устройство, если случайно угадают имя сети. Это маловероятно, но реально, поэтому рекомендуется использовать сервер с авторизацией логин-пароль. Из платных брокеров могу порекомендовать WQTT - 300 рублей в год + удобная интеграция устройств с Яндекс Алисой.
Serial это не только проводная связь через USB, но и Bluetooth модули, которые создают виртуальный COM порт. Например HC-05, HC-06, JDY-21. Подключение к некоторым платам по аппаратному Serial приводит к перезагрузке устройства, поэтому в приложении предусмотрен таймаут - запрос на устройство будет отправлен через указанное кол-во миллисекунд, чтобы устройство успело загрузиться.
В рамках приложения GyverHub связь Bluetooth работает с BLE модулями, например HM-10, JDY-08, AT-09, CC41-A.
TODO