Raspberry PI. Урок 2. Устанавливаем MQTT брокер Mosquitto



На предыдущем уроке мы установили операционную систему на плату Raspberry PI, тем самым сделав нашу плату работоспособной. А в этом уроке по протоколам передачи данных мы познакомились с протоколом MQTT (Message Queuing Telemetry Transport). Здесь же мы узнали, что для работы с данным протоколом требуется брокер, который должен отвечать за рассылку сообщений от одного узла другому (подписчикам).

Можно воспользоваться готовыми облачными брокерами, но, я считаю, что это не совсем надёжно, так как в любой момент такие брокеры могут закрыться по тем или иным причинам, поэтому будет целесообразным установить свой брокер дома, воспользовавшись платой Raspberry PI, так как, благодаря её очень маленьким размерам, она не займёт много места в доме, но при этом работоспособность её, как показала практика, вполне неслабая.

В качестве брокера мы будем использовать Mosquitto.

Mosquitto является сервером MQTT с открытым исходным кодом с лицензией EPL/EDL, также Mosquitto является частью Eclipse Foundation и является проектом iot.eclipse.org.

Итак, брокер MQTT Mosquitto мы будем устанавливать на Raspberry PI 4B. Можно также его ставить в принципе на любой одноплатный компьютер, так как устанавливаться он будет не из репозитория Raspbery. Так что пробуйте.

Подключим нашу Raspberry

 

 

Дождёмся загрузки операционной системы, подключимся к плате по SSH.

Первым делом выполним обновление базы данных пакетов

 

 

Дождёмся окончания обновления базы данных пакетов, затем выполним команду непосредственно обновления пакетов

 

 

Соглашаемся со всеми запросами

 

 

Также советую установить файловый менеджер Midnight Commander, чтобы было удобнее работать с файлами, для чего введём следующую команду

 

 

Теперь в любой момент мы можем запустить файловый менеджер Midnight Commander командой

 

 

 

А если надо запустить его для редактирования системных файлов от имени администратора, то командой

 

 

При помощи команды sudo мы можем запустить от имени администратора любую программу.

Вот так вот выглядит наш файловый менеджер

 

 

Пока он нам не нужен, поэтому выйдем из него при помощи меню

 

 

Теперь подготовим репозиторий для установки mosquitto.

Сначала выполним вот такую команду (на всякий случай буду дублировать команды в распознаваемом виде, хотя из-за использования CMS могут быть проблемы с некоторыми символами, поэтому внимательно смотрим на скриншоты)

 

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

 

Следующая команда:

 

sudo apt-key add mosquitto-repo.gpg.key

 

Затем с помощью следующей команды перейдём в определённую директорию

 

cd /etc/apt/sources.list.d/

 

 

Далее следующую команду

 

sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

 

Ещё раз выполним обновление базы данных пакетов

 

sudo apt-get update

 

Устанавливаем MQTT брокер (сервер):

 

sudo apt-get install mosquitto

 

Устанавливаем MQTT клиент:

 

sudo apt-get install mosquitto mosquitto-clients

 

Остановим сервер:

 

sudo /etc/init.d/mosquitto stop

 

Теперь нам надо будет отредактировать файл /etc/mosquitto/mosquitto.conf

Запустим Midnight Commander от имени администратора и откроем файл для редактирования с помощью функциональной клавиши F4

 

 

Первый раз менеджер попросит выбрать редактор. Мне нравится встроенный в менеджер, поэтому я выбираю пункт 2. А вы выбираете согласно своих предпочтений

 

 

Текст файла будет примерно таким (вы можете внести другое имя пользователя и пароль для соединения с брокером

 

 

Скопируем в наш файл данный текст

 

 

Нажмём клавишу Esc для закрытия редактора, согласившись с сохранением файла

 

 

Выйдем из mc и попытаемся запустить брокер

 

sudo /etc/init.d/mosquitto start

 

Сервер может не запуститься

 

 

Для того, чтобы клиенты могли подключиться к вашему брокеру только по логину и паролю, необходимо создать конфигурационный файл, который будет содержать имя пользователя и зашифрованный пароль (возможно поэтому у нас и не запустился сервер, так как не нашел файл с паролем). Вводим в консоли: sudo mosquitto_passwd -c /etc/mosquitto/passwd mosquitto

 

 

Придумаем и введём пароль (ясное дело надо такой же, как в файле конфигурации):

 

 

Повторим ещё раз

 

 

Попробуем ещё раз запустить брокер

 

 

Вот теперь всё удачно!

После каждой правки mosquitto.conf нужно перезапускать брокер командой

 

sudo systemctl restart mosquitto

 

Узнать состояние брокера можно с помощью команды

 

systemctl status mosquitto.service

 

Теперь брокер и клиент у нас установлены.

Можно испытать их работу прямо на Raspberry.

Давайте попробуем подписаться на какие-нибудь темы.

Для этого вводим в командной строке, например, команду

 

mosquitto_sub -v -u mosquitto -P 123456 -h localhost -p 1883 -t house/#

 

С помощью данной команды мы подписались на все топики в группе house, включая и вложенные в другие подгруппы (смотрим этот урок по MQTT).

Запустим ещё один сеанс SSH, авторизуемся там и попробуем оттуда отправить какое-нибудь сообщение в топик, находящийся в подгруппе house

 

mosquitto_pub -h localhost -u mosquitto -P 123456 -t house/s1 -m 'sss'

 

Посмотрим в предыдущем клиенте, пришло ли туда опубликованное сообщение

 

 

Отлично! Сообщение пришло!

Итак, мы установили и настроили работоспособный брокер MQTT на плату Raspberry PI.

Всем спасибо за внимание!

 

 

Предыдущий урок Raspberry PI Следующий урок

 

Недорогую плату Raspberry PI 4B можно купить здесь:

Raspberry Pi 4 Model B 4b

 

Смотреть ВИДЕОУРОК в YouTube (нажмите на картинку)

Raspberry PI Устанавливаем MQTT брокер Mosquitto

 

Смотреть ВИДЕОУРОК в Дзен (нажмите на картинку)

Raspberry PI Устанавливаем MQTT брокер Mosquitto

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*