Обнаружение IoT-устройств в сети
Я хотел бы узнать как можно больше информации об устройствах IoT в сети. Я видел код для перечисления устройств, поиска IP-адресов и MAC-адресов, но что еще я могу найти? В частности, я хотел бы знать, что что-то является лампой, и что более важно, чем является производитель.
Я просматривал некоторую документацию для IoTctivity и AllJoyn, а также различные протоколы Zero Configuration. Из того, что я понимаю, эти вещи больше связаны с предоставляемыми услугами, а не с тем, что представляет собой устройство.
Я неправильно понимаю это? Есть ли способ наметить локальную сеть и точно знать, что представляет собой каждое устройство?
3 ответа
AllJoyn предлагает услугу " Об объявлении", с помощью которой вы можете получить то, что ищете:
- Имена приложений и устройств
- Марка, модель, версия, описание
- Поддерживаемые Языки
- Значок приложения
- Поддерживаемые объекты и интерфейсы
- ...
Начнем с изучения DPWS (профиль устройства для веб-служб). Это подмножество наших стандартов обслуживания (например, WSDL или SOAP), которые обеспечивают минимальное взаимодействие с веб-службами, работающими на встроенных устройствах. Обычно сообщения, которыми обмениваются при использовании такого сервиса, содержат метаданные, которые могут информировать вас о:
- Область действия - атрибуты, используемые для организации по группам (например, местоположение)
- Модель и устройство - информация об устройстве (например, производитель)
- Типы - сообщения, которые устройство может отправлять (например, выключать)
Чтобы использовать эти устройства, вам нужен уровень управления, который обеспечивает определенную абстракцию для этих устройств. Этот слой называется промежуточным программным обеспечением. Я предлагаю вам посмотреть в SOCRADES. Это проект ЕС, и я считаю, что их исходный код должен быть доступен на их специальном веб-сайте.
Я упоминаю SOCRADES, потому что он имеет функцию, которая может форсировать сетевую установку. На эти устройства можно устанавливать новые сервисы, используя их профили DPWS и предполагая, что они обладают некоторыми коммуникационными и вычислительными возможностями.
Другими примерами промежуточного программного обеспечения являются: OpenIot, Choreos, Ubiware и т. Д. Все упомянутые промежуточные программы являются открытым исходным кодом. Теперь поверх этого промежуточного программного обеспечения вы создаете свое приложение. Это то, что вы хотите сделать с устройствами.
В настоящее время uPnP является довольно распространенным протоколом и применяется во многих устройствах (например, в принтерах). Это также используется для некоторых современных IoT-проектов. Он также поддерживает описание устройства. Смотрите пример:
<?xml version='1.0'?>
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:pnpx="http://schemas.microsoft.com/windows/pnpx/2005/11">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<pnpx:X_deviceCategory>MediaDevices</pnpx:X_deviceCategory>
<deviceType>urn:schemas-microsoft-com:device:MediaCenterExtenderMFD:1</deviceType>
<friendlyName>Xbox 360 Media Center Extender</friendlyName>
<manufacturer>Microsoft Corporation</manufacturer>
<manufacturerURL>http://www.xbox.com/</manufacturerURL>
<modelDescription>Xbox 360 Media Center Extender</modelDescription>
<modelName>Xbox 360</modelName>
<modelNumber></modelNumber>
<modelURL>http://go.microsoft.com/fwlink/?LinkID=53081</modelURL>
<serialNumber></serialNumber>
<UDN>uuid:10000000-0000-0000-0200-00125A702E78</UDN>
<UPC></UPC>
<iconList>
...
</iconList>
<serviceList>
...
</serviceList>
</device>
</root>