Обнаружение IoT-устройств в сети

Я хотел бы узнать как можно больше информации об устройствах IoT в сети. Я видел код для перечисления устройств, поиска IP-адресов и MAC-адресов, но что еще я могу найти? В частности, я хотел бы знать, что что-то является лампой, и что более важно, чем является производитель.

Я просматривал некоторую документацию для IoTctivity и AllJoyn, а также различные протоколы Zero Configuration. Из того, что я понимаю, эти вещи больше связаны с предоставляемыми услугами, а не с тем, что представляет собой устройство.

Я неправильно понимаю это? Есть ли способ наметить локальную сеть и точно знать, что представляет собой каждое устройство?

3 ответа

AllJoyn предлагает услугу " Об объявлении", с помощью которой вы можете получить то, что ищете:

  • Имена приложений и устройств
  • Марка, модель, версия, описание
  • Поддерживаемые Языки
  • Значок приложения
  • Поддерживаемые объекты и интерфейсы
  • ...

Начнем с изучения DPWS (профиль устройства для веб-служб). Это подмножество наших стандартов обслуживания (например, WSDL или SOAP), которые обеспечивают минимальное взаимодействие с веб-службами, работающими на встроенных устройствах. Обычно сообщения, которыми обмениваются при использовании такого сервиса, содержат метаданные, которые могут информировать вас о:

  1. Область действия - атрибуты, используемые для организации по группам (например, местоположение)
  2. Модель и устройство - информация об устройстве (например, производитель)
  3. Типы - сообщения, которые устройство может отправлять (например, выключать)

Чтобы использовать эти устройства, вам нужен уровень управления, который обеспечивает определенную абстракцию для этих устройств. Этот слой называется промежуточным программным обеспечением. Я предлагаю вам посмотреть в 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>
Другие вопросы по тегам