Skip to content
GS32BiosPublic

About

Модульная прошивка для микроконтроллеров семейства ESP32 со встроенной текстовой консольной средой настройки (BIOS), поддержкой многоканального мониторинга микроклимата, сетевой телеметрией, дисплеем и опциональным медиа-функционалом.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

GS32 Firmware (FW8304)

Модульная прошивка для микроконтроллеров семейства ESP32 со встроенной текстовой консольной средой настройки (BIOS), поддержкой многоканального мониторинга микроклимата, сетевой телеметрией, дисплеем и опциональным медиа-функционалом.


Описание проекта

Проект представляет собой гибкую платформу с компонентной архитектурой, предназначенную для сбора телеметрии с датчиков температуры и влажности, локального отображения информации и периодической передачи данных на удаленный сервер мониторинга.

Ключевая особенность решения — наличие консольного интерфейса конфигурации GS32BIOS, доступного через UART, и системы хранения параметров GS32Config на базе энергонезависимой памяти (NVS). Это позволяет изменять назначения выводов (GPIO), параметры беспроводной сети, калибровку эквалайзера и настройки отправки телеметрии без повторной компиляции и перепрошивки устройства.


Основной функционал

  • Консольный BIOS (GS32BIOS): интерактивное меню в Serial-интерфейсе для тонкой настройки всех параметров, диагностики памяти, разделов OTA и мониторинга текущих показателей.
  • Хранение настроек (NVS): автоматическое сохранение и загрузка параметров, поддержка сброса до заводских настроек (Factory Reset).
  • Опциональный Сенсорный хаб (GS32SensorHub): подключение до 9 датчиков температуры и влажности (DHT11, DHT21/AM2301, DHT22/AM2302) на независимых GPIO.
  • Опциональный Графический интерфейс: поддержка монохромных дисплеев (контроллер SSD1306, SPI/I2C), циклическая смена экранов (Uptime, показания датчиков), статусные индикаторы WiFi и вывод уникального Chip ID.
  • Опциональный Сетевой стек (GS32WIFI): режимы работы STA (клиент), AP (точка доступа) и комбинированный режим STA+AP; динамический мониторинг RSSI и подключенных клиентов.
  • Опциональный Веб-телеметрия (GS32ReportWeb): отправка состояния устройства и данных с датчиков в формате JSON на внешний REST API с поддержкой авторизации по токену.
  • Диагностика OTA: отслеживание размеров Flash-памяти, скетча и состояния разделов для обновлений по воздуху.
  • Опциональный аудиотракт (GS32AudioI2S): поддержка I2S-вывода, режимов Bluetooth Sink/Source, интернет-радио и 3-полосного эквалайзера с предустановками.
  • Опциональный ИК-приемник (GS32IR): интеграция инфракрасного управления с поддержкой универсальных протоколов.

Архитектура и флаги компиляции

Активация и деактивация периферийных модулей осуществляется в заголовке скетча с помощью макросов препроцессора:

Флаг Значение по умолчанию Описание
HAS_BUTTONS 1 Поддержка физических кнопок управления
HAS_DISPLAY 1 Поддержка графического дисплея SSD1306
HAS_WIFI 1 Сетевой модуль WiFi (STA / AP)
HAS_SENSORS 1 Опрос датчиков микроклимата
HAS_IR 0 Поддержка инфракрасного приемника
HAS_AUDIO 0 Аудиосистема I2S и Bluetooth Audio
HAS_REPORT 1 Отправка телеметрии на удаленный сервер

Назначение выводов по умолчанию (Pinout)

Все выводы могут быть переназначены через меню BIOS и сохранены в NVS.

Кнопки управления

  • Кнопка 1: GPIO 12
  • Кнопка 2: GPIO 13
  • Кнопка 3: GPIO 14

Дисплей (SPI)

  • MOSI: GPIO 23
  • CLK: GPIO 18
  • DC: GPIO 2
  • RST: GPIO 4
  • CS (SC): GPIO 5

Аудио (I2S, при активации HAS_AUDIO)

  • BCK (Bit Clock): GPIO 26
  • LRCK (Left/Right Clock): GPIO 25
  • DIN (Data In): GPIO 22

ИК-приемник (при активации HAS_IR)

  • Data Pin: GPIO 16

Управление физическими кнопками

  • Кнопка 1 (Одинарный клик): переключение информационных экранов на дисплее (Время работы устройства -> Датчик 1 -> Датчик N -> Время работы устройства).
  • Кнопка 2 (Одинарный клик): циклическое переключение режимов WiFi (OFF -> STA -> AP -> STA + AP) с сохранением нового состояния в NVS.
  • Кнопка 3 (Одинарный клик): кратковременный вывод аппаратного идентификатора чипа (Chip ID / eFuse MAC) на дисплей на 3 секунды.

Сеть и телеметрия

Режимы WiFi

  1. OFF: радиомодуль отключен.
  2. STA: подключение к существующей точке доступа по заданным SSID и паролю.
  3. AP: запуск собственной точки доступа (по умолчанию SSID: FW8304, пароль: 12345678).
  4. STA + AP: одновременная работа в двух режимах.

Веб-отчеты (Web Reporting)

При активном флаге HAS_REPORT и наличии подключения к сети устройство каждые 60 секунд отправляет HTTP-запрос на сконфигурированный сервер (по умолчанию: https://gs32.piminoff.ru/api/send/).

Формируемый пакет включает в себя:

  • Авторизационный токен (Token).
  • Показания активных и валидных датчиков (ID датчика, GPIO, температура, влажность).
  • Диагностические системные параметры чипа (размер свободной памяти Heap, тактовая частота CPU, время непрерывной работы Uptime, версия SDK и др. — включаются независимо в BIOS).

Инструкция по сборке и запуску

Зависимости

Для сборки скетча требуются следующие библиотеки (в зависимости от включенных модулей):

  • Arduino.h, Update.h (базовые компоненты ядра ESP32)
  • GS32BIOS
  • GS32Config
  • GS32Buttons (если HAS_BUTTONS = 1)
  • GS32Display1306 (если HAS_DISPLAY = 1)
  • GS32WIFI (если HAS_WIFI = 1)
  • GS32SensorHub (если HAS_SENSORS = 1)
  • GS32ReportWeb (если HAS_REPORT = 1)
  • GS32AudioI2S (если HAS_AUDIO = 1)
  • GS32IR (если HAS_IR = 1)

Сборка через Arduino IDE / PlatformIO

  1. Установите поддержку платформы ESP32 в вашу среду разработки (Arduino ESP32 Core).
  2. Выберите целевую плату (например, ESP32 Dev Module).
  3. Задайте схему разметки разделов Flash-памяти с поддержкой OTA (например, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) или схема с двумя OTA-разделами). (Для поддержки режима Audio требуется выбрать Huge App)
  4. Подключите устройство через USB и прошейте микроконтроллер.
  5. Откройте монитор порта со скоростью 115200 бод.

Работа с консольным интерфейсом (GS32BIOS)

  1. После старта устройства откройте Serial Monitor (терминал с поддержкой ANSI-escape последовательностей рекомендуется).
  2. В консоли отобразится интерактивное древовидное меню управления.
  3. Навигация позволяет:
    • Изменять параметры привязки выводов GPIO для датчиков, дисплея, кнопок и аудио.
    • Задавать сетевые реквизиты (SSID, пароли, протоколы аутентификации).
    • Выбирать типы подключенных сенсоров на каждом из 9 каналов.
    • Просматривать текущее потребление памяти, свободное место под OTA и версию прошивки.
    • Сохранять конфигурацию (Save) или вызывать сброс до заводских значений (Factory Reset).
    • Использовать пункт Exit для освобождения порта и штатной работы контроллера.

Лицензия и авторство

  • Продукт: GS32 FW8304
  • Версия: 1.0.0
  • Разработано для систем автоматизации и удаленного телеметрического мониторинга на базе чипов ESP32.

About

Модульная прошивка для микроконтроллеров семейства ESP32 со встроенной текстовой консольной средой настройки (BIOS), поддержкой многоканального мониторинга микроклимата, сетевой телеметрией, дисплеем и опциональным медиа-функционалом.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages