- Распечатать
Как: Использование последовательного интерфейса в Node-RED
Как: Использование последовательного порта в Node-RED
Руководство по подключению к последовательному устройству, настройке последовательного порта в node-RED и знакомство с потоками библиотеки node-RED
В этой статье описывается, как читать и записывать последовательные данные с устройств Tulip Edge с помощью Node-RED. Будет рассказано о том, как подключаться к различным последовательным портам на каждом типе Edge-устройств, а также о двух потоках библиотек Tulip Node-RED, использующих последовательный обмен данными.
Что вам потребуется:
Устройство Edge IO или Edge MC, зарегистрированное в вашем аккаунте Tulip.
Устройство, которое будет осуществлять последовательный обмен данными с вашим Edge-устройством.
1. Настройка оборудования: Подключение к последовательному устройству
Прежде всего, убедитесь, что вы физически подключили ваше последовательное периферийное устройство к устройству Edge.
Дополнительно: Если вы хотите сначала протестировать работу Node-RED, установив связь с хост-устройством (например, с ноутбуком, другим устройством Tulip Edge и т.д.), вы можете сделать это с помощью RS-232 с нуль-модемом или кабелей USB-UART с перекрещивающимися линиями TX/RX ( не подключайте питание).
Примерами программ, которые можно использовать на хост-устройстве для связи с устройством Edge, являются:
- screen (MacOS): Утилита командной строки для последовательного обмена данными.
- PuTTY (Windows/Linux): Бесплатный эмулятор терминала, который может работать в качестве последовательной консоли.
- Node-RED: Создайте дополнительный поток Node-RED в экземпляре Node-RED, запущенном на хост-устройстве.
2. Настройка Node-RED: Настройка последовательного порта
Мы будем использовать узлы из пакета node-red-contrib-serialport
для последовательных коммуникаций в Node-RED. Если устройство Tulip Edge OS44+, то этот пакет уже предустановлен. В противном случае можно добавить узлы в палитру с помощью редактора Node-RED, как описано здесь.
Последовательные узлы появятся на вкладке " Сеть
":
Для чтения последовательных входов перетащите узел serial in
. Для записи последовательных выходов перетащите узел serial out
. На любом из узлов для настройки последовательного порта нажмите кнопку редактирования свойства "Serial Port":
После этого вы заполните следующие свойства:
- Serial Port: devpath последовательного порта (например: /dev/ttyS0). Это зависит от того, к какому устройству Edge и к какому физическому последовательному порту вы подключаетесь (см. статьи для Edge IO или Edge MC). Доступные пути можно просмотреть, нажав кнопку поиска, как показано ниже.
Примечание: В настоящее время в Node-RED отсутствует поддержка "горячего" подключения USB-устройств. Это означает, что USB-устройство должно быть подключено при загрузке устройства, чтобы Node-RED имел к нему доступ.
- Настройки: Скорость передачи данных и другие настройки должны соответствовать скорости передачи данных последовательного устройства, с которым вы общаетесь.
- Input (Ввод): Выберите, когда узел будет выводить сообщение. Возможны следующие варианты: ожидание разделительного символа (например, перевода строки, запятой или пробела), ожидание через каждые
n
символов, если вывод имеет фиксированную длину, или можно установить таймаут, чтобы получать вывод каждыеn
секунд.
- Output: Добавить символ в выходное сообщение (например, добавить обратно перевод строки).
Вы можете убедиться в том, что подключены к правильному последовательному порту, если после развертывания статус узла будет "connected":
3. Потоки библиотеки Node-RED: Общение с Tulip
Tulip предоставляет несколько библиотечных потоков для чтения последовательных входов и записи последовательных выходов на устройствах Tulip Edge с помощью Node-RED. Информацию о том, как импортировать библиотечный поток Tulip, см. в разделе Импорт потоков Tulip Node-RED.
Чтобы записать последовательный вывод на устройство Tulip Edge из приложения Tulip, можно использовать поток serial_http_endpoint
и настроить HTTP-коннектор на экземпляре Tulip, работающем на хосте коннектора устройства Edge. В этот коннектор необходимо добавить функцию коннектора, которая будет отправлять POST-запросы к конечной точке /serial
HTTP, и вызывать эту функцию коннектора из приложения. Подробнее о записи значений в Node-RED с помощью хоста коннектора читайте в разделе " Общение с машинами с помощью хоста коннектора и Node-RED в Edge MC ".
Для чтения последовательного ввода на устройстве Tulip Edge и отправки в Tulip можно использовать либо Tables API (для записи данных в таблицу), либо Machine API (для записи данных в атрибут машины). Библиотечный поток serial_to_tulip_table
является примером записи последовательных входов с разделителями новой строки в таблицу tulip. Вам необходимо сконфигурировать узел serial и два узла Tulip tables с правильными настройками для вашего случая использования. Подробнее о том, как использовать узел API Tulip Tables, читайте в разделе Использование Node-RED с API Tulip.