找了好久没有找到或者是我搜索的关键词不对,想问一下怎样将微信小程序输入的上下限数据通过云平台下发到硬件进行范围控制,有没有建议哇,非常感谢解答
不知道你这个问题是否已经解决, 如果还没有解决的话:题外话:欢迎大家微信搜索#民谣嗑学家 ,关注我的个人公众号,我是一名爱代码,爱民谣,爱生活的业余吉他爱好者的Java 程序员,致力于向全栈发展的全能程序员。有想跟作者交朋友的可以关注我公众号,获取我的联系方式,我们可以一起学习,一起进步,业余时间可以一起娱乐娱乐,哈哈^_^。
对于实现硬件范围控制的问题,需要通过微信小程序云开发平台来实现。
首先,在微信小程序云开发控制台中创建一个云函数,用于接收传递来的上下限数据,并将数据存储到云数据库中。可以使用以下代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 数据库操作对象
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
try {
// 读取传递过来的上下限数据
const { deviceId, upperLimit, lowerLimit } = event
// 将数据插入到数据库中
await db.collection('device').add({
data: {
deviceId,
upperLimit,
lowerLimit
}
})
return {
success: true,
message: '数据保存成功!'
}
} catch (err) {
console.error('err', err)
return {
success: false,
message: '数据保存失败!'
}
}
}
然后,在小程序客户端中编写发送请求到云函数的代码。可以使用以下代码:
// 发送请求到云函数,保存数据到数据库中
wx.cloud.callFunction({
name: 'saveDeviceLimit',
// 传递上下限数据
data: {
deviceId: '123456',
upperLimit: 80,
lowerLimit: 20
},
success: res => {
console.log(res)
},
fail: err => {
console.error(err)
}
})
需要注意的是,需要在小程序开发者工具中开启云开发,并在小程序客户端中授权访问云数据库。
最后,在小程序客户端中通过监听实际硬件数值变化,并与上下限进行比较的方式,来实现硬件的范围控制。可以使用以下代码:
// 实现硬件范围控制
wx.onSocketMessage(res => {
const data = JSON.parse(res.data)
const { value } = data
// 读取数据库中的上下限数据
wx.cloud.callFunction({
name: 'getDeviceLimit',
data: {
deviceId: '123456'
},
success: res => {
const { upperLimit, lowerLimit } = res.result.data
// 比较实际数值与上下限
if (value > upperLimit) {
// 超过上限,执行控制操作
console.log('超过上限,执行控制操作')
} else if (value < lowerLimit) {
// 低于下限,执行控制操作
console.log('低于下限,执行控制操作')
}
},
fail: err => {
console.error(err)
}
})
})
需要注意的是,需要在云函数中编写获取数据库中上下限数据的代码,并将其返回给小程序客户端。可以使用以下代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 数据库操作对象
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
try {
// 读取传递过来的设备 ID
const { deviceId } = event
// 查询数据库中的上下限数据
const { data } = await db.collection('device').where({
deviceId
}).get()
return {
success: true,
data: data[0]
}
} catch (err) {
console.error('err', err)
return {
success: false,
message: '数据查询失败!'
}
}
}
这样就可以实现在小程序中通过云平台下发多个上下限数据以实现硬件范围控制了。