初探腾讯云物联网开发平台

前言

目前市场上有很多物联网开发平台,本次就在腾讯云平台上,做一个简单的尝试。

Get Started

  1. 创建产品和设备
    首先,进入物联网开发平台:https://console.cloud.tencent.com/iotexplorer
    这里介绍两个概念,后面也会用到:
    iot-explorer,即物联网开发平台
    iot-hub,即物联网通信https://cloud.tencent.com/product/iothub,后面会涉及到此中的规则引擎。

进入物联网开发平台后,首先创建一个项目,可以叫“智慧城市”;
接着创建一个自定义产品:

初探腾讯云物联网开发平台

创建好之后,定义一个自定义功能,属性为字符串:

初探腾讯云物联网开发平台

最后创建一个设备:

初探腾讯云物联网开发平台
  1. 设备调试
    点击刚刚创建好的设备,调试,会出现一个虚拟下发设备命令的界面,尝试发一个字符串给设备吧。
    初探腾讯云物联网开发平台

查看设备日志,可以看到刚刚下发的命令:

初探腾讯云物联网开发平台

虚拟设备调试功能,点击进去,可以看到有一个虚拟设备状态上报的控制面板,而且有一个二维码可以模拟一个小程序,接收设备上报数据。不过,由于自定义产品无法自动生成一个小程序界面,所以我们重新创建一个智能灯的模板产品,然后尝试一下:
同样的,创建一个产品:

初探腾讯云物联网开发平台

点击进入虚拟设备:

初探腾讯云物联网开发平台

手机小程序:

初探腾讯云物联网开发平台
  1. 数据同步
    该功能是用于将设备的上线下线状态信息,和设备上报数据信息,通过http post的方式,推送给你自己的服务。

我使用go语言简单做了一个http的服务,并部署在云端服务器上面,将url配置到腾讯云平台:

初探腾讯云物联网开发平台
image.png

由于虚拟设备无法支持该功能,所以我们要跑一个c语言的脚本,跟着说明页面做一遍即可,刚好复用上我们创建的智能灯的产品。
https://cloud.tencent.com/document/product/1081/34744

运行后,可以看到我们云端的日志,打印出设备的推送数据了。

初探腾讯云物联网开发平台

Go测试脚本参考:

package main

import "github.com/gin-gonic/gin"
import "fmt"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.POST("/data", func(c *gin.Context) {
        buf := make([]byte, 1024)
        n, _ := c.Request.Body.Read(buf)
        fmt.Println(string(buf[0:n]))
        c.JSON(200, gin.H{
            "message": "success",
        })
    })
    r.Run(":9080") // listen and serve on 0.0.0.0:9080
}

至此,整条设备上行链路已经通了。

后记

刚刚使用的数据同步服务,其源头是使用了iot-hub的规则引擎。进入规则引擎管理页面,可以看到创建了4条规则:

初探腾讯云物联网开发平台

进入其中一个,看到推送的http url即我们刚刚配置的数据同步服务的url:

初探腾讯云物联网开发平台