По фото: у нас два одинаковых 2-канальных релейных модуля (не один) — второй закрывает fan-1 по-настоящему (GPIO18), больше не "пока не куплено". Добавлен soil-1: компараторный модуль почвенной влажности, читаем A0 через ADC (GPIO34, input-only), публикуем sensor_type=soil_moisture в процентах. Raw->% калибруется через SOIL_RAW_DRY/SOIL_RAW_WET в config.h — заводские значения приблизительные, точную калибровку раньше сделать было нельзя (не было физического доступа к датчику), нужно измерить на месте. soil-1 в Postgres/Laravel платформы ещё не заведён (не трогаем home_automatization) — телеметрия будет идти в ClickHouse, но в Laravel UI устройство не появится до отдельной регистрации device_type/devices-записи. Веб-интерфейс и /api/state дополнены полем "soil".
17 lines
872 B
C
17 lines
872 B
C
#pragma once
|
|
|
|
// Инициализация DHT22.
|
|
void telemetryBegin();
|
|
|
|
// Вызывать на каждой итерации loop(): сама решает, пора ли публиковать
|
|
// очередное показание (см. TELEMETRY_INTERVAL_MS в config.h).
|
|
void telemetryTick();
|
|
|
|
// Последнее успешно прочитанное показание DHT22 (для веб-интерфейса —
|
|
// показывать данные не дожидаясь следующего цикла публикации).
|
|
// Возвращает false, если ни одного успешного чтения ещё не было.
|
|
bool telemetryGetLast(float& temperature, float& humidity);
|
|
|
|
// Последнее показание почвенной влажности в процентах (0-100).
|
|
bool telemetryGetLastSoil(float& percent);
|