Лабораторная работа №9 "Работа с протоколом MQTT на MicroPython"
Цель работы
Ознакомиться с взаимодействием устройств по протоколу MQTT
Теоретические сведения
MQTT (Message Queuing Telemetry Transport) — это легковесный протокол для обмена сообщениями между устройствами, основанный на модели publish/subscribe. Он широко используется в IoT благодаря своей простоте, низкому потреблению ресурсов и поддержке работы в сетях с низкой пропускной способностью.
Брокер (Broker)
Центральный сервер, который управляет передачей сообщений между клиентами.
Получает сообщения от издателей (publishers) и отправляет их подписчикам (subscribers).
Клиент (Client):
Устройство или приложение, которое подключается к брокеру.
Клиент может быть как издателем, так и подписчиком.
Топик (Topic):
Иерархическая строка, которая используется для фильтрации сообщений.
Пример: home/living_room/temperature.
Подписчики могут подписаться на определенные топики, чтобы получать только нужные сообщения.
Сообщение (Message):
Данные, которые передаются между клиентами через брокер.
Сообщение состоит из топика и полезной нагрузки (payload).
QoS (Quality of Service):
Уровень качества обслуживания, который определяет надежность доставки сообщений:
QoS 0: At most once — сообщение доставляется без подтверждения (ненадежно).
QoS 1: At least once — сообщение доставляется минимум один раз (возможны дубликаты).
QoS 2: Exactly once — сообщение доставляется ровно один раз (надежно, но с большими накладными расходами).
Retain Flag:
Флаг, который указывает брокеру сохранить последнее сообщение в топике и отправлять его новым подписчикам.
Last Will and Testament (LWT):
Сообщение, которое брокер отправит, если клиент неожиданно отключится.
Как работает MQTT
Клиент подключается к брокеру (используя TCP/IP или другие поддерживаемые протоколы).
Клиент-издатель отправляет сообщение в определенный топик.
Брокер получает сообщение и пересылает его всем клиентам, подписанным на этот топик.
Клиент-подписчик получает сообщение и обрабатывает его.
Задание
Загрузить библиотеку из директории libs/mqtt.py на облаке в микроконтроллер.Файл mqtt.py должен лежать рядом с main.py
- Реализовать подключение к сети Wi-Fi.
- Реализовать подключение к MQTT серверу
- Топик DATA/{mac устройства}
В json payload отправлять:
{ "temperature": 85, "students": ["Иванов И.И"], "group": "БАГ-18-01", } - Реализовать отправку данных в этот топик с заданной периодичностью
- Реализовать слушателя по топику RESULT в который будут приходить результаты по проделанной работе для каждой группы студентов
IP-адрес MQTT сервера уточнить у преподавателя
Результаты работы продемонстрировать преподавателю
Отчет
В отчете представить скриншоты и описание действий по пунктам, представленным в задании Отчет по ГОСТу