Оглавление:

Беспроводная связь SmartHome: экстремальные основы MQTT: 3 шага
Беспроводная связь SmartHome: экстремальные основы MQTT: 3 шага

Видео: Беспроводная связь SmartHome: экстремальные основы MQTT: 3 шага

Видео: Беспроводная связь SmartHome: экстремальные основы MQTT: 3 шага
Видео: Выбираем протокол для «Умного дома». Почему ZigBee, а не Wi-Fi? 2024, Ноябрь
Anonim
Беспроводная связь SmartHome: экстремальные основы MQTT
Беспроводная связь SmartHome: экстремальные основы MQTT
Беспроводная связь SmartHome: экстремальные основы MQTT
Беспроводная связь SmartHome: экстремальные основы MQTT

Основы 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, обязательно следуйте за мной, чтобы получить больше руководств.

Рекомендуемые: