MQTT для учителей: объясняем без жаргона

MQTT — система обмена сообщениями, на которой держится большинство панелей интернета вещей. Представьте школьную доску объявлений: устройства прикалывают записки под именованными темами, а брокер передаёт их всем подписчикам.
MQTT — это лёгкая система обмена сообщениями, которая позволяет маленьким устройствам делиться данными, не общаясь друг с другом напрямую. Устройство публикует короткое сообщение в именованную тему, центральная программа под названием брокер его принимает, и всё, что подписано на эту тему, получает копию. Самый простой образ — школьная доска объявлений: вы прикалываете записку под заголовком, и тот, кому этот заголовок важен, читает её, когда сможет.
Одной этой идеи хватает почти на всё, что нужно объяснить классу. Дальше в статье просто названы четыре подвижные части, простыми словами.
Доска объявлений, а не телефонный звонок
Для телефонного звонка нужно, чтобы оба собеседника были на линии одновременно. Большинство школьных проектов с датчиками устроены иначе. Датчик температуры может отправлять показания каждые десять секунд, но панель, которая их отображает, может быть закрыта, а ученик откроет её через час.
MQTT решает это так же, как доска объявлений. Датчик прикалывает записку и уходит. Панель читает доску тогда, когда смотрит на неё. Ни одной из сторон не нужно знать о существовании другой или бодрствовать в один и тот же момент. Это называется публикация и подписка, и именно поэтому одна маленькая плата может питать данными много экранов, не будучи соединённой с ними проводами.
Темы — это просто ярлыки
Тема — это заголовок, под которым вы прикалываете записку. Она пишется как путь со слешами и читается как структура папок:
classroom/temperaturelab/door/statusgreenhouse/soil/moisture
Эти имена вы придумываете сами, никакого фиксированного списка нет. Подписчик запрашивает ровно тот заголовок, который ему нужен. Есть и подстановочные символы, так что панель может подписаться на classroom/# и разом получать все записки, приколотые под заголовком классной комнаты. Хорошие имена тем — самая полезная привычка, которой стоит учить, потому что аккуратная схема именования сохраняет проект читаемым, когда датчиков не два, а двадцать.
Брокер сидит посередине
Брокер — это программа, которая обслуживает доску объявлений. Каждое сообщение сначала попадает к брокеру, и он пересылает его всем, кто подписан. Устройства всегда общаются только с брокером и никогда друг с другом, что делает каждое устройство простым и дешёвым. В школьном проекте брокер — обычно небольшой сервер или облачный сервис; ученикам его почти не приходится видеть, они просто направляют свою плату и свою панель на один и тот же адрес.
Сохранённые сообщения и «последняя воля»
Две дополнительные функции встречаются постоянно, и обе укладываются в образ доски объявлений.
Сохранённое сообщение — это записка, которая остаётся висеть. Обычно сообщение передаётся один раз и исчезает. Если сообщение сохраняется, брокер держит самое свежее из них, и панель, открытая позже, сразу видит текущее значение, а не пустой экран. Это идеально для показания вроде текущей температуры.
Последняя воля — это записка, которую брокер вывешивает от имени устройства, если то неожиданно пропало со связи. Благодаря ей панель может показать датчик как отключённый в тот момент, когда он замолчал, а не выводить устаревшее число до бесконечности. Вместе эти две функции объясняют, почему экран интернета вещей может позаботиться о себе сам.
Почему панели используют MQTT и где вы встретите его на уроке
Панели опираются на MQTT, потому что сообщения крошечные, он терпим к неровному wi-fi, какой и бывает в настоящем классе, и один брокер может обслуживать множество устройств сразу. Когда плата sheenbot считывает датчик, а живой экран обновляется через секунду, именно публикация и подписка перенесли это число. Наши панели sheenIoT работают ровно так же, подписываясь на темы, которые выбрали ваши ученики.
Чтобы объяснить идею, оборудование не нужно. Сначала ученики могут публиковать и получать сообщения прямо в симуляторе verse, а к настоящей плате перейти, когда мысленная модель уляжется. Если хотите увидеть, как это собирается с классом от начала до конца, каникулярные мастер-классы по робототехнике проходят полный проект от датчика до панели.
Модель из пяти строк, которую можно дать ученикам
- Публикация — приколоть записку на доску.
- Подписка — попросить сообщать вам, когда под заголовком появляются записки.
- Тема — сам заголовок, записанный как
classroom/temperature. - Брокер — общая для всех доска объявлений.
- Сохранение — последняя записка остаётся висеть для следующего читателя.
Повесьте этот список на стену на первые несколько уроков. Как только ученики смогут показать на доску объявлений и сказать, кто прикалывает записки, а кто читает, слово MQTT перестаёт быть жаргоном и становится описанием того, что они уже могут себе представить.



