Оглавление:
- Запасы
- Шаг 1. Первоначальная настройка (в зависимости от вашей ОС)
- Шаг 2: Настройка Mosquitto:
- Шаг 3: Подведение итогов
Видео: Беспроводная связь SmartHome: экстремальные основы MQTT: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Основы MQTT:
** Я собираюсь сделать серию статей по домашней автоматизации, я буду повторять шаги, которые я предпринял, чтобы узнать все, что я делал в будущем. Это руководство является базой для настройки MQTT для использования в моих будущих инструкциях. Тем не менее, учения в этом содержании будут применимы к любому проекту, которым вы хотели бы заняться. **
Интернет вещей:
Интернет вещей захватывает мир, и особенно в таких сообществах, как наше, здесь, в Instructables. С тех пор, как я присоединился к этому сообществу, оно укрепилось в людях, создающих
Устройства, подключенные к Интернету и управляемые через них. При работе с Интернетом вещей сложно обойтись без протокола MQTT. Это протокол связи, аналогичный другим, используемым сегодня в Интернете, например HTTP или FTP, однако способ его работы отличается, что делает его идеальным для приложений Интернета вещей.
Что такое MQTT:
MQTT (передача телеметрии очереди сообщений - это легкий протокол связи, использующий архитектуру публикации / подписки. HTTP, который используется большей частью Интернета, построен на системе запроса / ответа. Это означает, что он получает запрос от клиента и отправляет ответ этому клиенту. MQTT также имеет сервер (называемый брокером), а также множество клиентов. В отличие от HTTP, MQTT позволяет клиентам публиковать или подписываться на определенные «темы». Это позволяет более широкое общение через централизованная точка, брокер. Каждый узел может публиковать в теме на брокере, и любой узел, подписанный на эту тему, получит сообщение. Клиенты также могут подписаться на несколько тем и затем могут получать несколько директив или обновлений.
Вся система управляется событиями и позволяет отправлять сообщения от брокера каждому подписанному клиенту. Таким образом, вместо HTTP, где клиент запрашивает информацию, клиент отправляет информацию непосредственно от брокера после получения. Существуют также встроенные сервисы, обеспечивающие различные меры безопасности, такие как спецификации QOS. Спецификация QOS позволяет брокеру определять, нужно ли доставить сообщение не более одного раза, хотя бы один раз или ровно один раз. Это гарантирует, что данные будут доставлены каждому клиенту требуемым образом. Клиенты также могут запросить, чтобы опубликованные сообщения в их теме буферизовались в брокере в случае, если они отключены от него по какой-либо причине. Как только он вернется в режим онлайн, эти данные будут отправлены клиенту.
В теме нет ничего особенного, это просто набор строк, которые объединены и разделены косой чертой. Формат в примере, который будет использоваться ниже, следующий: дом / спальня / потолочный_свет. Каждая косая черта ставится после темы для обозначения подтемы. Таким образом, сообщение может быть отправлено домой, где его получат все устройства в доме. Его можно опубликовать прямо в доме / спальне, где все устройства в спальне получат сообщение. И он может перейти к конкретному устройству, как показано вначале home / bedroom / aircraft_light, где только потолочный светильник в спальне получит сообщение. Способ абстрагирования отдельных устройств, подобных этому, вплоть до целой экосистемы, чрезвычайно удобен, особенно когда речь идет о домашней автоматизации. Есть и другие способы разбить темы, и я буду углубляться в них в будущих инструкциях, где приложение имеет наибольший смысл.
Запасы
Требуется только одно из следующего:
Ubuntu:
Подсистема Windows для Linux: https://ubuntu.com/wsl (только если у вас нет Linux / MacOS)
MacOS: требуется MacBook
Это необходимо:
Mosquitto MQTT Broker - загружен с помощью apt-get (Документация:
Шаг 1. Первоначальная настройка (в зависимости от вашей ОС)
MacOS / Linux:
Никакой настройки не требуется, просто откройте свой терминал и перейдите к установке Mosquitto!
Windows:
Если вы работаете в Windows, вам необходимо установить подсистему Windows для Linux. Это очень простой в использовании и чрезвычайно ценный инструмент, который позволяет запускать терминал Ubuntu в Windows. Нет необходимости устанавливать Ubuntu с двойной загрузкой только для тестирования разработки в терминале!
Шаги установки:
1. Зайдите в Магазин Windows и найдите ubuntu.
2. Загрузите и установите подсистему Windows для Linux.
3. Откройте приложение и следуйте инструкциям для завершения установки, и вы готовы к продолжению!
Шаг 2: Настройка Mosquitto:
Итак, как обсуждалось во введении к MQTT, для протокола требуется брокер (сервер). Этот брокер является базовой точкой для всех установленных подключений к каждому клиенту. Все сообщения проходят через этого брокера и помещаются в очередь. У брокера есть много вариантов на выбор, и вы можете найти их в Интернете, но тот, который мы будем использовать, вероятно, будет наиболее распространенным: Mosquitto.
Mosquitto - это MQTT-брокер на базе Linux с множеством функций. Я не буду сейчас вдаваться в подробности этой функции, но несколько основных требований, которым она удовлетворяет, - это аутентификация пользователя / пароля и поддержка шифрования TLS. Все это полезно при разработке устройств Интернета вещей.
Шаги:
Все эти шаги должны быть выполнены в окне терминала.
1. Установите клиентов Mosquitto и MQTT.
sudo apt-get install mosquitto mosquitto-clients
2. Подпишитесь на тему
mosquitto_sub -t "тест"
Это означает подписку на тему. Эта тема обозначается «-t», а значение темы - «test». Это значение после "-t" может быть любым, за исключением нескольких особых оговорок.
3. Откройте новое окно терминала и опубликуйте сообщение в теме «тест».
mosquitto_pub -t "test" -m "Привет, мир с MQTT!"
Это публикует сообщение в теме «test», позволяя нашему другому экземпляру терминала получать сообщение на стороне подписки. Опубликованное сообщение обозначается «-m», а значение сообщения - «Hello World With MQTT». Это сообщение, как и тему, можно изменить на все, что захотите!
4. Зайдите в первое окно терминала, чтобы увидеть свои результаты! Вы должны получить сообщение «Hello World With MQTT». Если вы этого не видите, убедитесь, что вы ввели правильную тему. Если вы успешно выполнили это, продолжайте играть с ней. Попробуйте разные темы, с подтемами и разными сообщениями!
Шаг 3: Подведение итогов
Вот и все! Когда вы все это закончите, вы поймете основы работы MQTT. Это очень элементарное руководство, в котором просто показан минимум протокола MQTT. В Future Instructables более подробно будет рассмотрено, как этот протокол на практике работает с Интернетом вещей, особенно с модулями ESP8266, работающими под управлением Arduino. Моим первым практическим применением будет умная кофеварка, которая сейчас у меня в комнате. Если вы хотите узнать, как приготовить кофеварку, которой можно управлять как с телефона, так и с Alexa, обязательно следуйте за мной, чтобы получить больше руководств.
Рекомендуемые:
Беспроводная связь LoRa от 3 до 8 км с недорогим устройством E32 (sx1278 / sx1276) для Arduino, Esp8266 или Esp32: 15 шагов
Беспроводная связь LoRa от 3 до 8 км с недорогим устройством E32 (sx1278 / sx1276) для Arduino, Esp8266 или Esp32: я создаю библиотеку для управления EBYTE E32 на основе серии устройств LoRa Semtech, очень мощных, простых и дешевых устройств. Вы можете найти Версия 3 км здесь, версия 8 км здесь Они могут работать на расстоянии от 3000 до 8000 м, и у них есть много функций, а также
Большое расстояние, 1,8 км, беспроводная связь Arduino с Arduino с HC-12: 6 шагов (с изображениями)
Большая дальность, 1,8 км, беспроводная связь между Arduino и Arduino с HC-12: в этой инструкции вы узнаете, как общаться между Arduino на большом расстоянии до 1,8 км на открытом воздухе. HC-12 - это беспроводной последовательный порт. коммуникационный модуль, который очень полезен, чрезвычайно мощный и простой в использовании. Сначала вы уйдете
Беспроводная связь с использованием модуля приемопередатчика NRF24L01 для проектов на базе Arduino: 5 шагов (с изображениями)
Беспроводная связь с использованием модуля приемопередатчика NRF24L01 для проектов на базе Arduino: это мой второй поучительный учебник о роботах и микроконтроллерах. Это действительно потрясающе видеть вашего робота живым и работающим, как ожидалось, и поверьте мне, будет веселее, если вы будете управлять своим роботом или другими вещами по беспроводной сети с помощью быстрых и
Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: 4 шага (с изображениями)
Беспроводная связь с использованием дешевых радиочастотных модулей 433 МГц и микроконтроллеров Pic. Часть 2: В первой части этого руководства я продемонстрировал, как запрограммировать PIC12F1822 с использованием MPLAB IDE и компилятора XC8 для беспроводной передачи простой строки с использованием дешевых модулей TX / RX 433 МГц. Модуль приемника был подключен через USB к UART TTL. кабельное объявление
Беспроводная последовательная связь с использованием Bluefruit: 4 шага
Беспроводная последовательная связь с использованием Bluefruit: Вот простое пошаговое руководство по замене ваших проводов на соединение с низким энергопотреблением Bluetooth: мне потребовалось время, чтобы понять это, потому что почти нет документации по выполнению этого с помощью современных технологий Bluetooth с низким энергопотреблением, таких как как Bluefrui