一、下载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中的数据。
- Page({
-
- // 页面初始数据
-
- data: {
-
- onenetData: [], // 用来存储设备属性值的数组
-
- deviceStatus: [], // 用来存储设备状态信息的数组
-
- },
-
- config: {
-
- authInfo: "用户token",
-
- productId: "xxxxx", //产品id
-
- deviceName: "xxxxx", //设备名称
-
- apiBaseUrl: "https://iot-api.heclouds.com",
-
- startTime: 0,
-
- endTime: 0,
-
- limit: 1
-
- },
-
-
-
- // 生命周期函数--监听页面加载
-
- onLoad(options) {
-
- // 获取动态时间戳
-
- const { startTime, endTime } = this.getTimestamps();
-
-
-
- // 更新config中的时间戳
-
- this.config.startTime = startTime;
-
- this.config.endTime = endTime;
-
-
-
- // 获取设备数据和状态
-
- this.fetchOnenetData();
-
- this.fetchDeviceStatus();
-
-
-
- // 使用setInterval时,确保this指向正确,并定时更新设备状态和数据
-
- setInterval(() => {
-
- const { startTime, endTime } = this.getTimestamps();
-
- this.config.startTime = startTime;
-
- this.config.endTime = endTime;
-
- this.fetchDeviceStatus();
-
- this.fetchOnenetData();
-
- }, 3000); // 每分钟更新一次,你可以根据需要调整时间间隔
-
- },
-
- // 计算时间戳的函数
-
- getTimestamps() {
-
- const now = new Date().getTime();
-
- const oneWeekAgo = now - 7 * 24 * 60 * 60 * 1000; // 一周前的时间戳
-
- const currentTime = now; // 当前时间的时间戳(虽然不一定需要,但可以用于其他目的)
-
- return {
-
- startTime: oneWeekAgo,
-
- endTime: currentTime // 如果你需要精确到一天的结束,你可以加上一天的时间戳,但这里我们只用当前时间作为结束时间
-
- };
-
- },
-
- // 获取mqtt设备最新属性值
-
- fetchOnenetData() {
-
- const { apiBaseUrl, productId, deviceName, authInfo } = this.config;
-
- wx.request({
-
- url: `${apiBaseUrl}/thingmodel/query-device-property?product_id=${productId}&device_name=${deviceName}`,
-
- method: "GET",
-
- header: {
-
- 'Authorization': authInfo
-
- },
-
- success: (res) => {
-
- // 更新设备属性值数据
-
- this.setData({
-
- onenetData: res.data
-
- });
-
- },
-
- fail: (err) => {
-
- console.log("OneNET数据请求失败");
-
- console.error(err); // 处理请求失败的情况
-
- }
-
- });
-
- },
-
-
-
- // 获取设备状态历史信息
-
- fetchDeviceStatus() {
-
- const { apiBaseUrl, productId, deviceName, authInfo, startTime, endTime, limit } = this.config;
-
- wx.request({
-
- url: `${apiBaseUrl}/device/status-history?product_id=${productId}&device_name=${deviceName}&start_time=${startTime}&end_time=${endTime}&limit=${limit}`,
-
- method: "GET",
-
- header: {
-
- 'Authorization': authInfo
-
- },
-
- success: (res) => {
-
- // 更新设备状态信息数据
-
- this.setData({
-
- deviceStatus: res.data
-
- });
-
- },
-
- fail: (err) => {
-
- console.log("设备状态信息请求失败");
-
- console.error(err); // 处理请求失败的情况
-
- }
-
- });
-
- },
-
- // 示例:当某个事件触发时调用上报函数
-
- onSomeEvent(e) {
-
- const newValue = e.detail.value; // 获取新的属性值
-
- console.log('准备上报的属性值:', newValue);
-
- this.reportOnenetData(newValue); // 上报设备属性
-
- }
-
- })
2.找到我们的数据格式。
3.在.wxml文件中写入代码。
-
class="data-wrapper"> -
class="data"> -
class="data-left"> -
class="data-logo" src="/static/image/temp .png"> -
class="data-title">{{onenetData.data[6].name}} -
-
class="data-value">{{onenetData.data[6].value}}度 -
-
-
class="data"> -
class="data-left"> -
class="data-logo" src="/static/image/湿度.png"> -
class="data-title">{{onenetData.data[3].name}} -
-
class="data-value">{{onenetData.data[3].value}}% -
-
4.读取到我们的数据。
以上就是通过api的方式读取onenet中数据的流程,点赞、收藏、关注、私信源码,单片机嵌入式设计问题也可以私信回答,接毕设和单片机嵌入式设计
评论记录:
回复评论: