MQTT — это легковесный протокол, применяемый для общения между устройствами (M2M — machine-to-machine). Он использует модель издатель-подписчик для передачи сообщений поверх протокола TCP/IP. Центральная часть MQTT-протокола это MQTT-сервер или брокер, который имеет доступ к издателю и подписчику. Используя MQTT можно построить сеть датчиков, где они публикуют свои данные в форме сообщений, уникальных для каждого из них.
Устанавливаем сервер и/или клиент
sudo apt-get install mosquitto sudo apt-get install mosquitto-clients
Пример использования
Подпишемся на тему температуры, расположенную в брокере 192.168.1.112:
mosquitto_sub -h 192.168.1.112 -t temp
Сообщение в теме температуры, расположенная в брокере 192.168.1.112:
mosquitto_pub -h 192.168.1.112 -t temperatura -m "21.0ºC"
Примечание. Как только брокер установлен в системе Linux, приложение Android MQTT, такое как MyMQTT, может использоваться для доступа к темам, подписываться и публиковать их.
Статус сервера MQTT
Проверить стаус вашего MQTT брокера вы всегда можете через терминал:
sudo /etc/init.d/mosquitto status
После этой команды в терминале будет показана подробная информация о состоянии вашего сервера.
Останавливаем сервер для настройки
После установи сервер MQTT сразу запускается. Нам необходимо оставновить его чтобы произвести последующую настройку.
sudo /etc/init.d/mosquitto stop
Настройка
Открываем файл настроек
sudo nano /etc/mosquitto/mosquitto.conf
и заменяем его содержимое на следующее:
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d
Сохраняем, закрывает программу nano и выходим обратно в терминал (ctrl+o, Enter, ctrl+x).
Запускаем сервер MQTT
sudo /etc/init.d/mosquitto start
Настройка пароля для MQTT
Для тестов и маленьких проектов вы можете использовать подключение к MQTT серверу без пароля, но больших системах для увеличения уровня безопасности необходимо добавить логин и пароль. Это делается достаточно просто.
sudo mosquitto_passwd -c /etc/mosquitto/passwd majordomo sudo nano /etc/mosquitto/conf.d/default.conf
В пустом файле вписать:
allow_anonymous false password_file /etc/mosquitto/passwd
Сохраняем и закрываем
ctrl x
Перезапускаем MQTT сервер
sudo systemctl restart mosquitto
В Windows как подписаться на тему брокера?