
Вы просматриваете архивную страницу сайта. Информация на этой странице может быть устаревшей.
## Серверное приложение
В 2016 году IBM опубликовала свой внутренний проект под названием [Node-RED](https://nodered.org) с открытым исходным кодом.
Это веб-приложение с визуальным редактором программирования, которое позволяет организовывать взаимодействие датчиков и исполнительных механизмов.
Конечно, создавая устройства Интернета вещей без программирования не обойтись, но с Node-RED можно тратить больше времени на создание классных вещей,
а не тратить бесчисленные часы на написание кода.

При помощи Node-RED можно легко:
- получить доступ к портам ввода/вывода микроконтроллера;
- устанавливать соединения с другими платами (Arduino, ESP8266 и т.д.);
- создавать адаптивный графический интерфейс пользователя для различных проектов;
- осуществлять связь со сторонними сервисами (IFTTT.com, Adafruit.io, Thing Speak и т.д.);
- получать данные из Интернета (прогноз погоды, цены на акции, электронные письма и т.д.);
- создавать события, запускаемые по времени;
- хранить и извлекать данные из баз данных.
Разработка в Node-RED ведется через обыкновенный браузер, а само ядро Node-RED можно запустить на различных платформах:
в облаке, на сервере, на обычном ПК или даже Raspberry Pi (или аналогичных).
Получившийся пользовательский интерфейс также доступен через браузер.

Node-RED удобно использовать на шлюзах между различными сетями устройств Интернета вещей,
функционирующих на собственных, как правило, более простых протоколах и традиционным интернетом, построенных на TCP/IP, UDP.
В этом случае он позволит более оптимально использовать свободные ресурсы шлюза, работающего, как правило, на Linux.
Тем не менее, Node-RED можно запустить и на обычном компьютере (как x86, так и x64) под управлением операционной системы [Windows](https://nodered.org/docs/getting-started/windows).
В рамках же данного практикума рассмотрим работу с Node-RED под Linux (в нашем случае установлена Ubuntu 18.04 LTS).
### Установка Node-RED
Возможно, что **Node-RED** уже был установлен, и часть действий, описанных ниже - пустая трата времени. Тем не менее пройти все шаги все равно будет полезным.
Чтобы предыдущие настройки нам не мешались - удалим их командой
```bash
rm -rf ~/.node-red/
```
Также удалим (если установлена) предыдуущую версию `nodejs`
```bash
sudo apt remove nodejs
```
Теперь установим последнюю версию **NodeJS** с долгосрочной поддержкой и программу управления пакетами **npm**, для чего в терминале введем:
```bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
```
Далее установим собственно сервер **Node-RED** и вспомогательную утилиту **node-red-admin**.
```bash
sudo npm install -g --unsafe-perm node-red node-red-admin
```
Менеджер **npm** обычно устанавливает пакеты в текущий каталог.
В данной команде использован флаг `–g (globally)`, который выполнит глобальную установку указанных пакетов и поместит их в стандартный каталог системы, например в `/usr/local/bin`.
Флаг `—unsafe-perm` помогает избежать некоторых ошибок, которые могут возникнуть при попытке `npm` скомпилировать встроенные модули (написанные на компилируемых языках, например C или C++).
Node-RED использует порт 1880 - разрешим подключения по этому порту
```bash
sudo ufw allow 1880
```
Заодно узнаем какой у нашего компьютера IP-адрес:
```bash
hostname -I
```

В нашем случае - это **192.168.1.41**.
Запустим Node-RED командой
```bash
node-red
```
В терминале появится приветственное сообщение типа *Welcome to Node-RED* и информационное сообщение **Server now running**.

Теперь запускаем любой браузер и переходим по адресу, который мы определили ранее (**192.168.1.41**),
и задаем номер порта 1880: