Разработка границ IIoT - Использование WebSockets
Примечание редактора. Промышленный Интернет вещей (IIoT) обещает обеспечить глубокое понимание промышленных операций и повысить эффективность подключенных машин и систем. Крупномасштабные приложения IIoT полагаются на многоуровневую архитектуру для сбора данных с широкого диапазона датчиков, надежного и безопасного перемещения данных в облако и выполнения анализа, необходимого для обеспечения такого понимания и эффективности. В статье «Разработка промышленных Интернет-приложений» авторы подробно исследуют архитектуру IIoT и обсуждают подходы для удовлетворения широких требований, связанных с этими системами.
По материалам Industrial Internet Application Development, авторы:Алена Траукина, Джаянт Томас, Прашант Тяги, Кишор Реддипалли.
Глава 3. Разработка IIoT Edge (продолжение)
Авторы:Алена Траукина, Джаянт Томас, Прашант Тяги, Кишор Реддипалли
Протоколы уровня приложения - WebSocket
В этом разделе мы попытаемся создать простое приложение IoT для отправки данных с модуля светового датчика XD-80 на приемное устройство, используя концентратор Raspberry Pi и протокол WebSocket:
Передача данных от датчика XD-80 к приемному устройству
WebSocket наиболее широко используется в том случае, если необходимо обеспечить быструю передачу данных в реальном времени. Протокол обеспечивает двустороннее взаимодействие между клиентом и сервером, а также потоковую передачу нескольких сообщений с использованием одного и того же TCP-соединения, что снижает накладные расходы на связь.
В следующей таблице вы можете найти более подробное описание протокола, чтобы понять, подходит ли он для ваших нужд:
Ключ Значение Открытый исходный кодДаСлой OSIПриложениеТипы данныхСтрокаОграниченияНе подходит для больших объемов двоичных данныхВозможные операцииОтправка / получение данныхЗадержкаОчень низкаяИспользованиеСвязь в реальном времениБезопасностьДаСжатиеДаТаблица 3:Характеристики протокола WebSocket
Для сборки приложения нам понадобится следующее.
Требуемое программное обеспечение:
- Node.js 6+ ( https:/ /nodejs.org/en/download/ )
- RPIO ( https://www.npmjs.com/package/rpio )
- WebSocket ( https://www.npmjs.com/package/ws )
- Docker ( https://docs.docker.com/engine/installation/ )
Требуемое оборудование:
- Raspberry Pi 3 (модель B)
- Адаптер питания (2 А / 5 В)
- Карта microSD (более 8 ГБ) и SD-адаптер.
- Модуль светового датчика XD-80.
- Макетная плата и комплект кабелей dupont.
- Кабель Ethernet для проводного сетевого подключения.
Сборка устройства
Перед созданием приложения вам необходимо подключить датчик XD-80 к Raspberry Pi через макетную плату.
Подготовка SD-карты
Чтобы подготовить SD-карту, выполните последовательность действий, как описано:
- Загрузите последний образ Raspbian LITE (доступен по адресу https://raspberrypi.org/downloads/raspbian/ ).
- Подключите SD-карту к компьютеру и используйте Etcher ( https:// io / ) для прошивки Raspbian . img файл на SD-карту.
- Включите SSH с помощью следующей команды:
cd / Volumes / boot
нажмите ssh
- Чтобы включить Wi-Fi, создайте conf со следующим содержанием:
network ={
ssid =”YOUR_SSID”
psk =”YOUR_WIFI_PASSWORD”
}
- Создайте / home / pi / sensor
- Создайте / home / pi / sensor / package.json файл со следующим содержанием:
{
«name»:«sensor»,
«version»:«1.0.0»,
«description»:«»,
«main»:«index.js»,
«scripts»:{
«start»:«node index.js»,
«test»:«echo« Ошибка:тест не указан »&&exit 1 ″
},
« автор »:« »,
« лицензия »:« ISC »,
« зависимости »:{« rpio »:«^ 0.9.16»,
«ws»:«^ 2.3.1»
}
}
- Создайте / home / pi / sensor / index.js файл со следующим содержимым, заменив REMOTE-SERVER-ADDRESS.com с реальной стоимостью:
var WebSocket =require ('ws');
var rpio =require ('rpio');
var ws;
var Receiver ='ws://REMOTE-SERVER-ADDRESS.com:8080';
rpio.open (11, rpio.INPUT);
var installConnection =function () {
ws =new WebSocket (получатель);
ws.on ('close', installConnection);
ws.on ('error', installConnection);
};
InstallConnection ();
var sendStatus =function () {
var status =rpio.read (11) ===0;
console.log ('light status:'+ status);
var data =JSON.stringify ({
device:' raspberry ',
timestamp:Date.now (),
light:status
});
попробуйте {ws.send (data); }
catch (e) {console.log ('не удалось отправить данные' + получателю);}
setTimeout (sendStatus, 1000);
};
SendStatus ();
- Создайте / home / pi / sensor / Dockerfile файл со следующим содержанием:
ОТ hypriot / rpi-node:boron-onbuild
Интернет вещей
- Гиперконнектность требует более широкой перспективы
- Периферийные вычисления:5 потенциальных ловушек
- Перспективы развития промышленного Интернета вещей
- Обновление Индустрии 4.0 с помощью пограничной аналитики
- 10 лучших платформ IIoT
- Тенденции и проблемы IIoT, за которыми стоит следить
- Меняют ли периферийные вычисления и IIoT наше представление о данных?
- Что такое Интернет вещей?
- Edge теперь в центре событий
- Использование искусственного интеллекта и машинного обучения для извлечения полезной информации в погранич…