feat(ui): тревога по перегреву и config.h со всеми настройками
Настройки собраны в config.h: пины, ориентация, пороги тревоги, шкала графика, тайминги и скорость Serial. Раньше они были раскиданы по модулям, и подстройка требовала лазить по коду. Тревога включается на ALARM_ON_C и отпускает только на ALARM_OFF_C (85 и 82 градуса). Один порог заставлял бы её дёргаться каждую секунду, пока температура топчется на границе. В тревоге экран мигает негативом (инверсия буфера, а не команда контроллера - не зависит от микросхемы дисплея), светодиод GPIO8 мигает с ним в общей фазе. Без данных светодиод горит ровно, в норме погашен. Зажигается низким уровнем: проверено опытом, заодно в простое пин стоит высоким, что безопасно для GPIO8 как пина начальной загрузки. Переменная alarm переименована в alarmActive: имя alarm занято функцией из unistd.h, которая попадает в сборку ESP32. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
db86597433
commit
bd0a87ea49
6 files changed
+131
-21
No files matched your search
+29
-1
@@ -16,7 +16,8 @@ LibreHardwareMonitorLib.dll ──> PowerShell-агент ──COM (USB CDC)─
|
||||
|
||||
| Путь | Что это |
|
||||
|---|---|
|
||||
| `CPU_temp.ino` | основной скетч: тайм-аут свежести данных, частота перерисовки |
|
||||
| `config.h` | **все настройки**: пины, пороги тревоги, шкала графика, тайминги |
|
||||
| `CPU_temp.ino` | основной скетч: свежесть данных, гистерезис тревоги, светодиод |
|
||||
| `link.h` / `link.cpp` | неблокирующее чтение строки из Serial и её разбор |
|
||||
| `ui.h` / `ui.cpp` | отрисовка через U8g2 и кольцевой буфер истории |
|
||||
| `tools/i2c_scan/` | одноразовый скетч: поиск пинов встроенного дисплея |
|
||||
@@ -73,6 +74,33 @@ T=67.0;L=34
|
||||
Шкала графика фиксированная, 30–90 °C. Автомасштаб сознательно не используется:
|
||||
при нём шум ±1 °C в простое рисовался бы горами и создавал ложную тревогу.
|
||||
|
||||
Ориентация задаётся константой `DISPLAY_ROTATION` в `config.h`: `U8G2_R0` —
|
||||
как разведено на плате, `U8G2_R2` — поворот на 180°.
|
||||
|
||||
## Тревога по перегреву
|
||||
|
||||
Порогов два, `ALARM_ON_C` и `ALARM_OFF_C` (по умолчанию 85 и 82 °C). Тревога
|
||||
включается на верхнем и отпускает только на нижнем — с одним порогом она
|
||||
дёргалась бы каждую секунду, пока температура топчется на границе.
|
||||
|
||||
В тревоге экран мигает негативом, а светодиод на GPIO8 мигает с ним в такт
|
||||
(общая фаза, период `ALARM_BLINK_MS`).
|
||||
|
||||
Светодиод по состояниям:
|
||||
|
||||
| Состояние | Светодиод |
|
||||
|---|---|
|
||||
| Норма | погашен |
|
||||
| Тревога | мигает синхронно с экраном |
|
||||
| `NO DATA` | горит ровно |
|
||||
|
||||
Светодиод зажигается **низким** уровнем (`LED_ACTIVE_LEVEL = LOW`, определено
|
||||
опытом). Попутно это удобно: в обычном режиме пин удерживается высоким, а GPIO8
|
||||
— пин начальной загрузки, которому высокий уровень и нужен.
|
||||
|
||||
Проверять тревогу можно, не трогая пороги: остановить агента и подать значения
|
||||
вручную.
|
||||
|
||||
## Требования к ПК
|
||||
|
||||
Windows, LibreHardwareMonitor и драйвер PawnIO — порядок установки и разбор
|
||||
|
||||
Reference in new issue
Block a user