Старт прошивки¶
Каркас проекта полностью повторяет главу из примера со шкафом: PlatformIO, secrets.h, idryer-core в lib/, тот же platformio.ini (замените только имя окружения на filter). Здесь — лишь то, что отличается.
Config: устройство нестандартного типа¶
У фильтра нет ни нагревателя, ни датчика климата из словаря экосистемы. Из «словарных» навыков у него только вентилятор. В src/main.cpp:
#include <iDryer.h>
static const iDryer::Config CFG = {
.deviceType = iDryer::DeviceType::Unknown, // нестандартное устройство
.unitsCount = 1,
// Периферия: из словаря экосистемы у нас только вентилятор.
.hasFan = true,
// Периоды автопубликации:
.telemetryPeriodMs = 5000,
.statusPeriodMs = 10000,
// Идентификация на портале:
.hardwareVersion = "1.0",
.firmwareVersion = "0.1.0",
.model = "DIY Air Filter",
};
static iDryer::Link s_link(CFG);
void setup() {
Serial.begin(115200);
s_link.begin();
}
void loop() {
s_link.loop();
}
DeviceType::Unknown — это нормально
Тип Unknown означает «портал не знает такого изделия». Раньше это была проблема: у портала не было карточки для неизвестного типа. Теперь это штатный путь: интерфейс устройства целиком опишет card-манифест (глава 6), и портал построит карточку по нему. Тип нужен только «своим» изделиям iDryer, у которых есть фирменные карточки.
Флаг hasFan = true даёт нам бесплатно: поле fanStatus в телеметрии, ячейку «Вентилятор» на карточке и сущность в манифесте — всё из словаря экосистемы.
VOC-датчика в Config нет — и не должно быть¶
Обратите внимание: в Config нет флага «hasVoc». Словарь has* описывает периферию, которую знает экосистема. Свой датчик вы добавите не через словарь, а двумя другими механизмами: допишете его показания в телеметрию своим полем и объявите его в card-манифесте — это следующие две главы. В этом и суть подхода: словарь не нужно расширять под каждое новое устройство.
Первый запуск и привязка¶
Процедура не отличается от примера со шкафом:
- Прошейте плату, откройте Serial Monitor.
- Устройство поднимет Wi-Fi (данные из
secrets.h), зарегистрируется и напечатает PIN: - На портале — «Добавить устройство» → введите PIN.
- После привязки в логе появится
Device claimed!, устройство перейдёт вOnline.
Подробный разбор привязки, ошибок Wi-Fi и повторной привязки — в главе примера со шкафом.
На портале устройство уже видно, но карточка пока почти пустая — данных ведь ещё нет. Идём подключать датчик.