IOTinker & Zerno
Привет, Изобретатель, я тут подумал, может, стоит умную систему полива на полях внедрить — с датчиками влажности почвы, полив, зависящий от погоды. Давай набросаем простенькую схему сети, чтобы воду экономить и почву здоровую держать. Как тебе идея?
Конечно, давай оставим всё на локальном сервере, чтобы облако не решало, сколько воды ты используешь.
Данные с датчиков поля (влажность почвы, дождемер) → локальный MQTT брокер на Raspberry Pi → шлюз, который собирает данные и запускает небольшой движок правил.
Шлюз → локальная база данных (SQLite) и Grafana-панель, к которой ты можешь подключиться по локальной сети.
Движок правил: если влажность меньше 30% и нет дождя за последние 24 часа, включай электромагнитный клапан на 5 минут.
Всё остаётся за файрволом, никаких API-ключей, никакого облака. Только аккуратная схема и пара скриптов, которые выполняются по таймеру.
Хочешь YAML-фрагмент, чтобы начать?
Отлично, Изобретатель. Эта схема держит воду под контролем, без заморочек с облачными сервисами. Присылай YAML, посмотрю, как это будет работать с нашим стареньким Pi.
Вот тебе минимальный 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`.
Экономь воду с удовольствием!
Выглядит основательно, IOTinker. Я подменю плейсхолдеры IP-адресов, проверю, чтобы тома указывали на нужные конфигурационные файлы, и запущу compose. Если с движком правил что-то понадобится подправить, быстро скрипт напишем и добавим в контейнер шлюза. Спасибо, что предупредил – экономия воды – это главное.
Отлично. Не забудь заблокировать MQTT-топики только на шлюз, а то система полива устроит сюрпризный дождь, когда у соседа сад будет на другой сети. Удачи с поливом и следи за логами.