微信小程序连接阿里云物联网平台操控设备(IOT)三

文章导航:
微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云
微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一)
微信小程序连接阿里云物联网平台操控设备(IOT)三 微信小程序开发(二)


前两篇,我们已经对设备进行上云操作并且编写了用于访问阿里云物联网平台的云端API的sdk。这一篇我们将使用我们编写好的sdk来访问阿里云物联网平台的云端API。以此来实现获取设备信息,并调用我们第一篇中为设备添加的服务,实现对设备发送指令。

微信小程序开发(二)

阿里云物联网平台的云端API

我们可以在阿里云物联网平台官方文档中查看到云端API的列表。此次示例主要使用QueryDevicePropertyStatus(获取设备属性快照)和InvokeThingService(调用设备服务)两个接口来进行演示。

激活设备

如果不进行设备激活是无法获取设备状态的。前面在设备上云时并未激活设备。设备激活是指设备首次通过MQTT通道或者HTTPS通道连接阿里云物联网平台。激活后的设备就会显示离线。具体设备接入可参考官方文档。有多种语言的接入方式可供选择。


我使用c#语言搭建了一个.net core跨平台程序模拟了一个设备进行了激活,效果如下。

连接物联网平台获取设备属性值

1.查看API需要的参数

2.用之前第二篇封装好的sdk访问物联网平台云端API获取设备的属性值。因为篇幅关系我就不讲全部源码贴出了。需要源码的小伙伴请点击链接下载源码

var that = this
    aliSdk.request({
        Action: "QueryDevicePropertyStatus",
        ProductKey: app.globalData.productKey,
        DeviceName: app.globalData.deviceName
      }, {
        method: "POST"
      },
      (res) => {
        console.log("success")
        console.log(res) //查看返回数据
        if (res.data.Code) {
          console.log(res.data.ErrorMessage)
          wx.showToast({
            title: '设备连接失败',
            icon: 'none',
            duration: 1000,
            complete: () => {}
          })
          that.setPropertyData(null)
        } else {
          that.setPropertyData(res.data.Data.List.PropertyStatusInfo)
        }
      },
      (res) => {
        console.log("fail")
        wx.showToast({
          title: '网络连接失败',
          icon: 'none',
          duration: 1000,
          complete: () => {}
        })
        this.setPropertyData(null)
      },
      (res) => {
        console.log("complete")
      })

可以看到物联网平台返回的Response结果如下。

界面展示从云端API获取到的设备数据。

调用设备服务,通知设备打开设备或关闭设备

1.查看调用API所用参数

2.使用sdk调用我们第一篇为设备设定的服务。

var that = this
    //防止重复点击
    that.setData({
      buttonDisabled: true
    })
    
    aliSdk.request({
        Action: "InvokeThingService",
        ProductKey: app.globalData.productKey,
        DeviceName: app.globalData.deviceName,
        Identifier: that.data.openedDevice ? "CloseDevice" : "OpenDevice",
        Args: "{}" //无参服务,所以传空
      }, {
        method: "POST"
      },
      (res) => {
        console.log("success")
        console.log(res) //查看返回response数据
        that.setData({
          openedDevice: !that.data.openedDevice
        })
      },
      (res) => {
        console.log("fail")
        wx.showToast({
          title: '网络连接失败',
          icon: 'none',
          duration: 1000,
          complete: () => {}
        })
      },
      (res) => {
        console.log("complete")
        that.setData({
          buttonDisabled: false
        })
      })

物联网平台返回的Response结果如下,可以看到success为true就是调用成功。

下面我们到物联网平台看一下日志是否成功调用该服务。

点击MessageID可以看到具体信息

调用成功,如果设备连接了订阅了物联网平台的Topic,那么平台会自动下发此条命令给设备,设备就可以运行啦。请大家动动手指为我点个赞,全套小程序源码放在文章顶部资源里了。
至此微信小程序连接阿里云物联网平台获取设备数据和操控设备就已经实现了。阿里云物联网平台还有很多强大功能,比如内部RDS数据流转、服务端订阅数据等等,在这我就不给大家一一演示了,如果大家感兴趣可以尝试自己搞一下。

顺便给我们的公司官网做做广告,有智能软硬件需求或者全息显示需求的小伙伴可以看看。

文章导航:
微信小程序连接阿里云物联网平台操控设备(IOT)一 设备上云
微信小程序连接阿里云物联网平台操控设备(IOT)二 微信小程序开发(一)
微信小程序连接阿里云物联网平台操控设备(IOT)三 微信小程序开发(二)

发布了5 篇原创文章 · 获赞 4 · 访问量 1884

猜你喜欢

转载自blog.csdn.net/weixin_42852371/article/details/105083684