Я никогда не думала, что буду возиться с “умными” штуками, но как-то раз на даче мне надоело гадать, работает ли отопление в доме зимой. Так родилась идея собрать простую систему мониторинга на основе ESP32, датчика температуры и VPS-сервера с MQTT-брокером. Ни облаков, ни подписок — только своё, с полным контролем.
Что вообще такое MQTT и зачем он IoT?
Если вы впервые слышите про MQTT — не пугайтесь. Это лёгкий протокол обмена сообщениями, идеально подходящий для устройств с низким энергопотреблением. Представьте себе WhatsApp для датчиков: одно устройство публикует сообщение (“температура 21.5°C”), другое подписано на эту тему и тут же получает данные. Всё это работает через MQTT-сервер — он же брокер.
Почему я выбрала VPS?
Бесплатные MQTT-серверы существуют, но они:
- часто нестабильны;
- имеют лимиты на соединения;
- и главное — доверять им свои данные… ну, такое.
На VPS можно развернуть собственный MQTT-брокер (я использовала Mosquitto), защитить его паролем и шифрованием, подключить мониторинг через Grafana — и всё это без абонентки и в любое время суток. IoT server, который под контролем.
Как всё запускалось: по шагам
1. Установка MQTT-брокера (Mosquitto) на Ubuntu 22.04:
sudo apt update sudo apt install mosquitto mosquitto-clients sudo systemctl enable mosquitto
2. Настройка безопасности
Я добавила парольную защиту через
mosquitto_passwd
3. Получение данных
Мой ESP32 отправляет данные каждые 30 секунд в топик
iot/temperature
mosquitto_sub -h localhost -t "iot/#" -u "имя" -P "пароль"
4. Визуализация в Grafana через Telegraf + InfluxDB
Вот тут стало красиво. Прямо в браузере вижу график температуры за день, неделю, месяц. Если вдруг всё пропадает — значит, либо датчик лёг, либо что-то с брокером. В любом случае, я первая узнаю.
Полезные мелочи, которые выручали:
- 🔧 — помогает отлавливать ошибки подключения;
sudo journalctl -u mosquitto -f
- 🔐 Всегда включайте SSL — MQTT без шифрования = открытая книжка;
- 🛑 Ограничьте доступ к порту 1883 (или 8883) через , не пускайте всех подряд.
ufw
А как же нагрузка?
На VPS с 1 ядром и 1 ГБ ОЗУ брокер Mosquitto ест меньше 20 МБ RAM и почти не грузит процессор. Даже с десятком устройств нагрузка мизерная. MQTT — это не тяжёлый grafana mqtt stack
Итого: стоит ли оно того?
Если вы собираете IoT-систему — умный дом, погодную станцию, контроль температуры в серверной или даже ферму — запускать свой MQTT-сервер на VPS логичнее, чем лепить всё в облако. Получаете гибкость, безопасность и независимость от чужих API. А ещё — отличный повод разобраться в сетях и linux dns basic’ах.