Оглавление:

UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов
UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов

Видео: UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов

Видео: UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов
Видео: LS Monitoring - Устройство удалённого управления ЧЕРЕЗ ИНТЕРНЕТ 2024, Июль
Anonim
UCL-IIOT - система сигнализации с базой данных и узлом-красный
UCL-IIOT - система сигнализации с базой данных и узлом-красный
UCL-IIOT - система сигнализации с базой данных и узлом-красный
UCL-IIOT - система сигнализации с базой данных и узлом-красный

Цель этой сборки - научить подключать Arduino к Node-red и базе данных, чтобы вы могли регистрировать данные, а также собирать их для дальнейшего использования.

Для этой сборки я использую простую систему сигнализации Arduino, которая выводит 5 номеров данных, каждое из которых разделено запятой.

Необязательно иметь такой точный объем данных, и программа может быть чем угодно.

Важной частью является то, что данные разделены запятыми, как показано на этом снимке экрана.

Например, вывод может выглядеть так: «324, 0, 0, 1, 1».

(законченное программирование и инструкции по созданию Arduino приведены в нижней части этого руководства)

Шаг 1. Начало работы с Node-red

Начало работы с Node-red
Начало работы с Node-red

В этом руководстве мы предполагаем, что вы уже установили Node-red, но есть несколько дополнительных палитр, которые используются для этого проекта, которые нам нужны для его работы.

Найдите кнопку «Управление палитрой» и установите следующие палитры.

  • узел-красный-приборная панель
  • узел красный узел MySQL
  • узел-красный-узел-Arduino
  • узел-красный-узел-последовательный порт

Он должен показать несколько новых палитр сбоку от меню красной кнопки узла.

Шаг 2: разделение данных на красный узел

Разделение данных в Node-red
Разделение данных в Node-red

Теперь, когда 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
База данных с Wampserver

Чтобы наша база данных работала, вам необходимо установить Wampserver. После того, как он будет установлен и отображается зеленым значком (после того, как вы запустили все службы), вы должны открыть «phpMyAdmin», который должен привести вас к экрану входа в систему. ранее изменил его, просто введите "root" в имя пользователя и логин.

Нажмите кнопку phpmyadmin под инструментами на левой панели, и он должен открыть меню базы данных, которое выглядит примерно так, как показано на изображении выше.

Создайте новую базу данных и назовите ее как-нибудь, связанное с вашим проектом, моя называется «alarmsystem» (эти имена будут чувствительны к регистру)

В этой базе данных создайте новую таблицу и назовите ее, моя - «alarmdata».

он спросит, хотите ли вы использовать "latin1_swedish_ci", и мы просто сохраним его в таком виде.

Теперь вы создаете 6 таблиц (на 1 больше, чем данных, которые у нас есть)

Первая таблица должна использовать тип данных «длинный текст».

а в остальной части набора данных используется "mediumtext"

Не забудьте назвать их. (первый набор данных должен называться "время"

Шаг 4: База данных

База данных
База данных

Набор данных Wampserver должен выглядеть примерно так.

(но без фактических данных, поскольку мы еще не дошли до этого)

Шаг 5: Node-red для Wampserver

Node-red для Wampserver
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

Использование данных от Wampserver до Node-red
Использование данных от Wampserver до Node-red
Использование данных от Wampserver до Node-red
Использование данных от 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.

Рекомендуемые: