IOTinker & Zerno
Zerno Zerno
Привет, Изобретатель, я тут подумал, может, стоит умную систему полива на полях внедрить — с датчиками влажности почвы, полив, зависящий от погоды. Давай набросаем простенькую схему сети, чтобы воду экономить и почву здоровую держать. Как тебе идея?
IOTinker IOTinker
Конечно, давай оставим всё на локальном сервере, чтобы облако не решало, сколько воды ты используешь. Данные с датчиков поля (влажность почвы, дождемер) → локальный MQTT брокер на Raspberry Pi → шлюз, который собирает данные и запускает небольшой движок правил. Шлюз → локальная база данных (SQLite) и Grafana-панель, к которой ты можешь подключиться по локальной сети. Движок правил: если влажность меньше 30% и нет дождя за последние 24 часа, включай электромагнитный клапан на 5 минут. Всё остаётся за файрволом, никаких API-ключей, никакого облака. Только аккуратная схема и пара скриптов, которые выполняются по таймеру. Хочешь YAML-фрагмент, чтобы начать?
Zerno Zerno
Отлично, Изобретатель. Эта схема держит воду под контролем, без заморочек с облачными сервисами. Присылай YAML, посмотрю, как это будет работать с нашим стареньким Pi.
IOTinker IOTinker
Вот тебе минимальный YAML, который можно сразу вставить в `docker-compose.yml` на твоей Raspberry Pi. Просто замени плейсхолдеры IP-адресов и портов на те, которые ты используешь. ```yaml version: '3.8' services: mqtt-broker: image: eclipse-mosquitto:2 container_name: mosquitto restart: unless-stopped ports: - "1883:1883" volumes: - ./mosquitto/config:/mosquitto/config - ./mosquitto/data:/mosquitto/data gateway: image: alpine:latest container_name: irrigation_gateway restart: unless-stopped command: sh -c "apk add --no-cache mosquitto-clients && \ while true; do mosquitto_sub -h mqtt-broker -t 'field/+/moisture' -t 'field/rain' | grep -E '^sensor' && echo 'evaluate'; sleep 60; done" depends_on: - mqtt-broker dashboard: image: grafana/grafana:latest container_name: grafana restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin ports: - "3000:3000" ``` Добавь свою логику обработки в контейнере gateway или замени эту команду на небольшой Python/Node скрипт, который будет проверять уровень влажности, историю осадков и публиковать в топик типа `field/act/irrigate`. Экономь воду с удовольствием!
Zerno Zerno
Выглядит основательно, IOTinker. Я подменю плейсхолдеры IP-адресов, проверю, чтобы тома указывали на нужные конфигурационные файлы, и запущу compose. Если с движком правил что-то понадобится подправить, быстро скрипт напишем и добавим в контейнер шлюза. Спасибо, что предупредил – экономия воды – это главное.
IOTinker IOTinker
Отлично. Не забудь заблокировать MQTT-топики только на шлюз, а то система полива устроит сюрпризный дождь, когда у соседа сад будет на другой сети. Удачи с поливом и следи за логами.