Вы находитесь на странице: 1из 5

Лабораторная работа №8 – Node-Red. MySQL.

MQTT (Mosquitto)
Цель: закрепить полученные на лекции теоретические знания о
реализации интернета вещей с использованием Node-Red и MQTT.
Задачи:
1. Запустить сервер и клиент Node-Red и проверить их работоспособность
2. Обработать CSV, полученный http-запросом, и сконфигурировать
реакцию системы на различные уровни силы землетрясений
3. Совершить запись данных из Node-Red в СУБД MySQL
4. Запустить MQTT-клиент и совершить передачу данных в Node-Red
5. Передать данные из MQTT-клиента в СУБД MySQL при помощи
платформы автоматизации Node-Red
Ход работы:
На виртуальной машине Fedora в Konsole запускается предварительно
установленный сервер Node-Red. В браузере Mozilla Firefox по адресу
localhost:1880 открывается графический интерфейс платформы
автоматизации Node-Red.
Для ознакомления с возможностями платформы выполнено
упражнение, расположенное на официальном сайте Node-Red по адресу:
https://nodered.org/docs/tutorials/second-flow
Результаты представлены на рисунке 1. По нажатию на блок Inject
происходит выполнение созданной схемы:
1. Ставится временная метка;
2. Выполняется http-запрос, получается csv-файл;
3. Конвертером из встроенной библиотеки csv трансформируется в
JSON;
4. Полученный набор значений пропускается через условие if-else,
которое сравнивает магнитуду землетрясений с константой;
5. Назначается сообщение, в дальнейшем выводящееся в консоль
a. При магнитуде не более 4,2 баллов выводится
соответствующее сообщение;
b. При магнитуде, большей чем 4,2 балла, выводится тревога.

1
Рисунок 1 – Выполнение упражнения на определение магнитуды

Затем открывается заранее созданная таблица в СУБД MySQL. В Node-


Red подключается доступ к БД через соответствующий блок (meteostation_db
на рисунке 2). Через простой SQL-запрос, указанный в function, записывается
жёстко заданное значение температуры в СУБД. В данном случае создаётся
запись с id = 5, temperature = 42, остальные значения без изменений.

Рисунок 2 – Передача данных из Node-Red в СУБД

2
После успешной записи из платформы Node-Red в СУБД запускается MQTT
(Message Queuing Telemetry Transport)-брокер mosquitto. Для проверки
работоспособности брокера создаются тестовые publisher и subscriber.
Результаты представлены на рисунке 3.

Рисунок 3 – Проверка работоспособности MQTT-брокера

В новой схеме Node-Red первым узлом назначается вход MQTT и


привязывается к запущенному брокеру. Успешность связи проверяется
командой отправки температуры в Node-Red и отображение данных в
консоли (рисунок 4).

Рисунок 4 – Передача данных из MQTT-клиента в Node-Red

3
В завершении лабораторной работы все элементы объединяются в одну
систему. Данные передаются через платформу автоматизации Node-Red из
клиента MQTT через брокера mosquitto в СУБД MySQL. В результате
добавлена шестая запись в таблицу meteostation_db (рисунки 5 и 6).

Рисунок 5 – Передача данных из MQTT-клиента в MySQL через Node-Red


(схема и код передачи)

Рисунок 6 – Передача данных из MQTT-клиента в MySQL через Node-Red


(функция)
4
Заключение: В ходе выполнения лабораторной работы были получены
навыки работы с платформой автоматизации Node-Red, MQTT-брокером
mosquitto. Произведена передача данных кодом, эмулирующим работу
некоей метеостанции, из MQTT-брокера в Node-Red. Полученная
информация о погоде (в частности, о температуре) корректно прочитана,
преобразована в SQL-запрос и записана этим запросом в СУБД MySQL.
Знания, приобретённые во время данной работы, позволят собирать и
анализировать информацию с различных датчиков при помощи одного
мощного инструмента. Дружелюбный к пользователю интерфейс
графического конфигурирования системы даёт возможность использовать
инструмент без необходимости частого обращения к документации.
Встроенные и дополнительные библиотеки позволяют выполнить большую
часть задач автоматизации в сфере гражданского неиндустриального
интернета вещей.

Вам также может понравиться