<template>
<view class="wrap">
<view class="dev-area">
<view style="width: 100%;padding: 20px;font-size: 24px;font-weight: bold;">实时数据监测</view>
<view class="dev-cart">
<view class="">
<view class="dev-name">土壤湿度</view>
<image class="dev-logo" src="../../static/temp.png" mode=""></image>
</view>
<view class="dev-data">{{(datas.Intelligent1)}} ℃</view>
</view>
<view class="dev-cart">
<view class="">
<view class="dev-name">人体检测</view>
<image class="dev-logo" src="../../static/shuiwei.png" mode=""></image>
</view>
<view class="dev-data">{{datas.HC}} Pa</view>
</view>
<view class="dev-cart">
<view class="">
<view class="dev-name">天气</view>
<image class="dev-logo" src="../../static/qiti.png" mode=""></image>
</view>
<view class="dev-data">{{ datas.rain >= 0 && datas.PRESSURE <= 100? '闲置' : (datas.PRESSURE > 100 && datas.PRESSURE <= 200? "已穿鞋" : (datas.PRESSURE > 200? '行走' : 0)) }}</view>
</view>
<view class="dev-cart">
<view class="">
<view class="dev-name">光照强度</view>
<image class="dev-logo" src="../../static/gz.png" mode=""></image>
</view>
<view class="dev-data">{{datas.LDR1}} %</view>
</view>
<!-- <view style="width: 100%;padding: 20px;font-size: 24px;font-weight: bold;"></view> -->
<!-- <view class="dev-cart">
<view class="">
<view class="dev-name">喂食状态</view>
<image class="dev-logo" src="../../static/qiti.png" mode=""></image>
</view>
<view class="dev-data">{{datas.FEED111START==1? '正在喂食' :'暂停'}} </view>
</view>
<view class="dev-cart">
<view class="">
<view class="dev-name">报警状态</view>
<image class="dev-logo" src="../../static/led.png" mode=""></image>
</view>
<view class="dev-data">{{datas.FEED111ALARM==1? '报警' :'关闭'}} </view>
</view> -->
<view style="width: 100%;padding: 20px;font-size: 24px;font-weight: bold;">远程控制</view>
<button :type="active? 'primary' : 'default'" @click="autoMode('aaa','mode')">自动模式</button>
<!--<button :type="active? 'default' : 'danger'" @click="autoMode('ddd','mode')">退出手动</button>-->
<button :type="active? 'default' : 'primary'" @click="autoMode('bbb','mode')">手动模式</button>
<!-- <view class="dev-cart">
<view class="" style="width: 200px;">
<view class="dev-name">喂食量:{{datas.FEED111LIM}}g</view>
<image class="dev-logo" src="../../static/sd.png" mode=""></image>
</view>
<input class="dev-data" v-model="FEED111LIM" placeholder="输入" />
<button class="small-button" @click="setBfyVal('FEED111LIM','s')">提交</button>
</view>
<view class="dev-cart">
<view class="" style="width: 200px;">
<view class="dev-name">定时喂食:{{datas.FEED111TIME}}</view>
<image class="dev-logo" src="../../static/speed.png" mode=""></image>
</view>
<picker mode="time" :value="FEED111TIME2" start="09:00" end="17:30" @change="bindTimeChange">
<view style="font-size: 12px;">{{FEED111TIME2?FEED111TIME2:'选择时间'}}</view>
</picker>
<button class="small-button" @click="setBfyVal('FEED111TIME','s')">提交</button>
</view> -->
<!-- <view class="dev-cart">
<view class="" style="width: 200px;">
<view class="dev-name">光照阈值:{{datas.BARN111lightLIM}}</view>
<image class="dev-logo" src="../../static/gz.png" mode=""></image>
</view>
<input class="dev-data" v-model="BARN111lightLIM" placeholder="输入" />
<button class="small-button" @click="setBfyVal('BARN111lightLIM','s')">提交</button>
</view>
<view class="dev-cart">
<view class="" style="width: 200px;">
<view class="dev-name">气体阈值:{{datas.BARN111gasLIM}}</view>
<image class="dev-logo" src="../../static/qiti.png" mode=""></image>
</view>
<input class="dev-data" v-model="BARN111gasLIM" placeholder="输入" />
<button class="small-button" @click="setBfyVal('BARN111gasLIM','s')">提交</button>
</view> -->
<!--</view>
<view v-if="!active">
<view style="width: 100%;padding: 20px;font-size: 24px;font-weight: bold;">灯光控制</view>
<view class="dev-cart" style="width: 640rpx;">
<button class="small-button" style="background-color: #2b9939;" @click="autoMode('LEDN')">开启</button>
<button v-else class="small-button" style="background-color: #999192;"
@click="autoMode('LEDF')">开启</button>
<button class="small-button" style="background-color: #2b9939;" @click="autoMode('LEDF')">关闭</button>
<button v-else class="small-button" style="background-color: #999192;"
@click="setBfyVal2('BARN111CONT',1)">关闭</button>
</view>
<button v-if="datas.BARN111CONT==2" class="small-button" style="background-color: #2b9939;" @click="setBfyVal2('BARN111CONT',2)">强制关闭</button>
<button v-else class="small-button" style="background-color: #999192;" @click="setBfyVal2('BARN111CONT',2)">强制关闭</button>
<view style="width: 100%;padding: 20px;font-size: 24px;font-weight: bold;">水泵控制</view>
<view class="dev-cart" style="width: 640rpx;">
<button class="small-button" style="background-color: #2b9939;" @click="autoMode('BON')">开启</button>
<button v-else class="small-button" style="background-color: #999192;"
@click="autoMode('LEDF')">开启</button>
<button class="small-button" style="background-color: #2b9939;" @click="autoMode('BOFF')">关闭</button>
<button v-if="datas.BARN111CONT==0" class="small-button" style="background-color: #2b9939;"
@click="setBfyVal2('BARN111CONT',0)">开启</button>
<button v-else class="small-button" style="background-color: #999192;"
@click="setBfyVal2('BARN111CONT',0)">开启</button>
<button v-if="datas.BARN111CONT==1" class="small-button" style="background-color: #2b9939;"
@click="setBfyVal2('BARN111CONT',1)">关闭</button>
<button v-else class="small-button" style="background-color: #999192;"
@click="setBfyVal2('BARN111CONT',1)">关闭</button> -->
<view v-if="!active">
<!-- 灯光控制 -->
<view style="width: 100%; padding: 20px; font-size: 24px; font-weight: bold;">灯光控制</view>
<view class="dev-cart" style="width: 640rpx;">
<!-- 开启按钮逻辑 -->
<button v-if="lightOpenCondition" class="small-button" style="background-color: #2b9939;" @click="autoMode('LEDN')">开启</button>
<button v-else class="small-button" style="background-color: #999192;" @click="autoMode('LEDF')">开启</button>
<!-- 关闭按钮逻辑 -->
<button v-if="lightCloseCondition" class="small-button" style="background-color: #2b9939;" @click="autoMode('LEDF')">关闭</button>
<button v-else class="small-button" style="background-color: #999192;" @click="setBfyVal2('BARN111CONT',1)">关闭</button>
</view>
<!-- 强制关闭按钮逻辑 -->
<button v-if="datas.BARN111CONT === 2" class="small-button" style="background-color: #2b9939;" @click="setBfyVal2('BARN111CONT',2)">强制关闭</button>
<button v-else class="small-button" style="background-color: #999192;" @click="setBfyVal2('BARN111CONT',2)">强制关闭</button>
<!-- 水泵控制 -->
<view style="width: 100%; padding: 20px; font-size: 24px; font-weight: bold;">水泵控制</view>
<view class="dev-cart" style="width: 640rpx;">
<!-- 开启按钮逻辑 -->
<button v-if="pumpOpenCondition" class="small-button" style="background-color: #2b9939;" @click="autoMode('BON')">开启</button>
<button v-else class="small-button" style="background-color: #999192;" @click="autoMode('LEDF')">开启</button>
<!-- 关闭按钮逻辑 -->
<button v-if="pumpCloseCondition" class="small-button" style="background-color: #2b9939;" @click="autoMode('BOFF')">关闭</button>
<button v-if="datas.BARN111CONT === 0" class="small-button" style="background-color: #2b9939;" @click="setBfyVal2('BARN111CONT',0)">开启</button>
<button v-else class="small-button" style="background-color: #999192;" @click="setBfyVal2('BARN111CONT',0)">开启</button>
<button v-if="datas.BARN111CONT === 1" class="small-button" style="background-color: #2b9939;" @click="setBfyVal2('BARN111CONT',1)">关闭</button>
<button v-else class="small-button" style="background-color: #999192;" @click="setBfyVal2('BARN111CONT',1)">关闭</button>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
const {
createCommonToken
} = require('@/key.js')
export default {
data() {
return {
//active: 1,
productId: '799knCKRru',
deviceName: "test",
temp: '',
humi: '',
led: true,
bee: true,
//datas: {},
uid: 'a86461193caac133ec583a2dd6e5c8c3',
TUL004: '',
HUL004: '',
LUL004: '',
FEED111LIM: '',
FEED111TIME2: '',
FEED111TIME: '1000',
active: false,
datas: {
BARN111CONT: 0
},
// 新增灯光控制条件变量
lightOpenCondition: true,
lightCloseCondition: true,
// 新增水泵控制条件变量
pumpOpenCondition: true,
pumpCloseCondition: true
};
},
onLoad() {
const params = {
author_key: 'OkuBMchdHrZPKiGNt6kl2fUYSJ8UNbEiznFEArJt/OhmRUvWLKYoGJGE9BUITojxlqnB0cN61//gll6vFEtjauw==',
version: '2022-05-01',
user_id: '4053575',
product: this.productId,
device: this.deviceName,
}
this.token = createCommonToken(params);
this.fetchDevData();
setInterval(() => {
this.fetchDevData();
}, 3000)
},
// computed: {
// result() {
// if (this.datas.PRESSURE >= 0 && datas.PRESSURE <= 100) {
// return '闲置';
// } else if (this.datas.PRESSURE > 100 && this.datas.PRESSURE <= 200) {
// return '已穿上';
// } else if (this.datas.PRESSURE > 200) {
// return "行走";
// }
// }
// },
onShow() {},
methods: {
autoMode(param) {
// 自动模式方法逻辑
console.log('执行自动模式操作', param);
},
setBfyVal2(key, value) {
// 设置值方法逻辑
console.log('设置值操作', key, value);
this.datas[key] = value;
// autoMode(msg, mode) {
// if (mode == 'mode') {
// this.active = !this.active
// }
// wx.request({
// url: 'https://apis.bemfa.com/va/postJsonMsg', //api接口,详见接入文档
// method: "POST",
// data: {
// uid: this.uid,
// topic: "LED",
// type: 3,
// msg: msg
// },
// success(res) {
// console.log(res, 'kkkkkkkk')
// // that.fetchDevData();
// }
// })
// },
bindTimeChange(e) {
this.FEED111TIME2 = e.target.value;
this.FEED111TIME = e.target.value.replace(':', '');
},
fetchDevData() {
var that = this;
uni.request({
url: 'https://apis.bemfa.com/va/alltopic?uid=' + this.uid + "&type=3", //get接口,详见巴法云接入文档
data: {
uid: this.uid,
type: 3,
},
success(res) {
var dataArr = res.data.data;
var datas = {};
for (let obj of dataArr) {
datas[obj.topic] = obj.msg;
that.datas = datas;
}
}
})
},
setBfyVal(val, t) {
var that = this;
var msg = parseInt(this[val]);
if (t == 's') {
msg = msg + ''
}
wx.request({
url: 'https://apis.bemfa.com/va/postJsonMsg', //api接口,详见接入文档
method: "POST",
data: {
uid: this.uid,
topic: val,
type: 3,
msg: msg
},
success(res) {
console.log(res.data)
that.fetchDevData();
}
})
},
setBfyVal2(val, t) {
var that = this;
wx.request({
url: 'https://apis.bemfa.com/va/postJsonMsg', //api接口,详见接入文档
method: "POST",
data: {
uid: this.uid,
topic: val,
type: 3,
msg: t + ''
},
success(res) {
console.log(res.data)
that.fetchDevData();
}
})
},
setFlagVal(flag) {
var params = {};
flag = "" + flag;
params[flag] = parseInt(this[flag]);
uni.request({
url: 'https://iot-api.heclouds.com/thingmodel/set-device-property',
method: 'POST',
data: {
product_id: this.productId,
device_name: this.deviceName,
params: params
},
header: {
'authorization': this.token //自定义请求头信息
},
success: () => {
console.log('dantemp updated successfully:');
},
fail: (error) => {
console.error('Request failed:');
}
});
},
// onDANHUMISwitch(event) {
// console.log('Submitting dantemp:', this.dantemp); // 日志输出
// console.log(event.detail.value);
// let value = event.detail.value;
// uni.request({
// url: 'https://iot-api.heclouds.com/thingmodel/set-device-property', //仅为示例,并非真实接口地址。
// method: 'POST',
// data: {
// product_id: '799knCKRru',
// device_name: 'test',
// params: {
// "tar_humi": parseInt(this.danhumi)
// }
// },
// header: {
// 'authorization': this.token //自定义请求头信息
// },
// success: () => {
// console.log('danhumi updated successfully');
// },
// fail: (error) => {
// console.error('Request failed:', error);
// }
// });
// },
}
}
</script>
<style>
.zt {
background-color: #2b9939;
}
.wrap {
padding: 30rpx;
}
.dev-area {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.dev-cart {
height: 150rpx;
width: 320rpx;
border-radius: 30rpx;
margin-top: 30rpx;
display: flex;
justify-content: space-around;
align-items: center;
box-shadow: 0 0 15rpx #ccc;
}
.dev-name {
font-size: 20rpx;
text-align: center;
color: #6d6d6d;
}
.dev-logo {
width: 70rpx;
height: 70rpx;
margin-top: 10rpx;
}
.dev-data {
font-size: 30rpx;
color: #6d6d6d;
}
.small-button {
padding: 10rpx 20rpx;
font-size: 24rpx;
border-radius: 15rpx;
background-color: #2b9939;
color: white;
border: none;
}
</style> 检测代码是否有问题
最新发布