国内物联网平台初探(一):百度物接入IoT Hub

国内物联网平台初探(一)

——百度物接入IoT Hub

马智

物接入IoT Hub - 架构

  • 全托管的云服务,帮助建立设备与云端之间安全可靠的双向连接
  • 支撑海量设备的数据收集、监控、故障预测等各种物联网场景

物接入IoT Hub - 功能

  • 通信协议:支持MQTT
  • 数据安全:设备级认证、策略授权;双向安全连接、SSL传输
  • 开发语言:支持多种开发语言、兼容主流硬件设备
    • 支持C、C#、Python、Java、PHP等
    • 支持CLI命令行工具(Python)
  • 分析服务:对接百度大数据服务

物接入IoT Hub – 概念


概念


描述


MQTT


MQTT是基于二进制消息的发布/订阅(Publish/Subscribe)模式的协议,
最早由IBM提出的,如今已经成为OASIS规范,
更符合M2M大规模沟通。


endpoint


IoT Hub 的服务实例,代表一个完整的IoT Hub 服务。


thing


表示IoT Hub 设备,
用户可以在每个endpoint中创建一个或多个thing。


principal


principal是一个抽象概念,表示设备(thing)的身份。
每个thing可以绑定一个principal,
每个principal拥有一个policy权限。


policy


为身份principal设置对应的策略policy,一个principal对应一个policy。


permission


为每一个policy设置一组权限permission,其中包括主题topic,和对该主题的操作权限operation。


topic


每一个policy都需要指定一个主题项目(topic),在进行使用IoT Hub 服务之前,
需要先为我们即将开展的订阅发布信息创建一个主题名称,
该主题应用于MQTT客户端。topic规则允许字符串可以带一个通配符"#",
例如"temperature/#"就是匹配前缀是temperature的所有topic;单独的"#"表示匹配所有topic。


operation


对topic的操作权限。目前基于MQTT协议,IoT Hub 支持创建发布PUBLISH和订阅SUBSCRIBE两种权限。

MQTT协议

MQTT(Message Queuing Telemetry Transport)是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。

客户端

  1. 发布应用消息给其它相关的客户端。
  2. 订阅以请求接受相关的应用消息
  3. 取消订阅以移除接受应用消息的请求。
  4. 从服务端断开连接。

服务端

  1. 接受来自客户端的网络连接
  2. 接受客户端发布的应用消息
  3. 处理客户端的订阅和取消订阅请求。
  4. 转发应用消息给符合条件的客户端订阅。

MQTT vs HTTPS:

  • 吞吐量:93倍
  • 发送数据电量消耗: 1/11
  • 接收数据电量消耗:1/170
  • 连接保持电量消耗:1/2
  • 网络开销:1/8

物接入IoT Hub – 操作流程

目前每个账户只能创建2个endpoint,100个things,100个principal。

物接入IoT Hub – 连接类型

  • IoT Hub为每个实例提供3种默认连接方式

    • TCP:端口1883,不支持传输数据加密,可以通过MQTT.fx客户端连接。
    • SSL:端口1884,支持SSL/TLS加密传输,MQTT.fx客户端连接
    • WSS:端口8884,支持WebSocket浏览器方式连接,同样包含SSL加密

tcp://yourendpoint.mqtt.iot.gz.baiduce.com:1883

ssl://yourendpoint.mqtt.iot.gz.baiduce.com:1884

wss://yourendpoint.mqtt.iot.gz.baidubce.com:8884

物接入IoT Hub – 运维界面

创建设备

创建身份

创建策略

生成秘钥

物接入IoT Hub – MQTT客户端类型

  • Websockets Client:百度开放云基于浏览器开发的mqtt客户端
  • MQTT.fx:目前主流的mqtt客户端,可以快速验证是否可以与IoT Hub 服务交流发布或订阅消息
  • Paho:Eclipse基金会提供的开源MQTT客户端实现,可以很好的支持百度开放云物接入IoT Hub 服务以实现设备互联和物联网应用。

物接入IoT Hub – Paho客户端源码示例

订阅一栋办公楼内第五层的温度值

通过NetBeans 来展示如何通过代码来与物接入服务发送或者接受消息。新建一个Java应用程序类型的Maven项目,右击"依赖关系"选择添加依赖关系,查询org.eclipse.paho,并加入对org.eclipse.paho.client.mqttv3的依赖。


package com.baidu.iot;

import java.io.InputStream;

import java.security.KeyStore;

import java.security.cert.Certificate;

import java.security.cert.CertificateFactory;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.TrustManagerFactory;

import org.eclipse.paho.client.mqttv3.MqttClient;

import org.eclipse.paho.client.mqttv3.MqttConnectOptions;

import org.eclipse.paho.client.mqttv3.MqttMessage;

public class Thermometer {

public static void main(String[] args) throws Exception {

String endpoint = "hostname"; //输入创建实例endpoint返回的hostname

String username = "yourendpoint/yourthing"; //输入创建thing返回的username

String password = "Dm3yyvOHb7zt/uRWsPgsfsgbnj7CxuVMc+uDbf4j960="; //输入创建principal返回的password

String topic = "building-b/floor-5/temperature-1"; //订阅的消息主题,本例是指订阅b号楼第五层的温度

TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");

tmf.init((KeyStore)null);

TrustManager[] trustManagers = tmf.getTrustManagers();

SSLContext ctx = SSLContext.getInstance("TLS");

ctx.init(null, trustManagers, null);

MqttConnectOptions options = new MqttConnectOptions();

options.setCleanSession(true);

options.setUserName(username);

options.setPassword(password.toCharArray());

options.setSocketFactory(ctx.getSocketFactory());

MqttClient client = new MqttClient(endpoint, "java-client");

client.connect(options);

MqttMessage message = new MqttMessage();

message.setPayload("15".getBytes());

client.publish(topic, message);

client.disconnect();

}

}

物接入IoT Hub – 与大数据分析服务对接

时间: 2024-08-01 10:24:10

国内物联网平台初探(一):百度物接入IoT Hub的相关文章

国内物联网平台初探(一) ——百度物接入IoT Hub

物接入IoT Hub - 架构 全托管的云服务,帮助建立设备与云端之间安全可靠的双向连接 支撑海量设备的数据收集.监控.故障预测等各种物联网场景 物接入IoT Hub - 功能 通信协议:支持MQTT 数据安全:设备级认证.策略授权:双向安全连接.SSL传输 开发语言:支持多种开发语言.兼容主流硬件设备 支持C.C#.Python.Java.PHP等 支持CLI命令行工具(Python) 分析服务:对接百度大数据服务 物接入IoT Hub – 概念 概念 描述 MQTT MQTT是基于二进制消息

国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服

国内物联网平台初探(七):Ablecloud物联网自助开发和大数据云平台

国内物联网平台初探(七)——Ablecloud物联网自助开发和大数据云平台 马智 平台定位 面向IoT硬件厂商,提供设备联网与管理.远程查看控制.定制化云端功能开发.海量硬件数据存储与分析等基础设施,加速硬件实现联网智能化. 架构 服务 云端服务一体化开发引擎 业内独创一体化开发引擎架构,自动解决底层连接.存储.分布式集群部署.弹性扩容.安全等难题,降低IoT云端功能开发门槛,普通工程师即可快速完成云端服务开发部署,加速IoT功能创新迭代. IoT功能组件及方案超市 提供丰富的IoT功能组件及方

国内物联网平台初探(六):庆科云FogCloud

国内物联网平台初探(六)——庆科云FogCloud 马智 平台定位 FogCloud 快速接入智能硬件 FogCloud为开发者提供便捷的智能硬件接入服务,真正实现敏捷开发,快速迭代. FogCloud提供功能强大的云端服务 包括 产品/APP管理 ,消息通道,数据存储,设备状态 数据远程同步 到手机设备,以及第三方 微信平台开发,代码托管,在线调试等功能. FogCloud支持较为丰富的云端功能 开发者无需耗费精力在后端处理,底层构建.协议转换等工作,只需关注产品的顶层应用 服务 数据统计 F

百度云 - 物接入 IoT Hub体验

只抱着玩玩的态度,前天试了试 Ali云的物联网套件,感觉和自己的需求有些差距,200个节点通过gateway能接入云端,但需要通过服务器端API来控制gateway,和期望的流程有些诧异, 于是今天又试试百度云的物联网hub, https://cloud.baidu.com/doc/IOT/index.html 百度云的IoT hub比较简单,其实就是一个MQTT的broker,参考文档https://cloud.baidu.com/doc/IOT/Mqttclient.html#MQTT.fx

国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服务最终消费者. 产品功能 IoT PaaS服务 为IoT开发者提供智能设备自助开发工具

国内物联网平台初探(八):中移物联网开放平台OneNet

平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算和展现,快速打造物联网产品应用,降低开发成本. IoT PaaS基础能力:提供智能设备自助开发工具.后台技术支持服务.物联网专网.短彩信.位置定位.设备管理.消息分发.远程升级等基础服务 SaaS业务服务:提供第三方应用开发平台,快速实现不同业务需求,借助轻应用孵化器快速搭建Web和APP应用 IoT数据云:提供高扩展的数据库.实时数据处理.智能预测离线数据分

国内物联网平台初探(二) ——阿里云物联网套件

架构 数据通道 为设备和物联网应用程序提供发布和接收消息的安全通道.数据通道目前支持CCP协议和MQTT协议. 用户可以基于CCP协议实现Pub/Sub异步通信,也可以使用远程调用(RPC)的通信模式实现设备端与云端的通信. 用户也可以基于开源协议MQTT协议连接阿里云IoT,实现Pub/Sub异步通信. 安全认证&权限策略 为每个设备颁发阿里云IoT的凭证,依赖凭证才能连接阿里云IoT. 提供设备级的授权粒度,任何设备必须经过授权才能对某个Topic发布订阅消息 服务端也需要经过授权才能操作其

国内物联网平台初探(三) ——QQ物联·智能硬件开放平台

平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用户与设备.设备与设备.设备与服务之间的联动. 实现用户与设备及设备与设备之间的互联互通互动,充分利用和发挥腾讯QQ的亿万手机客户端及云服务的优势,更大范围帮助传统行业实现互联网化. 应用场景 音视频类产品    (网络摄像机(监控.看护) .行车记录仪.可视门铃) 沟通互动类产品(语音对讲手表.儿童早教机.社交电视.电子相框) 数据采集类产品(体重秤.温度