首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

微信小程序连接新版Onenet,API。

  • 25-04-24 11:21
  • 2080
  • 7842
blog.csdn.net

一、下载token v2.0

token v2.0链接

链接:https://pan.baidu.com/s/10UqLSNt0vX1Cpi5hBn-K9A 
提取码:bdft

 二、去onenet获取会用到的参数

1.先登入onenet获取、用户ID、用户Accesskey

(1).右上角访问权限。

 

 (2)进入访问权限之后在记事本上记下用户ID和用户Accesskey。

(3)在设备管理页面记下设备ID和产品ID。

2.打开下载的token,填写下面的信息。生成:用户token。

res:userid/用户ID

et:是截至时间戳可以去下面的连接自己生成也可以复制我的 1742807732      

时间戳生成链接:时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu)

key : 用户Accesskey

method:sha1

version:不用动

将以上信息填入token生成工具,并将其复制到记事本。

三、微信小程序

    authInfo: "用户token",  

    productId: "产品id",  

    deviceName: "设备名称",       

大家只用改这三个数值。

1.在页面的.js文件中写入来读取onenet中的数据。

  1. Page({  
  2.   // 页面初始数据  
  3.   data: {  
  4.     onenetData: [],       // 用来存储设备属性值的数组  
  5.     deviceStatus: [],     // 用来存储设备状态信息的数组  
  6.   },  
  7.   config: {  
  8.     authInfo: "用户token",  
  9.     productId: "xxxxx",  //产品id
  10.     deviceName: "xxxxx",       //设备名称
  11.     apiBaseUrl: "https://iot-api.heclouds.com",  
  12.     startTime: 0,  
  13.     endTime: 0,  
  14.     limit: 1  
  15.   },  
  16.   
  17. // 生命周期函数--监听页面加载  
  18. onLoad(options) {  
  19.   // 获取动态时间戳  
  20.   const { startTime, endTime } = this.getTimestamps();  
  21.     
  22.   // 更新config中的时间戳  
  23.   this.config.startTime = startTime;  
  24.   this.config.endTime = endTime;  
  25.     
  26.   // 获取设备数据和状态  
  27.   this.fetchOnenetData();  
  28.   this.fetchDeviceStatus();  
  29.   
  30.   // 使用setInterval时,确保this指向正确,并定时更新设备状态和数据  
  31.   setInterval(() => {  
  32.     const { startTime, endTime } = this.getTimestamps();  
  33.     this.config.startTime = startTime;  
  34.     this.config.endTime = endTime;  
  35.     this.fetchDeviceStatus();  
  36.     this.fetchOnenetData();  
  37.   }, 3000); // 每分钟更新一次,你可以根据需要调整时间间隔  
  38. },
  39.   // 计算时间戳的函数  
  40.  getTimestamps() {  
  41.   const now = new Date().getTime();  
  42.   const oneWeekAgo = now - 7 * 24 * 60 * 60 * 1000; // 一周前的时间戳  
  43.   const currentTime = now; // 当前时间的时间戳(虽然不一定需要,但可以用于其他目的)  
  44.   return {  
  45.     startTime: oneWeekAgo,  
  46.     endTime: currentTime // 如果你需要精确到一天的结束,你可以加上一天的时间戳,但这里我们只用当前时间作为结束时间  
  47.   };  
  48. },
  49.   // 获取mqtt设备最新属性值  
  50.   fetchOnenetData() {  
  51.     const { apiBaseUrl, productId, deviceName, authInfo } = this.config;  
  52.     wx.request({  
  53.       url: `${apiBaseUrl}/thingmodel/query-device-property?product_id=${productId}&device_name=${deviceName}`,  
  54.       method: "GET",  
  55.       header: {  
  56.         'Authorization': authInfo  
  57.       },  
  58.       success: (res) => {  
  59.         // 更新设备属性值数据  
  60.         this.setData({  
  61.           onenetData: res.data  
  62.         });  
  63.       },  
  64.       fail: (err) => {  
  65.         console.log("OneNET数据请求失败");  
  66.         console.error(err); // 处理请求失败的情况  
  67.       }  
  68.     });  
  69.   },  
  70.   
  71.   // 获取设备状态历史信息  
  72.   fetchDeviceStatus() {  
  73.     const { apiBaseUrl, productId, deviceName, authInfo, startTime, endTime, limit } = this.config;  
  74.     wx.request({  
  75.       url: `${apiBaseUrl}/device/status-history?product_id=${productId}&device_name=${deviceName}&start_time=${startTime}&end_time=${endTime}&limit=${limit}`,  
  76.       method: "GET",  
  77.       header: {  
  78.         'Authorization': authInfo  
  79.       },  
  80.       success: (res) => {  
  81.         // 更新设备状态信息数据  
  82.         this.setData({  
  83.           deviceStatus: res.data  
  84.         });  
  85.       },  
  86.       fail: (err) => {  
  87.         console.log("设备状态信息请求失败");  
  88.         console.error(err); // 处理请求失败的情况  
  89.       }  
  90.     });  
  91.   },  
  92. // 示例:当某个事件触发时调用上报函数
  93. onSomeEvent(e) {
  94.   const newValue = e.detail.value;  // 获取新的属性值
  95.   console.log('准备上报的属性值:', newValue);
  96.   this.reportOnenetData(newValue); // 上报设备属性 
  97. }
  98. })

2.找到我们的数据格式。

3.在.wxml文件中写入代码。

  1. class="data-wrapper">
  2. class="data">
  3. class="data-left">
  4. class="data-logo" src="/static/image/temp .png">
  5. class="data-title">{{onenetData.data[6].name}}
  6. class="data-value">{{onenetData.data[6].value}}度
  7. class="data">
  8. class="data-left">
  9. class="data-logo" src="/static/image/湿度.png">
  10. class="data-title">{{onenetData.data[3].name}}
  11. class="data-value">{{onenetData.data[3].value}}%

4.读取到我们的数据。

 

以上就是通过api的方式读取onenet中数据的流程,点赞、收藏、关注、私信源码,单片机嵌入式设计问题也可以私信回答,接毕设和单片机嵌入式设计

 

 

 

 

 

注:本文转载自blog.csdn.net的岁岁安,岁岁安的文章"https://blog.csdn.net/2402_83581955/article/details/142925672"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

119
小程序
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top