Умный дом
May 16

Создаём локальный MQTT-сервер за 4 шага

Не так давно мы с вами установили на нашу "апельсинку" Debian Bullseye Server и провели её базовую оптимизацию. Теперь у нас есть мощная, но при этом лёгкая платформа для реализации любых идей в рамках умного дома. Сегодня мы продолжим наше путешествие в мир IoT и научим наш OrangePi работать как MQTT-брокер.

Напомню, что MQTT (Message Queuing Telemetry Transport) — это легковесный протокол для передачи данных между устройствами. Он особенно популярен в мире интернета вещей, потому что работает быстро, потребляет мало ресурсов и может работать даже на слабых устройствах. Представьте, что ваш умный чайник хочет сообщить вашему смартфону, что вода закипела. Вот тут-то MQTT и приходит на помощь!

В этой статье мы установим Mosquitto — один из самых популярных MQTT-брокеров. Готовы? Тогда приступим!


Шаг №1: Подключаемся к OrangePi

Первым делом подключаемся к нашему OrangePi через SSH. Если вы уже настроили SSH-подключение в предыдущей статье, то процесс будет знакомым. Используйте IP-адрес, который вы узнали ранее (например, через маршрутизатор или команду arp -a).

Я предпочитаю MobaXTerm, но Putty тоже подойдёт. Вводим данные для входа и, после успешного подключения, вы оказываетесь в терминале. Теперь можно приступить к установке Mosquitto.


Шаг №2: Установка Mosquitto

Обновляем список пакетов и устанавливаем Mosquitto вместе с клиентскими утилитами:

apt update && apt install -y mosquitto mosquitto-clients
Что здесь происходит? Мы обновляем список доступных пакетов (apt update) и затем устанавливаем сам брокер (mosquitto) и клиентские утилиты (mosquitto-clients). Эти утилиты помогут вам тестировать работу сервера.


Шаг №3: Оптимизация конфигурации

Теперь настроим наш MQTT-брокер. Открываем конфигурационный файл:

nano /etc/mosquitto/mosquitto.conf

Очищаем весь файл и вставляем следующие настройки:

# Отключение логов log_dest none log_type none

# Отключение сохранения состояния persistence false

# Отключение публикации системных сообщений sys_interval 0

# Максимальное количество подключений max_connections -1

# Размер очереди сообщений max_queued_messages 100

# Время ожидания для закрытия неактивных соединений connection_messages false

Разберём эти настройки подробнее:

  • Отключение логов : Мы отключаем запись логов, чтобы не засорять диск лишней информацией.
  • Отключение сохранения состояния : Брокер не будет сохранять данные между перезагрузками. Это полезно, если вам не нужно хранить историю сообщений.
  • Отключение публикации системных сообщений : Никаких автоматических сообщений о состоянии системы.
  • Максимальное количество подключений : Установлено значение -1, что означает "неограниченно".
  • Размер очереди сообщений : Ограничиваем очередь до 100 сообщений, чтобы не перегружать систему.
  • Время ожидания для закрытия неактивных соединений : Отключаем уведомления о новых подключениях.

Эти настройки помогут сделать наш брокер более производительным и менее "болтливым".


Шаг №4: Финальные штрихи

Теперь, когда вы отредактировали файл конфигурации, нужно сохранить изменения. Если вы используете nano, просто нажмите Ctrl + O (это команда для сохранения файла), а затем Ctrl + X, чтобы выйти из редактора.

После этого перезапустите Mosquitto, чтобы применить новые настройки:

systemctl restart mosquitto

Готово! Ваш MQTT-брокер теперь работает и готов принимать сообщения.


И вот мы снова сделали важный шаг в построении собственной экосистемы умного дома. Теперь наш OrangePi Zero 3 умеет не только работать как сервер, но и координировать взаимодействие между устройствами через MQTT.

Вы можете начать экспериментировать: подключить датчики, настроить автоматизацию или даже создать свой собственный "умный" проект. Главное — не бояться пробовать новое. Если возникнут вопросы или что-то пойдёт не так, пишите в комментариях. Я всегда готов помочь!

А пока желаю вам успехов в ваших экспериментах с MQTT. Пусть ваши устройства всегда находят друг друга, а ваш умный дом становится всё умнее! 🚀