Как стать автором
Обновить

Комментарии 2

А есть какие-нибудь ориентированные на IoT системы, основанные на реактивном программировании? Меня очень обрадовала скорость разработки UI на языке ELM и я подумал, что такой же подход мог бы эффективно применяться и в IoT, только view будет не web-страница, а что-то более специфичное (типа набора сигналов на GPIO).

С точки зрения архитектуры ИМХО Вы недостаточно подробно остановились на некоторых весьма важных компонентах архитектуры IoT.


Например на уровне железа связь с различными хардварными устройствами не всегда возможна с помощью MQTT. В мире существует множество стандартов, прижившихся в разных сферах — проводных, беспроводных, интернетных. Поэтому тут при прототипировании или построении готовых систем весьма кстати приходятся так называемые Хаб-платформы, которые позволяют подключать различные датчики, устройства, протоколы и сервисы и приводить все это многообразие к одному протоколу. Например я пользуюсь OpenHAB — открытой платформой, которую можно запустить на том же RPI. Она поддерживает больше 100 различных производителей железа и сервисов. Есть множество аналогичных систем — ioBroker, HomeAssistant, Domotiqz и т.д. OpenHAB и NodeRED прекрасно дополняют друг-друга — OpenHAB отвечает за низкий уровень, а Node-RED за сценарии работы.


Второй интересный компонент — удаленный доступ и UI. Облако — это хорошо, и голосовые ассистенты тоже, но пользователи также хотят видеть и управлять с телефона и не только через WEB. А также иметь определенную безопасность. В этом случае мое решение для прототипирования — облачный брокер, например CloudMQTT + приложение не телефон/планшет/компьютер The Home Remote, которое позволяет легко создавать пользовательские UI с поддержкой MQTT. И тогда организация удаленного доступа через интернет становится простой игрой, а не мученьем с проброской портв, dynamic DNS и прочего.


Ну и третий компонент, которые только начинает набирать обороты в IoT — edge computing. Опять же облако — это хорошо, но некоторые задачи и алгоритмы необходимо выполнять на месте, особенно если они требуют определенного времени реакции. Если сработал датчик движения, то система должна включить свет сразу-же, а не через 5 секунд, пока все не пройдет через облако. В данном случае нам помогают промышленные решения, которые выходят на рынок IoT. Например я и использую Codesys — среду и рантайм, который используется для программирования программируемых логических контроллеров и исполнения кода на них в реальном времени + библиотеку MQTT для интеграции с IoT.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий