Плата поднимает страницу + JSON API (/api/state, /api/command) на порту 80
для наблюдения и управления актуаторами независимо от MQTT/Laravel.
Команда с веб-UI публикует тот же ack в devices/{id}/ack, что и MQTT-команда,
поэтому device shadow платформы не расходится с реальным состоянием.
Включается/выключается флагом ENABLE_WEB_UI в config.h.
В README добавлены ASCII-схема подключения DHT22/реле и раздел про сборку
через arduino-cli (включая обходной путь для проблемы с правами на
~/Documents/Arduino на macOS).
40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
// Скопировать в config.h и заполнить своими значениями.
|
||
// config.h в .gitignore — секреты (Wi-Fi, адрес брокера) в репозиторий не попадают.
|
||
#pragma once
|
||
|
||
// --- Wi-Fi ---
|
||
#define WIFI_SSID "your-wifi-ssid"
|
||
#define WIFI_PASSWORD "your-wifi-password"
|
||
|
||
// --- MQTT (mosquitto из home_automatization/docker-compose.yml, порт 1883, без auth в dev) ---
|
||
#define MQTT_BROKER_HOST "192.168.1.100"
|
||
#define MQTT_BROKER_PORT 1883
|
||
#define MQTT_CLIENT_ID "growbox-esp32"
|
||
|
||
// --- Зона и устройства ---
|
||
// zone_id — id зоны "Гроубокс" в Postgres (laravel-app, таблица zones).
|
||
// device_id должны совпадать с devices.external_id, засеянными в Laravel.
|
||
#define ZONE_ID "1"
|
||
#define DEVICE_ID_SENSOR "sensor-1"
|
||
#define DEVICE_ID_LIGHT "light-1"
|
||
#define DEVICE_ID_PUMP "pump-1"
|
||
#define DEVICE_ID_FAN "fan-1"
|
||
|
||
// --- Пины (ESP32 DevKitC) ---
|
||
#define PIN_DHT22 4
|
||
#define PIN_RELAY_LIGHT 16
|
||
#define PIN_RELAY_PUMP 17
|
||
#define PIN_RELAY_FAN 18
|
||
|
||
// Большинство дешёвых реле-модулей активны по LOW (сигнал LOW = реле включено).
|
||
#define RELAY_ACTIVE_LOW true
|
||
|
||
// --- Телеметрия ---
|
||
#define TELEMETRY_INTERVAL_MS 30000UL
|
||
|
||
// --- Веб-интерфейс ---
|
||
// 1 — поднимать HTTP-сервер на порту 80 (страница + /api/state, /api/command).
|
||
// 0 — полностью выключить (сервер не поднимается вообще, порт не слушается).
|
||
// Без авторизации — только для локальной сети, см. README.md.
|
||
#define ENABLE_WEB_UI 1
|