Пр-2_Обмен сообщениями типа JSON c помощью MQTT
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. БОНЧ-БРУЕВИЧА» (СПБГУТ) Факультет информационных сетей и систем Кафедра сетей связи и передачи данных |
||||
|
||||
Практическая работа 2
|
||||
По дисциплине: |
Интернет вещей и самоорганизующиеся сети |
|||
|
|
|||
Тема работы: |
Обмен сообщениями типа JSON c помощью MQTT |
|||
|
|
|||
|
||||
|
||||
Номер группы: |
4 |
|
Работу выполнил студент |
|
|
|
|
группы: |
|
|
|
|
|
|
|
|
|
Бойко Дмитрий Игоревич |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Проверил: |
|
|
|
|
Доцент кафедры ССиПД |
|
|
|
|
|
|
Санкт-Петербург 2022 |
Задание
Отправляем сигнал через MQTT: действие и данные в формате JSON.
Если тип датчика – «освещение», то также получаем количество света за окном:
Если свет увеличился на более чем 5 процентов – выключаем (отправляем команду «Выключить»)
Если меньше - включаем в соответствующей пропорции (отправляем команду «Включить Х%», где х – новое значение)
Если не изменилось - ничего не делаем
Тип датчика – вентилятор, также получаем тип команды.
Команда – включить: вывод сообщения «Вентилятор работает»
Команда – выключить: вывод сообщения «Вентилятор не работает»
Выполнение
Устанавливаем и запускаем брокера сообщений MQTT Eclipse Mosquitto
Запустить node-red
Собираем схему
код блока function 1
код блока function 2
Проверяем работу блока управления лампой
Имитируем поступление данных с датчика освещенности в следующем порядке: 100 100 10 10 100.
Смотрим отладочную информацию
Видим, что блок диммера получает сообщения в формате JSON. Как и требовалось в задании в случаи если освещенность не меняется, мы ничего не отправляем.
Проверяем работу блока управления вентилятором
Имитируем поступление данных с переключателя командами Вкл. и Выкл., кодирующиеся числами 1, 0 соответственно, в следующем порядке: Вкл. Выкл. Вкл.
Видим, что блок получает сообщения в формате JSON