В первой части я рассказывал о системе автоматизации теплицы на Raspberry Pi 4. Она собирала показания датчиков и управляла оборудованием. Постепенно захотелось применить её и за пределами теплицы: дома, в мастерской или серверной. Задачи там знакомые — следить за температурой, включать устройства по условию и получать уведомления.
Для этого понадобились новые способы подключения устройств, удалённый доступ и обновления с сохранением настроек. В проекте появились Zigbee-датчики, поддержка Rock Pi, облачный кабинет и уведомления в MAX. Теперь это Geek Automation System — контроллер умного дома, для которого теплица остаётся одним из вариантов применения.
В этой статье покажу, что изменилось, как устроена связь с облаком и зачем на самой плате работает отдельная служба - provision agent
Кто за что отвечает
В системе три основных участника: подключённые устройства, контроллер и облачный сервис.
Устройства — это датчики, розетки и реле. Одни передают показания, другие выполняют команды.
Контроллер — Raspberry Pi или Rock Pi — получает показания и выполняет правила. Например, включает вентиляцию, когда температура поднимается выше заданного порога. На нём хранятся настройки и история измерений, а управлять им можно через страницу в браузере.
Облачный сервис работает на отдельном сервере, доступном через интернет. Через него пользователь видит свои контроллеры вне дома, открывает их интерфейсы и получает уведомления.
В облачном кабинете к аккаунту привязывается контроллер целиком. Его датчиками и остальным оборудованием управляет программа на плате.