在网络上发现IoT设备

时间:2015-07-01 17:26:40

标签: network-programming iot zeroconf alljoyn iotivity

我想尽可能多地发现有关网络上物联网设备的信息。我见过代码来枚举设备,找到IP地址和MAC地址,但我还能找到什么?特别是,我想知道有些东西是灯,更重要的是,制造商是什么。

我一直在查看IoTivity和AllJoyn的一些文档以及各种零配置协议。据我所知,这些事情更关注的是暴露的服务,而不是设备的确切含义。

我误解了吗?是否有某种方法来映射本地网络并确切知道每个设备是什么?

3 个答案:

答案 0 :(得分:2)

AllJoyn提供About Announcement服务,您可以通过该服务获得所需内容:

  • 应用和设备友好名称
  • 制作,型号,版本,描述
  • 支持的语言
  • App Icon
  • 支持的对象和接口
  • ...

答案 1 :(得分:0)

首先查看DPWS(Web服务的设备配置文件)。这是我们的服务标准(例如,WSDL或SOAP)的子集,其允许与在嵌入式设备上运行的web服务的最小交互。通常,使用此类服务​​时交换的消息包含可以通知您的元数据:

  1. 范围 - 用于根据组进行组织的属性(例如,位置)
  2. 型号和设备 - 有关设备的信息(例如,制造商)
  3. 类型 - 设备可以发送的消息(例如,关闭)
  4. 要使用这些设备,您需要一个控制层,为这些设备提供某种抽象。该层称为中间件。我建议你看看SOCRADES。这是一个欧盟项目,我相信他们的源代码应该在他们的专用网站上提供。

    我提到SOCRADES因为它有一个可以强制网络安装的功能。可以使用它们的DPWS配置文件在这些设备上安装新服务,并假设它们具有一些通信和计算功能。

    中间件的其他例子有:OpenIot,Choreos,Ubiware等。提到的所有这些中间件都是开源的。现在,在这些中间件之上,您可以构建应用程序。这就是你想要对设备做什么。

答案 2 :(得分:0)

uPnP是当今非常常见的协议,并且在很多设备(即打印机)中实现。这也用于一些现代物联网项目。它还支持设备描述。查看示例:

<?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>