1. 云端准备工作
注册并登录百度物接入平台,完成实名认证后方可使用。
目前百度天工物平台需要需要创建计费套餐才可使用,计费方式如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iZlVWOzMWN1EmM1UmMhdDZmVWN4MTY3YTM4QWY5UGOi9CX4IzLcZDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
免费量在学习阶段足够使用了,接下来讲述如何开通。
开通后界面如下:
2. 云端操作 — 创建云端设备
物接入服务需要先创建一个项目,每个项目会为您对应一个接入点(endpoint)。一个项目表示一个完整的物接入服务,通过项目可以将不同项目的设备进行隔离和管理。
当前每个账户能创建 100 个项目,含 1 个设备型项目和 99 个数据型项目。
点击创建项目:
填写信息之后提交:
创建项目后,在项目列表页可以看到物接入默认提供的三类地址,选择不同的地址,意味着可以通过不同的方式连接到百度智能云物接入:
tcp://yourendpoint.mqtt.iot.gz.baiduce.com:1883,端口1883,不支持传输数据加密,可以通过MQTT.fx客户端连接。
ssl://yourendpoint.mqtt.iot.gz.baiduce.com:1884,端口1884,支持SSL/TLS加密传输,MQTT.fx客户端连接,参考配置MQTT客户端。
wss://yourendpoint.mqtt.iot.gz.baidubce.com:8884,端口8884,支持 Websockets 方式连接,同样包含 SSL 加密,参考Websockets Client。
本实验我们先使用第一个不加密方式连接测试,然后使用加密方式连接测试。
成功创建物接入项目(设备型项目)后,点击项目名称,进入配置物接入设备型项目页面,创建影子并获取连接信息。
点击项目名称进入后,选择「物模型」,进入物模型列表页面,点击「新建物模型」。填写名称、属性等信息后,点击创建即可。
物模型用来表示一类(或同一型号的一批)设备。可为设备定义一套属性模板,在创建物影子时可以引用该模板,实现业务的快速部署。
在左侧选择「物影子」,进入物影子列表页面,点击「新建物影子」。输入名称,并选择需要的物模型(这里我们选择了刚才创建的 SmartStreetLight ),点击创建即可完成,此时会弹出连接信息:
物影子与真实设备一一对应,是设备在云端体现。通过一组 json,反映设备最后一次上报的状态信息。
物影子创建完成时,会弹出连接信息,建议下载保存备用:
MQTT 消息的收发是基于主题的。
设备型项目的主题是由系统定义的,可点击相应影子的卡片,通过以下页面查看,可根据实际需求选择主题。每个消息均需为 json 格式。
至此,即可通过获取到的连接信息,建立设备与影子之间的连接,进行数据的上报与反控下发。
详细的信息可以参考官方文档:物影子操作——使用开源MQTT客户端。
3. 使用mqtt.fx作为客户端测试不加密传输(mqtt)
配置 MQTT 的应用客户端,可以快速验证是否可以实现与物接入服务交流发送或者接收消息。
参考我的另一篇博客,下载并安装MQTT.fx客户端(1.7.1版本)。
mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)
注意: MQTT.fx 1.7.0版本对带有 $ 的 主题(Topic)处理存在 bug,请避免使用此版本进行测试。
打开MQTT.fx,单击“设置”图标:
单击弹出的对话框的左下角的“添加”图标,新增一个配置文件,按照下面的设置填写相应字段:
Profile Name:Test Baidu Tiangong
Broker Address:8sdmjix.mqtt.iot.bj.baidubce.com
Broker Port:1883
Client ID:随机生成(点击generate按钮)
选择“User Credentials”选项卡,并且按以下字段填写:
User Name: 8sdmjix/SmartStreetLight001
Password: xbcpwb5t9rqt9su5
单击“OK”按钮保存设置。
选择“Test Baidu Tiangong”,然后单击“Connect”按钮,连接成功之后如图:
成功连接后,即可开始订阅消息。
打开 Subscribe 标签,填写主题 topic,例如:
其中SmartStreetLight001自行替换为你测试时使用的物影子名称
这两个是分别被用作 update 被接受和拒绝时返回信息,选择默认的QoS 0,点击“Subscribe”进行订阅操作,订阅成功之后如图:
打开Publish标签,填写主题topic,例如:
其中SmartStreetLight001自行替换为你测试时使用的物影子名称。
消息质量选择默认的QoS 0,输入框中填写以下有效信息:
其中Lightness和led_status及其值,均可自行替换为创建物模型时所指定的属性值,点击“Publish”进行发布操作。
发布之后,因为我们订阅了主题$baidu/iot/shadow/SmartStreetLight001/update,所以可以在订阅一栏中看到服务器发布回来的信息:
发布之后,在天工物接入平台也可以看到刚刚使用mqtt.fx客户端发布的消息:
4. 使用mqtt.fx作为客户端测试加密传输(mqtts)
Broker Port:1884
选择“SSL/TLS”选项卡,勾上“Enable SSL/TLS”,并选择“CA signed server certificate”: