Перейти к содержанию

MQTT сервер

Материал из OpenWrt Wiki

Для настройки MQTT-сервера на роутере с OpenWRT нужно установить пакеты mosquitto и mosquitto-client через SSH или LuCI. После установки настройте mosquitto, запустите службу и настройте правила фаервола для доступа из вашей локальной сети, чтобы устройства могли подключаться к брокеру на порту 1883 по протоколу TCP.

1. Установка MQTT-брокера (mosquitto)

  • Через SSH:
    1. Подключитесь к роутеру по SSH.
    2. Выполните команду для установки пакетов:

Код

opkg update
opkg install mosquitto mosquitto-client
  • Через LuCI (веб-интерфейс):
    1. Перейдите в раздел "System" > "Software".
    2. Нажмите "Update lists" для обновления списка пакетов.
    3. Найдите пакеты mosquitto и mosquitto-client в списке и установите их.

2. Настройка и запуск сервиса mosquitto Запустите службу.

Код

/etc/init.d/mosquitto enable
/etc/init.d/mosquitto start
  • Включите автозапуск при загрузке роутера: В LuCI, в разделе "System" > "Startup", убедитесь, что служба mosquitto включена и будет запускаться при загрузке.

3. Настройка фаервола (Firewall)

  • Создайте правило: В LuCI, перейдите в "Network" > "Firewall".
  • Добавьте правило: для порта 1883 (TCP) на вашей локальной сети (lan):
    • Action: accept (разрешить).
    • Protocol: TCP.
    • Source zone: lan (или зона, куда подключены ваши клиенты).
    • Destination zone: Device (input) (для получения входящих соединений).
    • Destination port: 1883.

Пример использования:

  1. 1. Подключите устройства: Ваши устройства (например, с датчиками и ESP32) настройте на подключение к IP-адресу вашего OpenWRT-роутера по порту 1883.
  2. 2. Публикация данных: Одно устройство публикует данные (например, температуру) в определенную тему (topic) MQTT, например, /sensors/temperature.
  3. 3. Подписка на данные: Другое устройство или веб-сервис подписывается на эту тему, и когда данные публикуются, брокер Mosquitto доставляет их подписчикам.

Таким образом, ваш OpenWRT роутер будет выступать в роли центрального MQTT-брокера для вашего умного дома или IoT-проекта, обеспечивая обмен сообщениями между устройствами.