这个不同于Token1.0使用
在此之前我一直找不到这个软件,在网上搜免费的东西别人还要收费,最后在OneNET官方技术支持找到了,我这里就免费把连接放出来,顺便给你们那个官方的网址
服务与技术支持
Token2.0计算
生成的Token就是微信小程序里面要用的了
例如 const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371&method=sha1&sign=%2BVN%2BgKOork6IMDt4ZfaSrag%3D";
在这里插入图片描述

介绍如何在微信小程序调用OneNET的API(GET请求)

官方说明在

在这里插入图片描述

只要弄懂了这一个调用方法,其他的也都会了,所有调用几乎都是这样
这个是获取最新物模型数据,记得更改为你自己的信息

fetchDeviceStatus() {
    // 这里应替换为用户的实际鉴权信息
    const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371&methodign=%2BVNoDSm%2BgKOork6IMDt4ZfaSrag%3D"; 
    wx.request({
      url: 'https://iot-api.heclouds.com/device/status-history?product\_id=05Dy8U26rg&device\_name=test&start\_time=1701090060000&end\_time=1703511540000&limit=1',
      method: "GET",
      header: {
        'Authorization': authInfo
      },
      success: (res) => {
        // 更新设备状态信息数据
        this.setData({
          deviceStatus: res.data
        });
      },
      fail: (err) => {
        console.log("设备状态信息请求失败");
        console.error(err); // 处理请求失败的情况
      }
    });
  }

这段 JavaScript 代码是微信小程序中的一个函数,它用于向OneNET平台发送HTTP GET请求来获取已连接设备的状态历史信息。下面分部分进行详细解释:

  1. fetchDeviceStatus 函数

    • 这是在微信小程序页面对象中定义的一个方法,其名称为 fetchDeviceStatus
    • 它被设计为调用 OneNET 的 RESTful API,获取特定设备的状态历史数据。
  2. 鉴权信息(authInfo)

    • authInfo 是一个字符串,包含通过 HTTP 请求头发送给 OneNET 的鉴权信息。
    • 通常这里包含 API 版本、用户标识、过期时间、请求方法和签名等信息。
    • 鉴权信息用于验证请求的合法性,确保是有权访问该API的用户发起的请求。
    • 出于教程示例的目的,这里的鉴权信息应被读者替换为他们自己的有效信息。
  3. wx.request

    • wx.request 是微信小程序提供的网络请求API,用于发起网络请求。
    • 该函数接收一个对象,其中包含进行HTTP请求所需的各种参数,如URL、方法、头部信息等。
  4. 请求配置

    • url 指明了向哪个地址发送请求。这里是 OneNET 的API端点,用于获取设备状态历史信息。
    • method 设置请求的 HTTP 方法,这里为 “GET”。
    • header 包含发送到服务器的头部信息,这里主要传递 Authorization 来认证请求。
  5. 发送请求并处理响应

    • successfail 是请求成功或失败时执行的回调函数。
    • success 回调中,通过 this.setData 更新小程序页面的 deviceStatus 数据,即将服务器返回的数据设置到页面数据上,从而可以在页面上展示这些信息。
    • 如果请求失败,fail 回调将执行,通常这里会打印错误信息到控制台,可以在这里处理错误,比如更新UI提示用户请求失败。
  6. 请求参数

    • 请求的URL中包含的查询参数(product_id, device_name, start_time, end_time, limit)用于指定想要查询的设备状态信息。
    • product_iddevice_name 分别指定产品ID和设备名。
    • start_timeend_time定义了查询状态的时间范围。
    • limit 表示返回结果的数量限制,这里设置为1表示只获取最新的一个状态数据。

请注意,实际使用时需要确保所有参数都是正确的,尤其是鉴权信息,它需要替换为有效的凭据才能让API请求成功。如果请求失败,要检查网络状态、URL地址、API端点参数和鉴权信息是否正确。

介绍如何在微信小程序调用OneNET的API(POST请求)

这里是类同与下发指令的代码 记得更改为你自己的信息

setOnenetData(ledValue) {
    // 以下数据和URL应根据实际情况进行修改
    const authInfo = "version=2022-05-01&res=userid%2F341108&et=1733816371ha1&sign=%2BVNoDSm%2BgKOork6IMDt4ZfaSrag%3D"; // 替换为用户的实际鉴权信息 
    wx.request({
      url: 'https://iot-api.heclouds.com/thingmodel/set-device-property',
      method: 'POST',
      header: {
        'Authorization': authInfo,
      },
      data: {
        "product\_id": "05Dy8U26rg",
        "device\_name": "test",
        "params": {
          "LED": ledValue // 使用传入的ledValue设置LED的状态
        }
      }
    });
  }

这段代码是微信小程序中的一个方法,名为setOnenetData,它用于发送HTTP POST请求到OneNET平台,以设置特定设备的属性值。下面是对该方法的详细解释:

  1. setOnenetData 方法

    • 此方法接受一个参数ledValue,这个参数代表需要设置给设备LED属性的值。
  2. 鉴权信息(authInfo)

    • authInfo是一个字符串,包含了API鉴权信息,一般包括API版本、资源标识、过期时间、加密方法和签名。
    • 请求时使用HTTP头Authorization传递鉴权信息进行身份验证,保证请求安全性。
    • 这个示例中的鉴权信息需要用实际有效的信息替换。
  3. wx.request 方法

    • wx.request 是微信小程序用来发起网络请求的API。
    • 通过传入一组参数配置,定义了如何向服务器发送请求。
  4. 请求配置

    • url 指明了向哪个地址发送请求,这里是OneNET的API端点,用于设置设备属性。
    • method 表明这是一个POST请求,用于向服务器提交数据。
    • header 设置HTTP头部信息,在这种情况下是包含Authorization的鉴权信息。
  5. 发送数据

    • data 对象中包含具体要发送的数据。
    • product_iddevice_name 指定了哪个产品下的哪个设备需要设置属性。
    • params 是一个对象,其中的“LED”键对应设备的属性名,“LED”键的值就是传入setOnenetData方法的ledValue参数,它表示用来设置设备的LED属性的值。
  6. 发送请求

    • wx.request 发出请求,但在这段代码里,没有定义回调函数来处理响应。
    • 实际使用应加上successfail回调函数,用于处理请求成功时返回的数据或请求失败时的错误信息。
  7. 注意事项

    • 在编写实际代码时,除了替换示例中的authInfo,还需确保product_iddevice_name与你要控制的设备相匹配。
    • 同样,传给OneNET平台的参数(如LED的状态值)应该满足平台及设备端的预定协议,以确保设备能正确理解和响应。

这个setOnenetData方法允许微信小程序与OneNET平台进行交互,实现对物联网设备的远程控制。

资源包下载

资源包下载

https://pan.baidu.com/s/15iw7kzn4GMUKP3g8809PUA?pwd=jq91

结束语

在这个教程的旅程中,我们一起跨越了从硬件的细节世界到云端的数据流,最终触达了用户手中的微信小程序界面,实现了一个物联网系统的全栈开发。感谢您的陪伴和努力,希望通过这些章节的学习,您能获得宝贵的实战经验和深刻的理解。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐