Протокол телеметрии очереди сообщений, или MQTT, — это упрощенный протокол обмена сообщениями, разработанный для устройств и сред с низкой пропускной способностью. Это быстрое, простое в развертывании и энергоэффективное решение для подключения и обмена информацией между несколькими устройствами IoT. Для этого требуется брокер/сервер MQTT и тема, в которой сообщения публикуются и подписываются устройствами или пользователями для отправки или получения информации.
В этом руководстве мы развернем брокера MQTT и инструмент Node-RED на Raspberry Pi, чтобы подключить интеллектуальные устройства IoT DIY с поддержкой MQTT и использовать их для домашней автоматизации.
Вещи, которые вам понадобятся
Чтобы создать и развернуть сервер MQTT с помощью Node-RED, вам потребуется следующее:
- Raspberry Pi Zero W или лучше. Мы рекомендуем использовать Raspberry Pi 3 или 4 (если доступно).
- Карта microSD (8 ГБ или больше).
- Устройство чтения карт памяти microSD.
- ПК с Linux, Mac или Windows.
- Интернет-соединение (Wi-Fi).
Шаг 1. Установите ОС Raspberry Pi Lite (64-разрядная версия)
Вам понадобится 64-битная облегченная версия ОС Raspberry Pi. в Имидж-сканер Raspberry Pi инструмент на другом компьютере, нажмите Выберите ОС > ОС Raspberry Pi (другое) , затем выберите ОС Raspberry Pi Lite (64-разрядная версия) . Кроме того, вы захотите использовать расширенные настройки Imager для включения SSH (мы использовали Пи а также малина в качестве имени пользователя и пароля для этого руководства) и настройте соединение Wi-Fi. Для получения более подробной информации ознакомьтесь с нашим руководством по как установить операционную систему на Raspberry Pi . После записи ОС на карту извлеките ее и вставьте в Raspberry Pi.
Шаг 2. Подключитесь через SSH и обновите пакеты
Вы можете подключиться к Raspberry Pi через SSH с помощью PuTTY в Windows или терминале. на macOS и Linux. Однако вы должны знать IP-адрес Raspberry Pi для подключения через SSH. Чтобы узнать это, вы можете открыть настройки DHCP вашего беспроводного маршрутизатора или использовать Fing приложение на вашем смартфоне.
Введите IP-адрес в замазка и нажмите Соединять . Введите имя пользователя и пароль для входа.
В терминале Linux или macOS введите YourPiUsername@IP-адрес а затем введите пароль для входа в систему. После подключения через SSH выполните следующую команду, чтобы обновить список пакетов и обновить пакеты.
почему у меня только 2 фильтра снэпчат
sudo apt update && sudo apt upgrade –y
Шаг 3: Установите брокера MQTT
Чтобы установить и включить брокера MQTT (Mosquitto), выполните следующие действия.
- Установите Mosquitto, выполнив в окне терминала следующую команду:
Начнется установка Mosquitto (брокера MQTT) и клиентских служб.sudo apt install mosquitto mosquitto-clients -y
. - После установки включите службу Mosquitto и проверьте версию MQTT с помощью следующих команд:
sudo systemctl enable mosquitto.service
.
mosquitto -v - Создайте учетную запись пользователя, чтобы разрешить удаленный доступ с проверкой подлинности, используя следующую команду.
Здесь лечение это имя пользователя (вы можете использовать любое). Введите пароль при появлении запроса. Запишите это имя пользователя и пароль для дальнейшего использования.sudo mosquitto_passwd -c /etc/mosquitto/passwd ravi
- Открой mosquitto.conf файл в редакторе nano с помощью следующей команды.
Вставьте следующий код в редактор nano.sudo nano /etc/mosquitto.conf
Нажимать CTRL+Х с последующим Д а также Войти чтобы сохранить изменения.per_listener_settings true
.
pid_file /run/mosquitto/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous false
listener 1883
password_file /etc/mosquitto/passwd - Перезапустите брокер MQTT, выполнив следующую команду.
sudo systemctl restart mosquitto
. - Проверьте состояние брокера MQTT, чтобы узнать, работает ли MQTT. Если вы видите приведенный выше вывод, MQTT работает.
Шаг 4: Протестируйте брокера MQTT
Чтобы проверить, работает ли брокер MQTT, установите MQTTLens или аналогичное приложение MQTT в Chrome или любом другом веб-браузере и запустите его. Введите IP-адрес Raspberry Pi и имя пользователя/пароль MQTT. Нажмите Создать соединение .
Введите любую тему в Подписывайся поле и такая же тема в Публиковать поле. Введите «Привет» или что-нибудь в поле сообщения и нажмите Публиковать .
Если вы видите сообщение под подписками, брокер MQTT работает нормально.
Шаг 5: Установите Node-RED
С помощью Node-RED вы можете публиковать сообщения, а также отправлять и получать полезные данные на свои интеллектуальные устройства или с них. Эта полезная нагрузка может использоваться для включения/выключения интеллектуальных устройств или получения данных (например, температуры) от датчика. Вы можете использовать свой веб-браузер для создания таких потоков в Node-RED и управления своими интеллектуальными устройствами.
Чтобы установить Node-RED, выполните следующую команду в окне терминала.
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Это загрузит и установит Node-RED на ваш Raspberry Pi. Это может занять некоторое время. После установки Node-RED вам необходимо создать файл настроек Node-RED, выполнив следующую команду.
node-red admin init
Затем выполните следующие действия:
- нажмите Войти ключ.
- Хотите настроить безопасность пользователей? Выбирать Да . Введите имя пользователя и пароль. Храните его в безопасности, так как он будет использоваться для входа в систему и управления Node-RED через веб-интерфейс.
- Выбирать Полный доступ .
- Вы можете добавить другого пользователя или выбрать Неа продолжать.
- Выбирать Неа когда его попросят включить функции проекта.
- Нажимать Войти .
- Введите парольную фразу и сохраните ее.
- Выбрать тема по умолчанию > Монако (по умолчанию) .
- Выбирать Неа при запросе на загрузку внешних узлов.
Как только это будет сделано, перезапустите Node-RED.
node-red restart
Теперь вы можете посетить Ваш-Raspberry-Pi-IP:1880 в веб-браузере, чтобы открыть панель администратора Node-RED и войти в нее.
Теперь вы можете создавать потоки в Node-RED. Ниже приведен пример потока Node-RED, который мы используем для запуска нашего матричного дисплея WS2812B 8x32, который показывает информацию о различных датчиках, установленных в нашем доме, в режиме реального времени.
Для начала вы также можете Соберите умные часы своими руками, используя точечную матрицу MAX7219. и подключите его к своему MQTT-серверу, чтобы отображать на нем текст или сообщения.
Включите домашнюю автоматизацию с помощью MQTT и Node-RED
Теперь вы можете создавать потоки для управления или мониторинга устройств умного дома с поддержкой MQTT. Вы также можете создавать интеллектуальные переключатели Tasmota своими руками или интеллектуальные датчики на базе Arduino, а также другие интеллектуальные устройства с управлением MQTT и использовать их с этим сервером MQTT и Node-RED. Вы можете создавать потоки для домашней автоматизации на основе событий, времени или полезных данных, полученных от клиента MQTT вашего смартфона.
На своем Android-смартфоне вы можете установить MQTT Dash, чтобы подключиться к вашему MQTT-брокеру и отправлять или получать полезные данные из различных тем, на которые подписаны или публикуются ваши смарт-устройства.