diff --git a/doc/24.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Explorer.md b/doc/24.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Explorer.md similarity index 89% rename from doc/24.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Explorer.md rename to doc/24.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Explorer.md index 66cb448f..fbfc7baf 100644 --- a/doc/24.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Explorer.md +++ b/doc/24.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Explorer.md @@ -15,12 +15,15 @@ - 开发平台提供资源级的权限控制,可为不同的子用户分配项目级、产品级的权限控制; 点击新建项目,填写项目名称和简介: -![](https://img-blog.csdnimg.cn/20200627154409418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200627154409418.png) ## 2.2. 产品开发 ### 2.2.1. 新建产品 点击项目名称进入到该项目中,点击新建产品: -![](https://img-blog.csdnimg.cn/20200628101519667.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200628101519667.png) + 填写产品的一些信息: - 产品名称:名称为中文、字母、数字、下划线的组合,1 - 20位且不能为空。 @@ -33,10 +36,17 @@ - 数据协议:默认采用数据模板的数据协议,您也可以自定义协议进行透传。 - 描述:字数不能超过80个,您可以根据需要选填。 -![](https://img-blog.csdnimg.cn/20200627154515852.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + + +![](https://img-blog.csdnimg.cn/20200627154515852.png) + + 产品新建成功后,可在产品列表页查看到“智能灯”。 -![](https://img-blog.csdnimg.cn/20200627154541318.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200627154541318.png) + + ### 2.2.2. 数据模板 数据模板是将物理实体设备进行数字化描述,构建其数字模型。在物联网开发平台定义数据模板即定义产品功能。完成功能定义后,系统将自动生成该产品的数据模板。 @@ -67,9 +77,13 @@ - 时间型:string 类型的 UTC 时间戳(毫秒)。 选择“智能灯”类型后,系统会自动生成标准功能: -![](https://img-blog.csdnimg.cn/20200627154724560.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200627154724560.png) + + 数据模板是一个 JSON 格式的文件,使用数据模板协议,用户的设备需按数据模板定义要求传输设备数据到云端,并可使用基于数据模板的诸多业务功能,点击查看json可以看到上面创建功能的json格式: + ```json { "version": "1.0", @@ -225,8 +239,15 @@ ``` ### 2.3. 创建设备 进入设备调试界面,新建设备: + ![](https://img-blog.csdnimg.cn/20200629100709275.png) + + + ![](https://img-blog.csdnimg.cn/20200629100653304.png) + + + 进入设备之后即可看到对接信息。 # 3. 设备端对接测试 @@ -288,7 +309,11 @@ OK ``` 连接成功,此时在腾讯云IoT Explorer平台即可看到设备在线: -![](https://img-blog.csdnimg.cn/20200628194450693.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + + +![](https://img-blog.csdnimg.cn/20200628194450693.png) + + ## 3.4. 订阅和发布主题 Explorer平台相比IoThub平台,支持的topic比较多,主要有如下功能: @@ -412,9 +437,10 @@ OK 当code非0的时候, 提示错误信息 - 在云端查看设备上报的数据: -![](https://img-blog.csdnimg.cn/20200628195946585.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200628195946585.png) + 同时在设备日志中可以查看设别上报的数据内容。 ### 3.4.2. 设备远程控制 @@ -438,8 +464,11 @@ OK ``` 然后在云端进入设备在线调试,修改灯的属性,然后下发控制命令: -![](https://img-blog.csdnimg.cn/20200628201406423.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200628201406423.png) + 在串口助手中可以看到设备收到了云端下发的数据,并以URC模式上报: + ```c +TCMQTTRCVPUB:"$thing/down/property/FWR8PGACUS/ESP8266_Dev_001",156,"{"method":"control","clientToken":"clientToken-e037d04b-c3a4-4350-8d67-5c6be19b888a","params":{"name":"bedroom","power_switch":0,"color":0,"brightness":30}}" ``` @@ -627,7 +656,10 @@ OK } ``` 在云端设备事件日志中可以看到: -![](https://img-blog.csdnimg.cn/20200628204014562.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200628204014562.png) + + ### 3.4.5. 设备行为调用 当应用通过云端向设备发起某个行为调用时,开发平台为设备行为的处理设定了默认的 Topic 如下: @@ -645,12 +677,19 @@ OK +TCMQTTSUB:OK ``` 智能灯默认数据模板中没有……需要手动创建,新建一个行为功能: -![](https://img-blog.csdnimg.cn/20200628131937708.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200628131937708.png) + 新建之后在自定义功能这一栏即可看到: -![](https://img-blog.csdnimg.cn/20200629100945192.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200629100945192.png) + 进入设备在线调试界面,发送行为: -![](https://img-blog.csdnimg.cn/20200629101354438.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01jdWxvdmVyNjY2,size_16,color_FFFFFF,t_70) + +![](https://img-blog.csdnimg.cn/20200629101354438.png) + 在串口助手中可以看到模组接收到云端的消息: + ```c +TCMQTTRCVPUB:"$thing/down/action/FWR8PGACUS/ESP8266_Dev_001",132,"{"method":"action","clientToken":"1d603a84c71e4d1da38c2dacce27112e","actionId":"blink","timestamp":1593396804,"params":{"period":5}}" ``` diff --git a/doc/25.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Hub.md b/doc/25.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Hub.md similarity index 99% rename from doc/25.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Hub.md rename to doc/25.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Hub.md index 446539cb..1f3fb262 100644 --- a/doc/25.How_To_Use_Esp8266_Tencent_Firamware_Connect_Iot_Hub.md +++ b/doc/25.How_To_Use_Esp8266_Tencent_Firmware_Connect_Iot_Hub.md @@ -9,29 +9,57 @@ [https://console.cloud.tencent.com/iotcloud](https://console.cloud.tencent.com/iotcloud) + + ![](https://img-blog.csdnimg.cn/20200429102431699.png) + + ## 2.1. 创建新产品 + + + ![](https://img-blog.csdnimg.cn/20200429102653754.png) + + + > 对于认证方式, 指定了设备通过何种方式和云端进行双向认证. 默认的证书方式相对于密钥认证安全性高一点, 但是问题在于证书方式需要在嵌入式设备端存储证书同时实现证书的相关处理, 对设备的RAM和ROM要求较高, 相对而言, 密钥认证的方式资源占用量就小点, 由于我们主要支持的设备都是小型嵌入式设备, 因此选用密钥认证。 > 数据格式指的是设备和云端进行数据交互时候使用的格式, json格式为文本字符串, 可读性高, 并且便于解析, 对于功能复杂的设备交互而已比较理想, 但是对于小型设备或是定制设备, 数据单一, 或是有自定义的格式(二进制或是文本), 这种时候, 用自定义的数据格式, 一方面节约流量, 另一方面比较灵活.。 创建成功后,获取到产品ID: + ![](https://img-blog.csdnimg.cn/20200429102823259.png) + + ## 2.2. 创建新设备 + + + ![](https://img-blog.csdnimg.cn/20200429102907605.png) + + + ![](https://img-blog.csdnimg.cn/20200429102953589.png) + 添加完设备后, 会告知设备对应的密钥. 该密钥将会用于之后设备与平台通信时的认证: + ![](https://img-blog.csdnimg.cn/20200429103051336.png) + 为了实现设备间的通信, 我们还需要创建第二个设备, 操作同上, 将其命名为"dev2": + ![](https://img-blog.csdnimg.cn/20200429103317496.png) + + ## 2.3. 设置Topic 可以在"权限列表"中看到Topic对应的操作权限: + ![](https://img-blog.csdnimg.cn/20200429103449969.png) + + 平台默认配置了三类的Topic, 用于执行发布和订阅.,这里之所以**是三类而不是三个**, 是因为Topic里使用了变量.。 - `WDRRDCF1TE`实际上是productID; @@ -63,9 +91,13 @@ 2. 规则引擎的作用 因为不允许直接跨设备访问Topic, 所以需要依靠"规则引擎"来手动添加规则, 将指定的Topic消息转发到另一个Topic上, 实现不同设备之间的通信. + + ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200429104602991.png) + + 上图介绍了规则引擎的主要作用"republish", 即将一个Topic下的消息republish到另一个Topic下. 从图中我们可以看到, 规则引擎将`WDRRDCF1TE/dev2/event`的消息republish到了`WDRRDCF1TE/dev1/control`下. 将`WDRRDCF1TE/dev1/event`的消息republish到了`WDRRDCF1TE/dev2/control`下。 这样, 对于dev1而言, 只需要订阅`WDRRDCF1TE/dev1/control`就可以接收来自`25KCIUIR1G/dev2/event`的消息了,dev2同理。 @@ -73,15 +105,21 @@ 3. 设置规则引擎 在物联网通信界面选择"规则引擎"--"新建规则", 随意指定一个规则名称, 我们这里不妨设置为"1to2": + ![](https://img-blog.csdnimg.cn/20200429104807225.png) + ![](https://img-blog.csdnimg.cn/20200429105026730.png) 这里, 我们看到规则的详细设置信息, 主要包括"筛选数据"和"行为操作"。 "筛选数据"针对指定Topic接收到的消息内容进行进一步的筛选, 比如匹配消息中的字段来决定是否执行之后的设置的"行为操作".,而"行为操作"则是指定对通过匹配的消息进行何种操作, 主要的操作有"数据转发到另一个Topic(Republish)", "转发到第三方服务(Forward)"以及转发到腾讯云各个对应组件中。 + + ![](https://img-blog.csdnimg.cn/20200429105329607.png) + + 上图是设置好的规则, 这里, 我们将"筛选数据"部分的筛选字段设置为`*`, 筛选的Topic为`WDRRDCF1T/dev1/event`, 条件设置为空, 即不筛选数据, 全部匹配,然后, 执行的操作是将数据转发到`WDRRDCF1T/dev2/control`, 设置完这条规则, 就实现了dev2通过订阅control就能收到dev1发送到event的数据。 > 关于"筛选数据"的设定: @@ -91,21 +129,35 @@ > 如果在进行产品的时候, 使用数据格式是json, 那么此处就可以根据json中的字段进行SQL的匹配和筛选. 同理, 我们再设置新的一个规则"2to1", 实现`WDRRDCF1T/dev2/event`到`WDRRDCF1T/dev1/control`的转发: + ![](https://img-blog.csdnimg.cn/20200429105534974.png) + + 规则引擎都设置好后,记得点启用按钮,这样, 在平台侧dev1到dev2的双向数据通路就打通了: + ![](https://img-blog.csdnimg.cn/20200429105607794.png) + + ## 2.5. 云日志 在平台侧都设置好后, 我们在之后的测试过程或是通信过程中, 往往还需要查看平台是否收到了设备发送上来的消息, 对消息执行了哪些操作, 消息的具体内容(payload)是什么. 腾讯云提供了物联网通信产品的"云日志"功能和腾讯云组件"消息队列CMQ"。 + + ![](https://img-blog.csdnimg.cn/20200429110038897.png) + + 日志中可以看到日志记录了设备的连接, 连接断开, 发布, 订阅等行为, 也记录了规则引擎的操作, 还有CMQ队列的一些行为日志.。 ## 2.6. 消息队列CMQ 可以在产品列表中找到"消息队列"选项, 设置队列所想要接收的消息类型后保存配置, 即可将平台侧收到的设备消息额外发送到腾讯云消息队列CMQ组件中: + ![](https://img-blog.csdnimg.cn/20200429110458586.png) + + + > 在密钥认证下, 消息的内容(payload)是经过base64编码的, 所以在平台侧看到的数据类似乱码实际上是经过编码后的结果, 想要查看具体的内容, 可以在linux下, `echo | base64 --decode`. # 3. 设备端对接测试 @@ -169,7 +221,11 @@ OK +TCMQTTCONN:OK ``` 连接成功,此时在腾讯云IoThub平台即可看到设备在线: + ![](https://img-blog.csdnimg.cn/20200628144637468.png) + + + ## 3.4. 订阅主题 示例: ``` @@ -178,9 +234,15 @@ OK +TCMQTTSUB:OK ``` 订阅成功之后,在云端进入设备在线调试,发送测试数据: + ![](https://img-blog.csdnimg.cn/20200628144823680.png) + 在串口助手中可以看到ESP8266模组通过URC方式上报的数据: + ![](https://img-blog.csdnimg.cn/2020062814492996.png) + + + ## 3.5. 发布消息 示例: ``` @@ -192,11 +254,16 @@ OK +TCMQTTPUB:OK ``` 在云端可以看到设备上报的消息: + ![](https://img-blog.csdnimg.cn/20200628145141534.png) + + # 4. OTA升级 腾讯云定制固件中内置了与IoThub平台OTA固件升级对接的AT指令,整个升级流程如下: + ![](https://img-blog.csdnimg.cn/20200630101118644.png) + 在模组连接IoThub平台成功之后进行如下的操作。 ## 4.1. 使能OTA功能 @@ -213,10 +280,15 @@ OK ## 4.2. 云端下发固件 将待升级的固件上传到云平台: + ![](https://img-blog.csdnimg.cn/2020063010145471.png) + 选择下发0.2版本的固件: + ![](https://img-blog.csdnimg.cn/20200630101554408.png) + 在串口助手中可以看到模组上报的URC数据: + ``` +TCOTASTATUS:ENTERUPDATE +TCOTASTATUS:UPDATESUCCESS @@ -243,6 +315,7 @@ OK AT+TCREADFWDATA=512 ``` ![](https://img-blog.csdnimg.cn/20200630102539496.png) + 当最后一次读取的时候,模组实际返回读取大小为236字节,小于512字节,表示读取结束。