Протокол телеметрии очереди сообщений, или 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 или Terminalon macOS и Linux. Однако вы должны знать IP-адрес Raspberry Pi для подключения через SSH. Чтобы узнать это, вы можете открыть настройки DHCP вашего беспроводного маршрутизатора или использовать Fingapp на своем смартфоне.
Введите IP-адрес в замазка и нажмите Соединять. Введите имя пользователя и пароль для входа.
В терминале Linux или macOS введите YourPiUsername@IP-адрес а затем введите пароль для входа. После подключения через SSH выполните следующую команду, чтобы обновить список пакетов и обновить пакеты.
судо подходящее обновление && судо подходящее обновление –у
Шаг 3: Установите брокера MQTT
Чтобы установить и включить брокера MQTT (Mosquitto), выполните следующие действия.
- Установите Mosquitto, выполнив следующую команду в окне терминала.
Начнется установка Mosquitto (брокера MQTT) и клиентских служб.Судо подходит установить mosquitto mosquitto-clients -y
- После установки включите службу Mosquitto и проверьте версию MQTT с помощью следующих команд.
судоsystemctlвключитькомар.оказание услуг
комар -в - Создайте учетную запись пользователя, чтобы разрешить удаленный доступ с проверкой подлинности, используя следующую команду.
Здесь рави это имя пользователя (вы можете использовать любое). Введите пароль при появлении запроса. Запишите это имя пользователя и пароль для дальнейшего использования.sudo mosquitto_passwd -c /etc/mosquitto/passwd рави
- Открой mosquitto.conf файл в редакторе nano с помощью следующей команды.
Вставьте следующий код в редактор nano.судо нано /etc/mosquitto.conf
Нажимать CTRL+Х с последующим Д а также Войти чтобы сохранить изменения.per_listener_settings истинный
pid_file /run/mosquitto/mosquitto.pid
упорство истинный
расположение_постоянства /вар/lib/mosquitto/
log_dest файл /вар/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
allow_anonymous ЛОЖЬ
слушатель 1883
файл_пароля /etc/mosquitto/passwd - Перезапустите брокера MQTT, выполнив следующую команду.
sudo systemctl перезапустить комара
- Проверьте состояние брокера MQTT, чтобы узнать, работает ли MQTT.
Если вы видите приведенный выше вывод, MQTT работает.sudo systemctl статус комара
Шаг 4: Протестируйте брокера MQTT
Чтобы проверить, работает ли брокер MQTT, установите MQTTLens или аналогичное приложение MQTT в Chrome или любом другом веб-браузере и запустите его. Введите IP-адрес Raspberry Pi и имя пользователя/пароль MQTT. Нажмите Создать соединение.
Введите любую тему в Подписывайся поле и та же тема в Публиковать поле. Введите «Привет» или что-нибудь в поле сообщения и нажмите Публиковать.
Если вы видите сообщение под подписками, брокер MQTT работает нормально.
Шаг 5: Установите Node-RED
С помощью Node-RED вы можете публиковать сообщения, а также отправлять и получать полезные данные на свои интеллектуальные устройства или с них. Эта полезная нагрузка может использоваться для включения/выключения интеллектуальных устройств или получения данных (например, температуры) от датчика. Вы можете использовать свой веб-браузер для создания таких потоков в Node-RED и управления своими интеллектуальными устройствами.
Чтобы установить Node-RED, выполните следующую команду в окне терминала.
bash //raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Это загрузит и установит Node-RED на ваш Raspberry Pi. Это может занять некоторое время. После установки Node-RED вам необходимо создать файл настроек Node-RED, выполнив следующую команду.
Инициализация администратора node-red
Затем выполните следующие действия:
- нажмите Войти ключ.
- Хотите настроить безопасность пользователей? Выбирать Да. Введите имя пользователя и пароль. Храните его в безопасности, так как он будет использоваться для входа в систему и управления Node-RED через веб-интерфейс.
- Выбирать Полный доступ.
- Вы можете добавить другого пользователя или выбрать Нет продолжать.
- Выбирать Нет когда его попросят включить функции проекта.
- Нажимать Войти.
- Введите парольную фразу и сохраните ее.
- Выбрать тема по умолчанию > Монако (по умолчанию).
- Выбирать Нет при запросе на загрузку внешних узлов.
Как только это будет сделано, перезапустите Node-RED.
узел-красный перезапуск
Теперь вы можете посетить Ваш-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-брокеру и отправлять или получать полезные данные в или из различных тем, на которые подписаны или публикуются ваши смарт-устройства.