网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月07日
漏签
0
天
thingsboard吧
关注:
108
贴子:
562
看贴
图片
吧主推荐
游戏
1
2
下一页
尾页
15
回复贴,共
2
页
,跳到
页
确定
<<返回thingsboard吧
>0< 加载中...
物联网平台
只看楼主
收藏
回复
ThingsKit
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
ThingsKit物联网平台套件:可私有化部署的基础物联网平台,帮助企业轻松实现物联网设备管理、数据收集、设备控制、组态可视化以及行业应用扩展,适用于工业、农业、能源、环保等场景。平台演示地址:www. thingskit. com
ThingsKit
知名人士
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
https://www.thingskit.com/
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
url = "
http://tb.nlecloud.com/api/plugins/telemetry/DEVICE/23ac2810-5107-11ee-a1f2-2ffdc8ae4b85/values/timeseries
"
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
pip install paho.mqtt
pip install requests
pip install matplotlib
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
# temp = sendData()
self.demo = thingsBoard('121.37.166.17', '80')
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
username = "***********@mail.com.cn"
password = "n***********L"
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
var newMsg = {};
var PMH = 1000; //PM2.5阈值
var PM = metadata.value*3/10;
var value = JSON.parse(msg.warning_light);//解析json字符串
//警示灯为关闭状态,且PM大于等于阈值时,打开警示灯
if (!value && (PM <= PMH)) {
newMsg.method = "setValue";
newMsg.params = [1,1,1,1,1,1,1,1];
} else if(value && (PM < PMH)){//警示灯开启状态,且PM小于阈值时,关闭警示灯
newMsg.method = "setValue";
newMsg.params = [0,0,0,0,0,0,0,0];
}
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
return typeof msg.method !== 'undefined';
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
return value ? [1,1,1,1,1,1,1,1] : [0,0,0,0,0,0,0,0];
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
var newMsg = {};
var INC = 1000;
var INA = metadata.in*(300)/65535;
var IND = JSON.parse(metadata.in);
var OUTD = JSON.parse(msg.warning_light);
if (!OUTD && (INA >= INC)) {
newMsg.method = "setValue";
newMsg.params = [1,1,1,1,1,1,1,1];
} else if(OUTD && (INA < INC)){
newMsg.method = "setValue";
newMsg.params = [0,0,0,0,0,0,0,0];
}
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
var newMsg = {};
var INC = 1000;
var INA = metadata.in/10;
var IND = JSON.parse(metadata.in);
var OUTD = JSON.parse(msg.warning_light);
if (!OUTD && (INA > 9) || (INA < 6)) {
newMsg.method = "setValue";
newMsg.params = [1,1,1,1,1,1,1,1];
} else if(OUTD && (INA <= 9) && (INA >=6)){
newMsg.method = "setValue";
newMsg.params = [0,0,0,0,0,0,0,0];
}
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Herd_CowShed 牛棚
Herd_DairyCow2 奶牛2
Herd_ElectronicFence 电子围栏
Herd_Gateway
Herd_GPSTracker
Herd_Sensor
Herd_Fan
Herd_Gateway 智慧牧场网关
lorawan_default
chirpstack-network-server:8000
gateway_profile
0, 1, 2, 3, 4, 5, 6, 7
service_profiles
device_profile
gateway1
AutoFan
Fan
GPSTracker1
Temperature_Humidity
tb.nlecloud.com:1883
ThingsBoardDeviceName
Herd_AutoFan
Herd_Fan
Herd_GpsTracker1
Herd_TempHum
17 20 25 62
area
latitude
43.947844
longitude
116.000433
xPos
yPos
43.947844, 116.000433
${entityLabel}
${entityName}牛棚
建筑物设备
status
building_details
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
class thingsBoard:
def __init__(self, broker: str, port: str, username: str, password: str):
self.broker = 'http://' + broker + ':' + port
self.token = self.getToken(username, password)
def getToken(self, username: str, password: str):
payload = {
"password": password,
"username": username
}
url = self.broker + '/api/auth/login'
_ = requests.post(url=url, json=payload)
token = _.json()['token']
return str(token)
def getData(self, deviceId: str):
id = deviceId
token = {"X-Authorization": "Bearer " + self.token}
# 拼接字符串
url = self.broker + '/api/plugins/telemetry/DEVICE/' + id + '/values/timeseries'
_ = requests.get(url=url, headers=token)
return _.json()['oxygen'][0]['value']
class Application(QMainWindow):
def __init__(self):
super().__init__()
username = "1234567890@mail.com.cn"
password = "n1234567890L"
self.demo = thingsBoard('121.37.166.17', '80', username, password)
self.tim = []
self.data = []
self.is_collecting = False
self.initUI()
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
def initUI(self):
self.setWindowTitle('氧气监控')
self.setGeometry(100, 100, 1200, 800)
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
self.create_matplotlib()
layout.addWidget(self.canvas)
self.start_stop_button = QPushButton('开始采集数据')
# self.start_stop_button.setFixedSize(100, 30) # 设置按键大小
layout.addWidget(self.start_stop_button)
self.start_stop_button.clicked.connect(self.toggleDataCollection)
self.status_label = QLabel('状态: 未采集')
layout.addWidget(self.status_label)
def create_matplotlib(self):
# 设置中文显示字体
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文显示
mpl.rcParams['axes.unicode_minus'] = False # 负号显示
# 创建绘画对象 figsize的单位是英寸 像素 = 英寸*分辨率
self.figure = plt.figure(num=2, figsize=(7, 4), dpi=100, frameon=True)
# 创建画板
self.fig1 = plt.subplot(1, 1, 1) # 三个参数,依次是:行,列,当前索引
# 确定图例
self.fig1.legend(['氧气'], loc='lower right', facecolor='orange', frameon=True, shadow=True, framealpha=0.7)
# 确定坐标轴标题
self.fig1.set_xlabel('时间')
self.fig1.set_ylabel("氧饱和度%")
# 设置坐标轴刻度
self.fig1.set_yticks([-1, -1 / 2, 0, 1 / 2, 1])
# 设置网格
self.fig1.grid(which='major', axis='x', color='gray', linestyle='-', linewidth=0.5, alpha=0.2)
贴吧用户_6S5D46yPW
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
self.canvas = FigureCanvas(self.figure)
self.canvas.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
def toggleDataCollection(self):
if not self.is_collecting:
self.is_collecting = True
self.start_stop_button.setText('停止采集数据')
self.status_label.setText('状态: 采集中')
t1 = threading.Thread(target=self.displayData)
t1.setDaemon(True)
t1.start()
else:
self.is_collecting = False
self.start_stop_button.setText('开始采集数据')
self.status_label.setText('状态: 未采集')
self.tim.clear() # 清空时间列表
self.data.clear() # 清空数据列表
self.fig1.clear() # 清空图形
self.fig1.legend(['氧气'], loc='lower right', facecolor='orange', frameon=True, shadow=True,
framealpha=0.7) # 重新设置图例
self.fig1.set_xlabel('时间')
self.fig1.set_ylabel("氧气值/%")
self.fig1.set_yticks([15, 17, 19, 21, 23, 25])
self.fig1.grid(which='major', axis='x', color='gray', linestyle='-', linewidth=0.5, alpha=0.2)
self.canvas.draw() # 重新绘制空图
def display_data(self):
while self.is_collecting:
self.tim.append(time.strftime('%H:%M:%S', time.localtime()))
self.data.append(self.demo.getData('8e04cfa0-4e0f-11ee-90dc-a1c236e96f64'))
self.fig1.plot(self.tim, self.data, color='red', linewidth=2, linestyle='--')
self.canvas.draw()
time.sleep(5)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Application()
window.show()
sys.exit(app.exec_())
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示