物联网实践教程(终章):微信小程序结合OneNET平台MQTT实现51 STM32单片机智能控制与温度等数据实时显示【微信小程序篇】_stm32与微信小程序
官方说明在只要弄懂了这一个调用方法,其他的也都会了,所有调用几乎都是这样这个是获取最新物模型数据,记得更改为你自己的信息// 这里应替换为用户的实际鉴权信息header: {},// 更新设备状态信息数据});},console.log("设备状态信息请求失败");// 处理请求失败的情况});这段 JavaScript 代码是微信小程序中的一个函数,它用于向OneNET平台发送HTTP GET请
这个不同于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请求来获取已连接设备的状态历史信息。下面分部分进行详细解释:
-
fetchDeviceStatus 函数:
- 这是在微信小程序页面对象中定义的一个方法,其名称为
fetchDeviceStatus
。 - 它被设计为调用 OneNET 的 RESTful API,获取特定设备的状态历史数据。
- 这是在微信小程序页面对象中定义的一个方法,其名称为
-
鉴权信息(authInfo):
authInfo
是一个字符串,包含通过 HTTP 请求头发送给 OneNET 的鉴权信息。- 通常这里包含 API 版本、用户标识、过期时间、请求方法和签名等信息。
- 鉴权信息用于验证请求的合法性,确保是有权访问该API的用户发起的请求。
- 出于教程示例的目的,这里的鉴权信息应被读者替换为他们自己的有效信息。
-
wx.request:
wx.request
是微信小程序提供的网络请求API,用于发起网络请求。- 该函数接收一个对象,其中包含进行HTTP请求所需的各种参数,如URL、方法、头部信息等。
-
请求配置:
url
指明了向哪个地址发送请求。这里是 OneNET 的API端点,用于获取设备状态历史信息。method
设置请求的 HTTP 方法,这里为 “GET”。header
包含发送到服务器的头部信息,这里主要传递Authorization
来认证请求。
-
发送请求并处理响应:
success
和fail
是请求成功或失败时执行的回调函数。- 在
success
回调中,通过this.setData
更新小程序页面的deviceStatus
数据,即将服务器返回的数据设置到页面数据上,从而可以在页面上展示这些信息。 - 如果请求失败,
fail
回调将执行,通常这里会打印错误信息到控制台,可以在这里处理错误,比如更新UI提示用户请求失败。
-
请求参数:
- 请求的URL中包含的查询参数(
product_id
,device_name
,start_time
,end_time
,limit
)用于指定想要查询的设备状态信息。 product_id
和device_name
分别指定产品ID和设备名。start_time
和end_time
定义了查询状态的时间范围。limit
表示返回结果的数量限制,这里设置为1
表示只获取最新的一个状态数据。
- 请求的URL中包含的查询参数(
请注意,实际使用时需要确保所有参数都是正确的,尤其是鉴权信息,它需要替换为有效的凭据才能让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平台,以设置特定设备的属性值。下面是对该方法的详细解释:
-
setOnenetData 方法:
- 此方法接受一个参数
ledValue
,这个参数代表需要设置给设备LED属性的值。
- 此方法接受一个参数
-
鉴权信息(authInfo):
authInfo
是一个字符串,包含了API鉴权信息,一般包括API版本、资源标识、过期时间、加密方法和签名。- 请求时使用HTTP头
Authorization
传递鉴权信息进行身份验证,保证请求安全性。 - 这个示例中的鉴权信息需要用实际有效的信息替换。
-
wx.request 方法:
wx.request
是微信小程序用来发起网络请求的API。- 通过传入一组参数配置,定义了如何向服务器发送请求。
-
请求配置:
url
指明了向哪个地址发送请求,这里是OneNET的API端点,用于设置设备属性。method
表明这是一个POST请求,用于向服务器提交数据。header
设置HTTP头部信息,在这种情况下是包含Authorization
的鉴权信息。
-
发送数据:
data
对象中包含具体要发送的数据。product_id
和device_name
指定了哪个产品下的哪个设备需要设置属性。params
是一个对象,其中的“LED”键对应设备的属性名,“LED”键的值就是传入setOnenetData
方法的ledValue
参数,它表示用来设置设备的LED属性的值。
-
发送请求:
wx.request
发出请求,但在这段代码里,没有定义回调函数来处理响应。- 实际使用应加上
success
和fail
回调函数,用于处理请求成功时返回的数据或请求失败时的错误信息。
-
注意事项:
- 在编写实际代码时,除了替换示例中的
authInfo
,还需确保product_id
和device_name
与你要控制的设备相匹配。 - 同样,传给OneNET平台的参数(如LED的状态值)应该满足平台及设备端的预定协议,以确保设备能正确理解和响应。
- 在编写实际代码时,除了替换示例中的
这个setOnenetData
方法允许微信小程序与OneNET平台进行交互,实现对物联网设备的远程控制。
资源包下载
https://pan.baidu.com/s/15iw7kzn4GMUKP3g8809PUA?pwd=jq91
结束语
在这个教程的旅程中,我们一起跨越了从硬件的细节世界到云端的数据流,最终触达了用户手中的微信小程序界面,实现了一个物联网系统的全栈开发。感谢您的陪伴和努力,希望通过这些章节的学习,您能获得宝贵的实战经验和深刻的理解。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)