You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.1 KiB

Репозиторий проекта

Приложение GyverHub может работать с GitHub репозиторием вашего проекта, оформленного по особым правилам. Это взаимодействие позволяет:

  • Обновлять прошивку устройства "по воздуху" файлом из репозитория при выходе новых версий
  • Прошивать устройство по USB файлом из репозитория
  • Добавить свой проект в публичную базу проектов на основе GyverHub (вкладка Проекты снизу в приложении)

Нужно зарегистрироваться на GitHub, создать репозиторий и загрузить в него файлы (см. гугл). GyverHub требует наличия файла информации project.json. Пример оформления проекта.

project.json

Файл содержит информацию о проекте и пути к файлам скомпилированной прошивки для разных платформ:

{
  "name": "Название проекта",
  "about": "Краткое описание проекта",
  "version": "1.0",
  "notes": "Комментарии к обновлению",
  "builds": [
    {
      "chipFamily": "ESP8266",
      "parts": [
        {
          "path": "https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/firmware.bin",
          "offset": 0
        }
      ]
    }
  ]
}

Массив builds

Если проект может быть запущен на разных ESP-шках - можно приложить отдельный бинарник для каждой и указать пути к ним. Полный пример со всем семейством ESP можно посмотреть тут.

Параметр chipFamily

Поддерживаемые платформы и значения параметра chipFamily:

  • ESP8266
  • ESP32
  • ESP32-C3
  • ESP32-S2
  • ESP32-S3

Путь path

Путь должен вести к скомпилированному файлу прошивки. Его можно разместить как в самом репозитории, так и в релизах:

В репозитории

https://raw.githubusercontent.com/<аккаунт>/<проект>/main/<путь от корня репозитория>

Примеры:

  • bin
    • firmware.bin
    • esp8266
      • firmware.bin
    • esp32
      • firmware.bin
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/firmware.bin
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/esp8266/firmware.bin
https://raw.githubusercontent.com/GyverLibs/GyverHub-example/main/bin/esp32/firmware.bin

В релизах

https://github.com/<аккаунт>/<проект>/releases/latest/download/<файл>

Пример:

https://github.com/GyverLibs/GyverHub-example/releases/latest/download/firmware.bin

Добавление проекта в базу

Публично

Чтобы проект был доступен всем - читай инструкцию

Индивидуально

TODO

Прошивка через USB

Если проект отображается на вкладке Проекты - его можно загрузить в устройство по USB. Это можно сделать с HTTPS версии сайта, нужно кликнуть на значок загрузки около названия проекта и следовать инструкциям.

OTA обновление

Указание версии

Чтобы приложение знало, что для устройства нужно искать обновление, нужно установить текущую версию проекта в прошивке при помощи функции setVersion() следующим образом: hub.setVersion("аккаунт/репозиторий@версия"), например "AlexGyver/TachoLED@1.0"

Обновление репо

  • Обновить код версии в .setVersion() в прошивке
  • Скомпилировать и загрузить в репозиторий свежий бинарник
  • Обновить код версии в project.json

Запуск OTA

При входе на устройство в приложении автоматически проверяются обновления. Если доступна новая версия - появится всплывающее окно с предложением обновиться. Отключить автоматические обновления можно в настройках приложения.