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

- 全托管的云服务,帮助建立设备与云端之间安全可靠的双向连接
- 支撑海量设备的数据收集、监控、故障预测等各种物联网场景
物接入IoT Hub - 功能
- 通信协议:支持MQTT
- 数据安全:设备级认证、策略授权;双向安全连接、SSL传输
- 开发语言:支持多种开发语言、兼容主流硬件设备
- 支持C、C#、Python、Java、PHP等
- 支持CLI命令行工具(Python)
- 分析服务:对接百度大数据服务
物接入IoT Hub – 概念
|
概念 |
描述 |
|
MQTT |
MQTT是基于二进制消息的发布/订阅(Publish/Subscribe)模式的协议, |
|
endpoint |
IoT Hub 的服务实例,代表一个完整的IoT Hub 服务。 |
|
thing |
表示IoT Hub 设备, |
|
principal |
principal是一个抽象概念,表示设备(thing)的身份。 |
|
policy |
为身份principal设置对应的策略policy,一个principal对应一个policy。 |
|
permission |
为每一个policy设置一组权限permission,其中包括主题topic,和对该主题的操作权限operation。 |
|
topic |
每一个policy都需要指定一个主题项目(topic),在进行使用IoT Hub 服务之前, |
|
operation |
对topic的操作权限。目前基于MQTT协议,IoT Hub 支持创建发布PUBLISH和订阅SUBSCRIBE两种权限。 |
MQTT协议
MQTT(Message Queuing Telemetry
Transport)是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。
客户端
- 发布应用消息给其它相关的客户端。
- 订阅以请求接受相关的应用消息
- 取消订阅以移除接受应用消息的请求。
- 从服务端断开连接。
服务端
- 接受来自客户端的网络连接
- 接受客户端发布的应用消息
- 处理客户端的订阅和取消订阅请求。
- 转发应用消息给符合条件的客户端订阅。
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 – 与大数据分析服务对接

国内物联网平台初探(一) ——百度物接入IoT Hub的更多相关文章
- 国内物联网平台(1):百度物接入IoT Hub
国内物联网平台(1) ——百度物接入IoT Hub 马智 物接入IoT Hub - 架构 全托管的云服务,帮助建立设备与云端之间安全可靠的双向连接 支撑海量设备的数据收集.监控.故障预测等各种物联网场 ...
- 国内物联网平台初探(八):移动云OneNET
国内物联网平台初探(八)——移动云OneNET 平台架构 数据模型 使用场景示意图 服务 IOT Paas 基础服务 为IoT开发者提供智能设备自助开发工具.后台技术支持服务,为您提供物联网专网.短彩 ...
- 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台
平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了 ...
- 国内物联网平台初探(八):中移物联网开放平台OneNet
平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算和展现,快速打造物联网产品应用,降低开发成本. IoT Paa ...
- 国内物联网平台初探(三) ——QQ物联·智能硬件开放平台
平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用户与设备.设备与设备.设备与服务之间的联动. 实现用户与设 ...
- 国内物联网平台初探(七) ——Ablecloud物联网自助开发和大数据云平台
平台定位 面向IoT硬件厂商,提供设备联网与管理.远程查看控制.定制化云端功能开发.海量硬件数据存储与分析等基础设施,加速硬件实现联网智能化. 架构 服务 云端服务一体化开发引擎 业内独创一体化开发引 ...
- 国内物联网平台初探(六) ——庆科云FogCloud
平台定位 FogCloud 快速接入智能硬件 FogCloud为开发者提供便捷的智能硬件接入服务,真正实现敏捷开发,快速迭代. FogCloud提供功能强大的云端服务 包括 产品/APP管理 ,消息通 ...
- 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台
国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...
- 国内物联网平台(3):QQ物联智能硬件开放平台
国内物联网平台(3)——QQ物联·智能硬件开放平台 马智 平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用 ...
随机推荐
- poj2376 Cleaning Shifts 区间贪心
题目大意: (不说牛了) 给出n个区间,选出个数最少的区间来覆盖区间[1,t].n,t都是给出的. 题目中默认情况是[1,x],[x+1,t]也是可以的.也就是两个相邻的区间之间可以是小区间的右端与大 ...
- SQL中EXTRACT() 函数
EXTRACT()("提取"的意思) 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等. 就是返回出来具体的年,月,日 2008-12-29 16:25:46.63 ...
- dubbo之上下文信息
上下文信息 上下文中存放的是当前调用过程中所需的环境信息.所有配置信息都将转换为 URL 的参数,参见 schema 配置参考手册 中的对应URL参数一列. RpcContext 是一个 Thread ...
- 转:Python结合P有winauto进行windows UI自动化
https://blog.csdn.net/z_johnny/article/details/52778064
- Qt无法用UTF-8编辑问题
原因: Windows默认编码格式是GBK. 而QT-各默认版本的编码格式是UTF-8. 解决方法": Windows环境下,Qt Creator,菜单->工具->选项-> ...
- std::string格式化输入输出
在C语言中: C函数有sprintf函数, 比较方便, 但是需要知道所需要的内存空间是多少. 在C++的框架MFC中: 在MFC中CString 有Format函数来格式化字符串. 很方便. 难过的是 ...
- python3:语法变动 及新特性
python3.0 对python2.x 升级后重大语法变动,幸好留下2.7.6及后续2版本,保持一些语法兼容. 原始地址:http://hi.baidu.com/jxq61/item/3a24883 ...
- 浏览器 HTTP 协议缓存机制详解--网络缓存决策机制流程图
1.缓存的分类 2.浏览器缓存机制详解 2.1 HTML Meta标签控制缓存 2.2 HTTP头信息控制缓存 2.2.1 浏览器请求流程 2.2.2 几个重要概念解释 3.用户行为与缓存 4.Ref ...
- vs2008 打开项目 无法读取项目文件
卸载vs2015之后 出现问题 C:\Windows\SysWOW64\regedit.exe 64系统运行这个 删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MS ...
- 【转】VMWare vCenter 6.0安装配置
版权声明: 专注于"GIS+"前沿技术的研究与交流,将云计算技术.大数据技术.容器技术.物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案:文章允许 ...