嵌入式C++、MQTT、数据库、Grafana、机器学习( Scikit-learn):智能建筑大数据管理平台(代码示例)

news2024/9/27 9:21:15

项目概述

智能建筑管理系统(Intelligent Building Management System, IBMS)是一个集成多种技术的复杂系统,旨在通过智能化手段提升建筑的管理效率、节能效果和居住舒适度。该系统涉及嵌入式系统、物联网(IoT)、大数据分析、云计算等多个领域,构建出一个高效、可靠和智能的建筑环境。

系统设计

硬件设计

  1. 微控制器

    • 采用ARM Cortex-M系列和ESP32微控制器作为核心控制单元,负责数据采集和处理。
  2. 传感器

    • 温度传感器:监测室内外温度。
    • 湿度传感器:监测环境湿度。
    • CO2传感器:监测空气质量。
    • 光照传感器:检测照明需求。
    • 能耗传感器:实时监控能耗情况。
  3. 执行器

    • 智能开关、阀门控制器等,用于自动化控制。
  4. 通信模块

    • Wi-Fi、Zigbee、LoRa等,支持设备间的无线通信。
硬件架构示意图

软件设计

  1. 物联网协议

    • 采用MQTT、CoAP、HTTP/HTTPS和Modbus等协议,确保设备间的有效通信。
  2. 嵌入式软件开发

    • 使用C/C++进行底层开发,Python用于快速原型开发,基于FreeRTOS构建实时操作系统。
  3. 边缘计算

    • 采用Docker容器化部署,利用Kubernetes管理分布式边缘节点,提高系统稳定性与扩展性。
  4. 数据存储

    • 使用时序数据库(InfluxDB、TimescaleDB)存储传感器数据,NoSQL数据库(MongoDB、Cassandra)进行非结构化数据存储,关系型数据库(PostgreSQL、MySQL)用于用户管理与应用数据存储。
  5. 大数据处理

    • 采用Apache Hadoop和Apache Spark处理历史数据,利用Apache Flink进行实时数据处理。
  6. 数据分析与机器学习

    • 使用Python(Pandas, NumPy, Scikit-learn)进行数据分析,深度学习框架(TensorFlow或PyTorch)用于构建预测模型。
  7. 数据可视化

    • 使用Grafana、Tableau和D3.js进行数据展示,帮助管理人员实时监控建筑状态。
  8. 云平台

    • 选择Amazon AWS、Microsoft Azure或Google Cloud Platform提供基础设施支持。
  9. Web开发(管理界面)

    • 前端使用React、Vue.js或Angular,后端使用Node.js、Django或Flask进行API开发。

硬件端代码

以下是一个简单的传感器数据采集和上传的代码实现示例。

代码示例

1. 传感器数据采集
#include <Wire.h>
#include <DHT.h>

#define DHTPIN 2     // DHT传感器连接引脚
#define DHTTYPE DHT11   // DHT 11类型传感器

DHT dht(DHTPIN, DHTTYPE); // 初始化DHT传感器

void setup() {
    Serial.begin(9600); // 启动串口通信
    dht.begin(); // 启动DHT传感器
}

void loop() {
    // 读取温度和湿度数据
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    // 检查读取是否成功
    if (isnan(h) || isnan(t)) {
        Serial.println("读取失败!");
        return;
    }

    Serial.print("湿度: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("温度: ");
    Serial.print(t);
    Serial.println(" *C");

    // 延时2秒
    delay(2000);
}

代码讲解:

  • 该代码使用DHT传感器读取温度和湿度数据。
  • setup()函数中初始化串口和传感器。
  • 在 loop() 函数中,代码每2秒钟读取一次温度和湿度信息。
  • 通过 dht.readHumidity() 和 dht.readTemperature() 函数获取湿度和温度数据。
  • 使用 isnan() 函数检查读取的数据是否有效,如果无效,则打印错误消息。
  • 有效的数据将被打印到串口监视器,便于调试和监控。
2. 数据上传到云平台

以下是一个简单的Python代码示例,用于将传感器数据上传到云端(例如使用MQTT协议)。

import paho.mqtt.client as mqtt
import json
import time

# MQTT服务器配置
broker = "mqtt.example.com"
port = 1883
topic = "building/sensors"

# MQTT回调函数
def on_connect(client, userdata, flags, rc):
    print("连接成功, 返回码: " + str(rc))

# 创建MQTT客户端
client = mqtt.Client()
client.on_connect = on_connect

# 连接到MQTT服务器
client.connect(broker, port, 60)

while True:
    # 模拟传感器数据
    sensor_data = {
        "temperature": 22.5,
        "humidity": 60.0
    }
    
    # 将数据转换为JSON格式
    payload = json.dumps(sensor_data)
    
    # 发布消息到指定主题
    client.publish(topic, payload)
    print("数据已发布: " + payload)
    
    # 延时5秒
    time.sleep(5)

数据存储

1. 使用时序数据库(InfluxDB)

以下示例展示如何使用Python将传感器数据存储到InfluxDB中。

from influxdb import InfluxDBClient
import random
import time

# 创建InfluxDB客户端
client = InfluxDBClient(host='localhost', port=8086, database='building')

while True:
    # 模拟传感器数据
    temperature = random.uniform(20.0, 25.0)  # 生成20-25之间的随机温度
    humidity = random.uniform(30.0, 60.0  )   # 生成30-60之间的随机湿度

    # 构造数据点
    json_body = [
        {
            "measurement": "sensor_data",
            "tags": {
                "location": "office"
            },
            "fields": {
                "temperature": temperature,
                "humidity": humidity
            }
        }
    ]

    # 写入数据到InfluxDB
    client.write_points(json_body)
    print(f"写入数据: 温度={temperature:.2f}, 湿度={humidity:.2f}")

    # 延时5秒
    time.sleep(5)

代码讲解:

  • 该代码使用influxdb Python库连接到InfluxDB。
  • 在无限循环中,随机生成温度和湿度数据,并将这些数据格式化为JSON结构。
  • 使用client.write_points()方法将数据写入InfluxDB的sensor_data测量中。
  • 通过time.sleep(5)实现每5秒写入一次数据。

2. 使用NoSQL数据库(MongoDB)

以下示例展示如何使用Python将传感器数据存储到MongoDB中。

代码讲解:

  • 该Python脚本使用Paho MQTT库创建MQTT客户端,与MQTT服务器建立连接。
  • 在 on_connect 回调函数中,打印连接状态。
  • 使用 client.publish() 方法将传感器模拟数据(温度和湿度)发布到指定的MQTT主题。
  • 数据以JSON格式发送,便于后端系统解析和存储。
  • 代码延时5秒后再次发送数据,形成数据流。

2. 使用NoSQL数据库(MongoDB)

以下示例展示如何使用Python将传感器数据存储到MongoDB中。

from pymongo import MongoClient
import random
import time

# 创建MongoDB客户端
client = MongoClient('localhost', 27017)
db = client['building']
collection = db['sensor_data']

while True:
    # 模拟传感器数据
    sensor_data = {
        "temperature": random.uniform(20.0, 25.0),
        "humidity": random.uniform(30.0, 60.0),
        "timestamp": time.time()
    }

    # 插入数据到MongoDB
    collection.insert_one(sensor_data)
    print(f"插入数据: {sensor_data}")

    # 延时5秒
    time.sleep(5)

代码讲解:

  • 使用pymongo库连接到MongoDB数据库。
  • 在无限循环中,生成一个包含温度、湿度和时间戳的字典。
  • 使用collection.insert_one()方法将数据插入到MongoDB的sensor_data集合中。
  • 每5秒插入一次数据。

3. 使用关系型数据库(PostgreSQL)

以下示例展示如何使用Python将传感器数据存储到PostgreSQL中。

import psycopg2
import random
import time

# 连接到PostgreSQL数据库
conn = psycopg2.connect(
    dbname="building",
    user="your_username",
    password="your_password",
    host="localhost",
    port="5432"
)
cur = conn.cursor()

# 创建表(如果不存在)
cur.execute('''
    CREATE TABLE IF NOT EXISTS sensor_data (
        id SERIAL PRIMARY KEY,
        temperature FLOAT NOT NULL,
        humidity FLOAT NOT NULL,
        timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
''')
conn.commit()

while True:
    # 模拟传感器数据
    temperature = random.uniform(20.0, 25.0)
    humidity = random.uniform(30.0, 60.0)

    # 插入数据到PostgreSQL
    cur.execute('''
        INSERT INTO sensor_data (temperature, humidity)
        VALUES (%s, %s)
    ''', (temperature, humidity))
    conn.commit()
    print(f"插入数据: 温度={temperature:.2f}, 湿度={humidity:.2f}")

    # 延时5秒
    time.sleep(5)

# 关闭连接
cur.close()
conn.close()

代码讲解:

  • 使用psycopg2库连接到PostgreSQL数据库。
  • 在程序启动时创建sensor_data表(如果不存在)。
  • 在无限循环中生成温度和湿度数据,使用cur.execute()将数据插入到表中。
  • 使用conn.commit()提交事务,确保数据写入数据库。

大数据处理

1. 使用Apache Hadoop

以下是一个简单的Hadoop MapReduce示例,展示如何处理存储在HDFS中的传感器数据。

Mapper(mapper.py)
#!/usr/bin/env python
import sys

# Mapper:读取每一行数据,输出温度和湿度
for line in sys.stdin:
    line = line.strip()
    if line:
        # 假设数据格式为: timestamp, temperature, humidity
        timestamp, temperature, humidity = line.split(',')
        print(f"{timestamp}\t{temperature}\t{humidity}")
Reducer(reducer.py)

#!/usr/bin/env python
import sys

# Reducer:计算平均温度和湿度
total_temperature = 0
total_humidity = 0
count = 0

for line in sys.stdin:
    line = line.strip()
    if line:
        _, temperature, humidity = line.split('\t')
        total_temperature += float(temperature)
        total_humidity += float(humidity)
        count += 1

if count > 0:
    avg_temperature = total_temperature / count
    avg_humidity = total_humidity / count
    print(f"Average Temperature: {avg_temperature:.2f}, Average Humidity: {avg_humidity:.2f}")

代码讲解:

  • mapper.py读取输入的传感器数据,每行数据格式为timestamp, temperature, humidity,并输出到标准输出。
  • reducer.py接收Mapper的输出,计算温度和湿度的平均值,并将结果打印到标准输出。
  • 这个示例展示了Hadoop的基本MapReduce工作原理,适合批量处理历史数据。

2. 使用Apache Spark

以下是使用PySpark进行数据处理的示例,计算传感器数据的平均值。

from pyspark.sql import SparkSession
from pyspark.sql.functions import avg

# 创建Spark会话
spark = SparkSession.builder \
    .appName("SensorDataProcessing") \
    .getOrCreate()

# 读取CSV文件
df = spark.read.csv("hdfs://path/to/sensor_data.csv", header=True, inferSchema=True)

# 计算平均温度和湿度
avg_df = df.select(avg("temperature").alias("avg_temperature"), avg("humidity").alias("avg_humidity"))

# 显示结果
avg_df.show()

# 关闭Spark会话
spark.stop()

代码讲解:

  • 使用SparkSession创建Spark应用。
  • 从HDFS中读取CSV格式的传感器数据,自动推断数据类型。
  • 使用avg()函数计算温度和湿度的平均值,并将结果显示。
  • avg_df.show()打印结果,便于查看数据处理结果。

3. 使用Apache Flink

以下是使用Apache Flink进行实时数据处理的示例,计算实时传感器数据的平均值。

from pyflink.datastream import StreamExecutionEnvironment
from pyflink.common.serialization import SimpleStringSchema
from pyflink.datastream import StreamExecutionEnvironment
from pyflink.datastream.connectors import KafkaSource
from pyflink.common import Types

# 创建Flink执行环境
env = StreamExecutionEnvironment.get_execution_environment()

# 读取数据流(假设数据从Kafka读取)
data_stream = env.add_source(KafkaSource.builder()
    .set_bootstrap_servers("localhost:9092")
    .set_topic("sensor_data")
    .set_group_id("sensor_group")
    .set_value_only_deserializer(SimpleStringSchema())
    .build())

# 定义处理逻辑
def process_data(data):
    # 解析数据
    fields = data.split(',')
    temperature = float(fields[1])
    humidity = float(fields[2])
    return (temperature, humidity)

# 转换数据流并计算平均值
avg_stream = data_stream \
    .map(process_data) \
    .key_by(lambda x: 0) \
    .reduce(lambda x, y: (x[0] + y[0], x[1] + y[1])) \
    .map(lambda x: (x[0] / 2, x[1] / 2))  # 计算平均值

# 输出结果
avg_stream.print()

# 启动Flink程序
env.execute("Sensor Data Average Calculation")

代码讲解:

  • StreamExecutionEnvironment:创建Flink执行环境,作为数据流处理的上下文。
  • KafkaSource:从Kafka读取数据流,假设传感器数据以CSV格式存储,格式为timestamp,temperature,humidity
  • process_data函数:解析输入数据,将温度和湿度转换为浮点数,返回一个元组。
  • key_by(lambda x: 0):将所有数据分配到同一组,以便后续的聚合操作。
  • reduce函数:累加温度和湿度的值。这里假设每次调用reduce的输入都是一对温度和湿度元组。
  • 第二个map操作用于计算平均值(除以2,假设每次输入一对数据)。
  • avg_stream.print():打印计算出的平均值到控制台。
  • env.execute():启动Flink程序。

数据分析与机器学习

1. 数据分析(使用Pandas)

以下示例展示如何使用Pandas分析传感器数据并计算温度和湿度的平均值。

import pandas as pd

# 从CSV文件读取传感器数据
df = pd.read_csv('sensor_data.csv')

# 显示数据的前5行
print(df.head())

# 计算平均温度和湿度
average_temperature = df['temperature'].mean()
average_humidity = df['humidity'].mean()

print(f"平均温度: {average_temperature:.2f}")
print(f"平均湿度: {average_humidity:.2f}")

代码讲解:

  • 使用pandas库读取存储在CSV文件中的传感器数据。
  • df.head()显示数据的前5行,便于检查数据格式。
  • 使用mean()函数计算温度和湿度的平均值,并打印结果。

2. 机器学习(使用Scikit-learn)

以下示例展示如何使用Scikit-learn构建一个简单的线性回归模型,预测温度。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 从CSV文件读取传感器数据
df = pd.read_csv('sensor_data.csv')

# 准备特征和目标变量
X = df[['humidity']]  # 特征:湿度
y = df['temperature']  # 目标:温度

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)  # 训练模型

# 进行预测
predictions = model.predict(X_test)

# 打印预测结果
for actual, predicted in zip(y_test, predictions):
    print(f"实际温度: {actual:.2f}, 预测温度: {predicted:.2f}")

# 评估模型性能
mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)
print(f"均方误差: {mse:.2f}")
print(f"R²得分: {r2:.2f}")

代码讲解:

  • 使用pandas库读取存储在CSV文件中的传感器数据。
  • 特征变量X是湿度,目标变量y是温度。
  • 使用train_test_split函数将数据划分为训练集(80%)和测试集(20%)。
  • 创建线性回归模型LinearRegression()并使用fit()方法在训练数据上训练模型。
  • 使用模型的predict()方法对测试集进行预测。
  • 使用mean_squared_errorr2_score评估模型性能,计算均方误差(MSE)和R²得分,并打印实际温度和预测温度的比较结果。

3. 深度学习(使用TensorFlow或PyTorch)

以下是使用TensorFlow构建一个简单的神经网络模型来预测传感器数据的示例。

import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 从CSV文件读取传感器数据
df = pd.read_csv('sensor_data.csv')

# 准备特征和目标变量
X = df[['humidity']].values  # 特征:湿度
y = df['temperature'].values  # 目标:温度

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 标准化特征
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 创建神经网络模型
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(1)  # 输出层
])

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
model.fit(X_train, y_train, epochs=100, batch_size=32, verbose=1)

# 进行预测
predictions = model.predict(X_test)

# 打印预测结果
for actual, predicted in zip(y_test, predictions):
    print(f"实际温度: {actual:.2f}, 预测温度: {predicted[0]:.2f}")

# 评估模型性能
mse = model.evaluate(X_test, y_test)
print(f"均方误差: {mse:.2f}")

代码讲解:

  • 使用pandas读取传感器数据,并准备特征和目标变量。
  • 将数据分为训练集和测试集。
  • 使用StandardScaler进行标准化,确保输入特征的均值为0,标准差为1。
  • 使用tf.keras.Sequential构建一个简单的神经网络模型,包括两层隐藏层和一个输出层。
  • 编译模型时指定优化器(Adam)和损失函数(均方误差)。

 

数据可视化

1. 使用Matplotlib和Seaborn可视化传感器数据

以下示例展示如何使用Matplotlib和Seaborn对传感器数据进行可视化。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 从CSV文件读取传感器数据
df = pd.read_csv('sensor_data.csv')

# 设置绘图风格
sns.set(style='whitegrid')

# 绘制温度和湿度的散点图
plt.figure(figsize=(12, 6))
sns.scatterplot(data=df, x='humidity', y='temperature', color='blue', alpha=0.6)
plt.title('温度与湿度的关系')
plt.xlabel('湿度 (%)')
plt.ylabel('温度 (°C)')
plt.show()

代码讲解:

  • 使用pandas读取传感器数据。
  • 使用seaborn设置绘图风格。
  • 创建一个散点图,x轴为湿度,y轴为温度,使用scatterplot()函数进行绘制。
  • 设置图表标题和坐标轴标签,最后通过plt.show()显示图表。

2. 使用Grafana可视化时序数据

Grafana是一个强大的开源可视化工具,通常与时序数据库(如InfluxDB)配合使用。以下是使用Grafana可视化传感器数据的基本步骤:

  1. 安装Grafana

    • 可以通过Docker或直接在本地系统上安装Grafana。
  2. 连接InfluxDB

    • 在Grafana的管理界面中,添加数据源,选择InfluxDB,配置连接信息。
  3. 创建仪表盘

    • 在Grafana中创建一个新的仪表盘,添加图表面板。
    • 使用InfluxQL或Flux查询语言从InfluxDB中查询传感器数据。
  4. 可视化数据

    • 根据需要选择合适的图表类型(如折线图、柱状图等)进行数据可视化。

3. 使用Tableau可视化数据

Tableau是一个用户友好的数据可视化工具,适合进行复杂数据分析和可视化。以下是使用Tableau可视化传感器数据的步骤:

  1. 导入数据

    • 将传感器数据导入Tableau,支持多种数据源,如Excel、CSV、数据库等。
  2. 创建视图

    • 使用拖放界面创建视图,选择维度(如时间、湿度)和度量(如温度)。
    • 可以创建散点图、折线图、仪表等多种可视化类型。
  3. 交互式分析

    • 利用Tableau的过滤器和参数功能,实现交互式数据分析,用户可以根据需要选择不同的视图。

项目总结

智能建筑管理系统是一个跨领域的协同应用,涉及嵌入式系统、物联网、大数据、云计算等众多技术。通过整合这些技术,系统能够实现对建筑环境的实时监控和管理,提升了建筑的能源效率和用户的舒适度。

主要特点:

  • 实时监控:通过传感器数据实时监测建筑环境。
  • 智能控制:利用执行器实现自动化控制,提高管理效率。
  • 数据分析:通过大数据技术和机器学习算法,挖掘潜在的节能机会。
  • 灵活部署:基于云计算和边缘计算,系统具备良好的扩展性和可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库-触发器,存储过程

按照题目要求完成下列题目&#xff1a; 1.触发器 mysql> use mydb16_trigger; Database changed mysql> create table goods(-> gid char(8) primary key,-> name varchar(10),-> price decimal(8,2),-> num int); Query OK, 0 rows affected (0.01 sec)my…

01 Redis引入和概述

Redis引入和概述 一、Redis的历史和发展过程 ​ Redis是在2008年由意大利的一家创业公司Merzia的创始人Salvatore Sanfilippo(萨尔瓦托.圣菲利波)创造的。 ​ 当时&#xff0c;Salvatore 正在开发一款基于MySQL的网站实时统计系统LLOOGG&#xff0c;然而他发现MySQL的性能并…

VAE、GAN与Transformer核心公式解析

VAE、GAN与Transformer核心公式解析 VAE、GAN与Transformer&#xff1a;三大深度学习模型的异同解析 【表格】VAE、GAN与Transformer的对比分析 序号对比维度VAE&#xff08;变分自编码器&#xff09;GAN&#xff08;生成对抗网络&#xff09;Transformer&#xff08;变换器&…

计算机网络(四)数字签名和CA认证

什么是数字签名和CA认证&#xff1f; 数字签名 数字签名的过程通常涉及以下几个步骤&#xff1a; 信息哈希&#xff1a;首先&#xff0c;发送方使用一个哈希函数&#xff08;如SHA-256&#xff09;对要发送的信息&#xff08;如电子邮件、文件等&#xff09;生成一个固定长度…

GIS场景升级:支持多种影像协议与天气效果

在GIS场景编辑领域&#xff0c;升级视效的需求日益增加。有一款名为山海鲸可视化的免费工具&#xff0c;本人亲测能够完美满足这一需求。山海鲸可视化不仅支持多种GIS影像协议&#xff08;如TMS、WMS、WMTS等&#xff09;&#xff0c;还能一键添加天气效果&#xff0c;瞬间提升…

【Unity】 HTFramework框架(五十三)使用 Addressables 可寻址系统

更新日期&#xff1a;2024年7月25日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 Addressables 可寻址系统使用 Addressables 可寻址系统一、导入 Addressables二、切换到 Addressables 加载模式三、切换资源加载助手四、加载资源五、注…

【全面介绍Python多线程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🦇目录 1. 🦇前言2. 🦇threading 模块的基本用法3. 🦇Thre…

编程类精品GPTs

文章目录 编程类精品GPTs前言种类ChatGPT - GrimoireProfessional-coder-auto-programming 总结 编程类精品GPTs 前言 代码类的AI, 主要看以下要点: 面对含糊不清的需求是否能引导出完整的需求面对完整的需求是否能分步编写代码完成需求编写的代码是否具有可读性和可扩展性 …

【个人亲试最新】WSL2中的Ubuntu 22.04安装Docker

文章目录 Wsl2中的Ubuntu22.04安装Docker其他问题wsl中执行Ubuntu 报错&#xff1a;System has not been booted with systemd as init system (PID 1). Can‘t operate. 参考博客 &#x1f60a;点此到文末惊喜↩︎ Wsl2中的Ubuntu22.04安装Docker 确定为wsl2ubuntu22.04&#…

57 数据链路层

用于两个设备&#xff08;同一种数据链路节点&#xff09;之间传递 目录 对比理解“数据链路层” 和 “网络层”以太网 2.1 认识以太网 2.2 以太网帧格式MAC地址 3.1 认识MAC地址 3.2 对比理解MAC地址和IP地址局域网通信MTU 5.1 认识MTU 5.2 MTU对ip协议的影响 5.3 MTU对UDP的…

vue elementui 在table里使用el-switch

<el-table-columnprop"operationStatus"label"状态"header-align"center"align"center"><template slot-scope"scope"><el-switch active-value"ENABLE" inactive-value"DISABLE" v-mod…

Java OpenCV 图像处理40 图形图像 图片裁切ROI

Java OpenCV 图像处理40 图形图像 图片裁切 在 OpenCV 中&#xff0c;Rect 类是用来表示矩形的数据结构&#xff0c;通常用于定义图像处理中的感兴趣区域&#xff08;Region of Interest&#xff0c;ROI&#xff09;&#xff0c;或者指定图像中的某个区域的位置和大小。Rect 类…

【深度学习】大模型GLM-4-9B Chat ,微调与部署(3) TensorRT-LLM、TensorRT量化加速、Triton部署

文章目录 获取TensorRT-LLM代码&#xff1a;构建docker镜像并安装TensorRT-LLM&#xff1a;运行docker镜像&#xff1a;安装依赖魔改下部分package代码&#xff1a;量化&#xff1a;构建图&#xff1a;全局参数插件配置常用配置参数 测试推理是否可以代码推理CLI推理 性能测试小…

Python爬虫技术 第09节 状态码

在使用Python进行网络爬虫开发时&#xff0c;理解HTTP状态码是至关重要的。HTTP状态码是由服务器返回给客户端的响应状态指示&#xff0c;通常用于告知客户端请求是否成功、失败或需要采取进一步的操作。下面是一些常见的HTTP状态码及其含义&#xff1a; 常见的HTTP状态码 1xx…

Lua脚本简单理解

目录 1.安装 2.语法 2.1Lua数据类型 2.2变量 2.3lua循环 2.4流程控制 2.5函数 2.6运算符 2.7关系运算符 3.lua脚本在redis中的使用 3.1lua脚本再redis简单编写 3.2普通锁Lua脚本 3.3可重入锁lua脚本 1.安装 centos安装 安装指令&#xff1a; yum -y update yum i…

5. System Design 5.2. 身份验证框架和信任链

快速链接: . &#x1f449;&#x1f449;&#x1f449; 个人博客笔记导读目录(全部) &#x1f448;&#x1f448;&#x1f448; 付费专栏-付费课程 【购买须知】我的联系方式-自建交流群-学习群 【必看/必看&#xff01;&#xff01;】ATF架构开发精讲-专题目录&#x1f448;…

Unity Android接入SDK 遇到的问题

1. buildtools、platformtools、commandline tools 以及compiled sdk version、buildtools sdk version、target sdk version 的说明 Android targetSdkVersion了解一下 - 简书 2. 查看.class 和.jar文件 jd_gui 官网地址&#xff1a; 下载jd_gui 工具 &#xff0c;或者 idea 下…

全方位数据管理:一站式爬虫服务解决方案

摘要 面对互联网信息爆炸的时代&#xff0c;如何高效地收集、整理并分析海量数据&#xff0c;成为企业与开发者面临的一大挑战。本文将深入探讨一站式爬虫服务解决方案&#xff0c;揭示如何通过全方位数据管理策略&#xff0c;助力企业轻松驾驭大数据海洋&#xff0c;实现数据…

事务和函数索引

事务 事务的定义 事务&#xff08;Transaction&#xff09;&#xff0c;就是将一组SQL语句放在同一批次内去执行&#xff0c;如果一个SQL语句出错&#xff0c;则该批次内 的所有SQL都将被取消执行。 事务的特点 一个事务中如果有一个数据库操作失败&#xff0c;那么整个 事务…

光明乳业:以科技赋能品质,引领乳业绿色新未来

近日&#xff0c;光明乳业再次成为行业焦点&#xff0c;其在科技创新与绿色发展方面的卓越表现赢得了广泛赞誉。作为中国乳制品行业的领军企业&#xff0c;光明乳业始终坚守品质至上的原则&#xff0c;不断探索科技创新之路&#xff0c;致力于为消费者提供更高品质、更健康的乳…