Оглавление:
- Шаг 1. Начало работы с Node-red
- Шаг 2: разделение данных на красный узел
- Шаг 3: База данных с Wampserver
- Шаг 4: База данных
- Шаг 5: Node-red для Wampserver
- Шаг 6: Использование данных от Wampserver до Node-red
- Шаг 7: Завершение
Видео: UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Цель этой сборки - научить подключать Arduino к Node-red и базе данных, чтобы вы могли регистрировать данные, а также собирать их для дальнейшего использования.
Для этой сборки я использую простую систему сигнализации Arduino, которая выводит 5 номеров данных, каждое из которых разделено запятой.
Необязательно иметь такой точный объем данных, и программа может быть чем угодно.
Важной частью является то, что данные разделены запятыми, как показано на этом снимке экрана.
Например, вывод может выглядеть так: «324, 0, 0, 1, 1».
(законченное программирование и инструкции по созданию Arduino приведены в нижней части этого руководства)
Шаг 1. Начало работы с Node-red
В этом руководстве мы предполагаем, что вы уже установили Node-red, но есть несколько дополнительных палитр, которые используются для этого проекта, которые нам нужны для его работы.
Найдите кнопку «Управление палитрой» и установите следующие палитры.
- узел-красный-приборная панель
- узел красный узел MySQL
- узел-красный-узел-Arduino
- узел-красный-узел-последовательный порт
Он должен показать несколько новых палитр сбоку от меню красной кнопки узла.
Шаг 2: разделение данных на красный узел
Теперь, когда Node-red готов к работе, нам нужно начать с разделения данных на отдельные части.
Вот почему мы постарались разделить их запятыми внутри кода Arduino.
Сначала давайте начнем с размещения узла ввода Arduino, который находится на левой боковой панели.
Вам нужно убедиться, что у него правильный последовательный порт (мой использует COM4) и скорость передачи (в моей программе я использую скорость 9600 бод)
При правильной настройке он должен сказать, что подключен.
Затем мы создаем функциональный блок Javascript и подключаем его после входного узла Arduino. Этот блок позволяет нам программировать на Javascript, и здесь мы пишем код, который может разделять наши данные для каждой запятой.
В этом функциональном блоке я разделил свои 5 данных, используя следующий код:
var m1 = {тема: "light1", полезная нагрузка: msg.payload.split (",") [0]}; var m2 = {тема: "light2", полезная нагрузка: msg.payload.split (",") [1]}; var m3 = {тема: "light3", полезная нагрузка: msg.payload.split (",") [2]}; var m4 = {тема: "миллис", полезная нагрузка: msg.payload.split (",") [3]}; var m5 = {тема: "onoff", полезная нагрузка: msg.payload.split (",") [4]}; возврат [m1, m2, m3, m4, m5];
(при необходимости измените код)
Убедитесь, что для узла установлено 5 выходов (или ваш эквивалент).
Как видно на снимке экрана, теперь у нас есть 5 выходов, каждый из которых связывается с узлом отладки и узлом текстовой информационной панели. Это будет полезно, когда нам нужно увидеть это в пользовательском интерфейсе.
Шаг 3: База данных с Wampserver
Чтобы наша база данных работала, вам необходимо установить Wampserver. После того, как он будет установлен и отображается зеленым значком (после того, как вы запустили все службы), вы должны открыть «phpMyAdmin», который должен привести вас к экрану входа в систему. ранее изменил его, просто введите "root" в имя пользователя и логин.
Нажмите кнопку phpmyadmin под инструментами на левой панели, и он должен открыть меню базы данных, которое выглядит примерно так, как показано на изображении выше.
Создайте новую базу данных и назовите ее как-нибудь, связанное с вашим проектом, моя называется «alarmsystem» (эти имена будут чувствительны к регистру)
В этой базе данных создайте новую таблицу и назовите ее, моя - «alarmdata».
он спросит, хотите ли вы использовать "latin1_swedish_ci", и мы просто сохраним его в таком виде.
Теперь вы создаете 6 таблиц (на 1 больше, чем данных, которые у нас есть)
Первая таблица должна использовать тип данных «длинный текст».
а в остальной части набора данных используется "mediumtext"
Не забудьте назвать их. (первый набор данных должен называться "время"
Шаг 4: База данных
Набор данных Wampserver должен выглядеть примерно так.
(но без фактических данных, поскольку мы еще не дошли до этого)
Шаг 5: Node-red для Wampserver
Теперь мы хотим, чтобы данные, которые мы выводим из нашего Arduino, поступали на наш Wampserver.
Начните с создания еще одного функционального блока Javascript и подключите его к нашему входному узлу Arduino.
В этом блоке скрипта мы снова разделяем наши данные, но мы также вставляем их в нашу базу данных.
var data = msg.payload.split (","); var Green1 = data [0]; var Green2 = данные [1]; var Alarm = data [2]; var Millis = данные [3]; var IsActive = данные [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES ('" + new Date (). toISOString (). slice (0, 19).replace (' T ',' ') + "', '" + Green1 + "', '" + Green2 + "', '" + Alarm + "', '" + Millis + "', '" + IsActive + "')"; msg.topic = out; return msg;
Обратите внимание, что я ввожу «INSERT INTO alarmsystem.alarmdata», это имя, которое мы дали нашей базе данных и таблице, убедитесь, что вы указали точное имя, которое вы дали своей базе данных.
Теперь подключите блок Javascript к узлу отладки, а также к узлу «mysql», находящемуся под палитрой хранилища с левой стороны.
в блоке mysql вы называете его так же, как и ваша база данных "alarmsystem"
изменить пользователя на "root" (имя, которое мы использовали для входа на наш сервер)
хост, порт и база данных должны быть уже заполнены:
Хост: 127.0.0.1
Порт: 3306
База данных: система сигнализации
Если все сделано правильно, его следует подключить после развертывания изменений.
Вы также должны увидеть, что база данных теперь записывает ваши данные напрямую из Arduino.
Шаг 6: Использование данных от Wampserver до Node-red
На последнем этапе мы хотим посмотреть, сможем ли мы взять сохраненные данные и поместить их обратно в наш Node-red и, надеюсь, отобразить их.
Начните с размещения узла "инъекция"
Под темой в этом узле мы помещаем код: SELECT * FROM alarmsystem.alarmdata
Это сможет найти нашу базу данных, когда мы ее нажм.
Подключите узел ввода к новому узлу "mysql", настроенному точно так же, как мы сделали на предыдущем шаге.
Подключите узел mysql к узлу отладки и узлу шаблона, находящемуся под панелью управления.
Узел шаблона будет нашей таблицей, которую мы можем обновить, чтобы отображать данные из базы данных по мере их создания.
Введите код, показанный на скриншоте выше (при необходимости измените), и теперь он должен отображать таблицу данных в нашем пользовательском интерфейсе Node-red.
Мы также можем добавить кнопку на панели инструментов для обновления таблицы из самого пользовательского интерфейса.
Начнем с создания узла кнопки.
подключите узел кнопки к функциональному блоку Javascript.
в функциональный блок мы вставляем следующий код.
msg.topic = "ВЫБРАТЬ * ИЗ аварийных данных ORDER BY Green1 DESC LIMIT 20"; return msg;
(Green1 - первая переменная данных в таблице)
затем этот функциональный блок необходимо подключить ко входу нашего узла mysql, который мы сделали ранее на этом шаге.
Шаг 7: Завершение
Теперь наш пользовательский интерфейс должен включать в себя оперативное обновление наших данных и таблицу с данными с самого сервера.
Это означает, что мы создали соединение между Arduino, программой на основе пользовательского интерфейса и базой данных.
Если вам интересно, как работает моя система сигнализации Arduino, я добавил документ, в котором объясняется, как она запрограммирована и настроена.
А также полный экспорт программирования node-red.
Рекомендуемые:
DIY мощный фонарик для терапии красным светом 660 нм от боли: 7 шагов
DIY мощный фонарик для терапии красным светом 660 нм от боли: можете ли вы сделать мощный фонарик для терапии красным светом 660 нм всего за 80 долларов? Некоторые компании говорят, что у них есть какой-то особый соус или мощное устройство, но даже они обманывают свои цифры, чтобы заставить их звучать впечатляюще. Разумно d
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой - Моделирование регистратора данных DHT11 в Proteus: 5 шагов
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой | Моделирование регистратора данных DHT11 в Proteus: Введение: привет, это Liono Maker, вот ссылка на YouTube. Мы делаем творческий проект с Arduino и работаем над встраиваемыми системами. Регистратор данных: Регистратор данных (также регистратор данных или регистратор данных) - это электронное устройство, которое записывает данные с течением времени
ESP32 Lora Thingspeak Gateway с сенсорным узлом: 9 шагов
ESP32 Lora Thingspeak Gateway с сенсорным узлом: в этом проекте IoT я разработал ESP32 LoRa Gateway & также узел датчика ESP32 LoRa для беспроводного отслеживания показаний датчика с расстояния в несколько километров. Отправитель считывает данные о влажности и температуре с помощью датчика DHT11. Затем он передает
Push-оповещения Arduino для дверного звонка, охранной сигнализации, дымовой сигнализации и т. Д.: 8 шагов
Push-оповещения Arduino для дверного звонка, охранной сигнализации, дымовой сигнализации и т. Д .: IoT-уведомления от дверного звонка, охранной сигнализации, дымовой сигнализации и т. Д. С использованием Arduino Uno и Ethernet Shield. Полная информация на моем веб-сайте здесь О Arduino Push Alert Box Использует Arduino Uno и Ethernet Shield на основе чипа Wiznet W5100 для
Беспроводной датчик температуры и влажности большого радиуса действия IOT с красным узлом: 27 шагов
Беспроводной датчик температуры и влажности большого радиуса действия IOT с Node-Red: Представляем беспроводной датчик температуры-влажности большого радиуса действия NCD, обеспечивающий дальность действия до 28 миль с использованием архитектуры беспроводной ячеистой сети. Датчик температуры-влажности Honeywell HIH9130 передает высокоточные данные о температуре и