基于STM32设计的仓库环境监测与预警系统
目录
- 项目开发背景
- 设计实现的功能
- 项目硬件模块组成
- 设计思路
- 系统功能总结
- 使用的模块的技术详情介绍
- 总结
1. 项目开发背景
随着工业化和现代化的进程,尤其是在制造业、食品业、医药业等行业,仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐品、药品、电子产品等货物时,温度、湿度、气体浓度等环境参数的异常变化可能导致物品的质量和安全性问题。为了保证仓库内物品的安全存储,及时发现环境参数异常并采取必要措施,仓库环境监测系统应运而生。
传统的环境监测方式往往依赖人工检查或简单的环境检测设备,但这些方式往往难以实现实时监控与自动预警。物联网技术的发展为仓库环境监控系统提供了更加智能、高效、实时的数据采集、传输和处理手段。本项目基于STM32微控制器设计一个环境监测与预警系统,具备温湿度监测、气体检测、墙壁水汽检测、蜂鸣器报警、通风控制等功能,支持数据上传至华为云物联网平台并通过网页实现数据可视化与控制。
本项目不仅满足了传统环境监测的需求,还通过物联网和大数据分析提升了仓库管理的效率和智能化水平,具有重要的实际应用价值。
2. 设计实现的功能
本项目设计的仓库环境监测与预警系统的主要功能如下:
- 环境温度和湿度检测
使用SHT30温湿度传感器实时监测仓库内的环境温度和湿度,并通过显示屏和云平台实时展示。 - 二氧化碳浓度检测
使用SGP30传感器检测仓库内的二氧化碳浓度,提供空气质量监测功能。 - 墙壁水汽检测
安装雨滴传感器以检测墙壁或角落的水汽情况,当水汽超标时,通过蜂鸣器进行报警。 - 可燃气体检测
使用MQ9气体传感器检测仓库内的一氧化碳、甲烷等可燃气体浓度,当检测到气体浓度超标时,触发蜂鸣器报警。 - 通风风扇控制
使用继电器控制通风风扇的启停,用户可以手动按键开启或关闭风扇,确保仓库通风良好。 - 报警功能
当环境参数不符合设定要求时,系统通过蜂鸣器报警并在可视化大屏上显示报警信息,通知工作人员及时处理。 - 可视化大屏显示
使用1.44寸LCD显示屏显示温湿度、二氧化碳浓度、气体浓度、墙壁水汽等环境数据。 - 数据上传与云平台显示
系统通过ESP8266模块连接Wi-Fi,将数据通过MQTT协议上传到华为云物联网平台,实时显示数据,并支持历史数据查询和分析。 - Web端数据可视化与控制
使用Python编写后端服务器,接收从华为云物联网平台转发的数据,并通过HTML前端页面展示实时数据与报警状态,用户可通过Web页面进行控制操作。 - 数据存储与分析
服务器支持本地存储数据,并通过云平台的数据存储与分析功能,提供环境参数历史数据的查看与分析,辅助决策与管理。
3. 项目硬件模块组成
本项目所使用的硬件模块如下:
- 主控芯片:STM32F103RCT6
- 主要负责系统的控制与数据处理,协调各个模块的工作。
- 具有丰富的IO口、USART接口、PWM输出等功能,适合本项目的多传感器数据采集和控制需求。
- 温湿度传感器:SHT30
- 用于检测仓库内的环境温度和湿度。
- 具有高精度和稳定性,通过I2C接口与STM32通信。
- 二氧化碳浓度传感器:SGP30
- 用于检测仓库内的二氧化碳浓度,具有较高的检测精度。
- 同样采用I2C接口进行数据通信。
- 可燃气体传感器:MQ9
- 用于检测仓库内一氧化碳、甲烷等气体的浓度。
- 通过模拟输出与STM32进行通信。
- 雨滴传感器
- 用于检测墙壁或角落的水汽情况。
- 安装在墙壁或角落,如果检测到水汽,则通过蜂鸣器进行报警。
- 蜂鸣器
- 用于报警,当环境参数不符合要求时,蜂鸣器发出声音提醒。
- 通风风扇:继电器控制
- 用于控制通风风扇的开关,通过继电器与STM32连接。
- Wi-Fi模块:ESP8266
- 用于与本地网络连接,将采集到的环境数据上传到华为云物联网平台。
- 支持MQTT协议,用于数据上传。
- 显示屏:1.44寸LCD
- 显示当前仓库的环境数据,包括温湿度、二氧化碳浓度、气体浓度等。
- 电源模块:5V 2A外部稳压模块
- 为系统提供稳定的电源。
4. 设计思路
4.1 系统架构
本系统由硬件和软件两部分组成,硬件部分主要包括温湿度传感器、二氧化碳传感器、可燃气体传感器、雨滴传感器、蜂鸣器、Wi-Fi模块等。系统使用STM32F103RCT6作为主控芯片,通过I2C、GPIO、PWM等接口与传感器和执行器连接。
系统通过ESP8266 Wi-Fi模块实现数据无线传输,数据通过MQTT协议上传至华为云物联网平台。云端平台负责数据存储和历史数据分析,同时提供API接口供本地服务器拉取数据。通过Web页面,用户可以查看实时环境数据并进行控制操作。
4.2 数据采集与处理
- 温湿度检测:使用SHT30传感器实时采集仓库内的环境温度和湿度,STM32通过I2C接口与SHT30通信,获取数据并进行处理。
- 气体检测:通过MQ9传感器获取一氧化碳等气体的浓度,当浓度超标时触发报警。
- 墙壁水汽检测:雨滴传感器监测墙壁或角落的水汽,当水汽超标时,蜂鸣器报警。
- 二氧化碳浓度检测:SGP30传感器监测二氧化碳浓度。
4.3 报警与控制
- 蜂鸣器报警:当检测到温湿度、气体浓度、墙壁水汽等不符合要求时,蜂鸣器发出报警声音。
- 风扇控制:通过继电器控制通风风扇的启停,确保仓库内空气流通。
- 按键控制:用户可以通过按键手动启动或关闭风扇。
4.4 数据上传与可视化
- 云数据上传:数据通过ESP8266模块通过Wi-Fi上传到华为云物联网平台,使用MQTT协议实现数据传输。
- Web端可视化:后端服务器使用Python开发,前端使用HTML5展示实时数据、报警信息和控制界面。
5. 系统功能总结
功能模块 | 描述 |
---|---|
环境温湿度检测 | 通过SHT30传感器检测温湿度数据 |
二氧化碳浓度检测 | 通过SGP30传感器检测二氧化碳浓度 |
可燃气体检测 | 通过MQ9传感器检测一氧化碳、甲烷等气体浓度 |
墙壁水汽检测 | 通过雨滴传感器检测水汽情况 |
报警功能 | 超过设定阈值时蜂鸣器报警 |
风扇控制 | 通过继电器控制风扇启停 |
数据上传 | 通过Wi-Fi模块和MQTT协议上传数据至 |
云平台 | | Web端可视化 | 通过Web前端展示数据、报警信息及控制操作 |
6. 使用的模块的技术详情介绍
6.1 SHT30 温湿度传感器
- 工作原理:SHT30是一款数字输出型温湿度传感器,采用I2C协议与STM32通信。具有高精度、低功耗的特点,适合长期稳定监测环境条件。
6.2 SGP30 二氧化碳传感器
- 工作原理:SGP30是一款基于金属氧化物传感器的二氧化碳传感器,采用I2C通信协议,能精确检测空气中的二氧化碳浓度。
6.3 MQ9 可燃气体传感器
- 工作原理:MQ9是常见的气体传感器,可检测一氧化碳、甲烷等可燃气体。输出模拟信号,STM32通过ADC读取数据,进行气体浓度判断。
6.4 雨滴传感器
- 工作原理:雨滴传感器检测环境中的水汽,当水汽浓度超标时,通过触发高电平输出控制蜂鸣器报警。
6.5 ESP8266 Wi-Fi模块
- 工作原理:ESP8266模块提供Wi-Fi无线网络连接,支持通过MQTT协议与云平台进行通信,传输环境数据。
6.6 蜂鸣器
- 工作原理:蜂鸣器通过接收到高电平信号时发出响声,用于报警通知。
7. 总结
本项目成功设计并实现了基于STM32的仓库环境监测与预警系统。通过结合多种传感器、Wi-Fi模块以及云平台,能够实时监测仓库内的温湿度、气体浓度、水汽等环境参数,并在出现异常时通过蜂鸣器报警提醒工作人员。同时,系统支持数据上传至云平台,提供实时数据展示和历史数据分析,帮助管理人员更好地了解仓库环境状况,做出决策。
该系统具备高效性、智能化、实时性强等特点,具有广泛的应用前景,可以为各类仓储、生产线等环境提供有效的监测和预警保障。
8. STM32代码设计
以下是基于STM32的仓库环境监测与预警系统的 main.c
文件代码。主程序负责初始化各个模块,进行数据采集,并通过蜂鸣器进行报警,最后通过Wi-Fi上传数据到华为云物联网平台。
https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
#include "stm32f1xx_hal.h"
#include "stdio.h"
#include "string.h"// 引入各传感器模块的头文件
#include "sht30.h" // 温湿度传感器
#include "sgp30.h" // 二氧化碳传感器
#include "mq9.h" // 可燃气体传感器
#include "rain_sensor.h" // 水汽传感器
#include "esp8266.h" // WiFi模块
#include "lcd.h" // LCD显示
#include "relay.h" // 继电器控制风扇
#include "buzzer.h" // 蜂鸣器// 定义环境监测阈值
#define TEMP_THRESHOLD_HIGH 30 // 高温阈值(单位:℃)
#define TEMP_THRESHOLD_LOW 10 // 低温阈值(单位:℃)
#define HUMIDITY_THRESHOLD_LOW 30 // 低湿度阈值(单位:%)
#define CO_THRESHOLD 10 // 一氧化碳浓度阈值(单位:ppm)
#define CO2_THRESHOLD 1000 // 二氧化碳浓度阈值(单位:ppm)
#define WATER_VAPOR_THRESHOLD 50 // 水汽浓度阈值(单位:%)UART_HandleTypeDef huart1; // 串口1,用于调试
I2C_HandleTypeDef hi2c1; // I2C1,用于温湿度传感器、SGP30
SPI_HandleTypeDef hspi1; // SPI1,用于LCD显示
WiFi_Module wifi; // Wi-Fi模块// 函数声明
void SystemClock_Config(void);
void MX_GPIO_Init(void);
void MX_USART1_UART_Init(void);
void MX_I2C1_Init(void);
void MX_SPI1_Init(void);
void read_environment_data(void);
void display_data_on_lcd(float temperature, float humidity, float co2, float co);
void send_data_to_cloud(float temperature, float humidity, float co2, float co);
void check_alerts(float temperature, float humidity, float co2, float co, int water_vapor);
void control_relay(int status);
void control_buzzer(int status);int main(void)
{// 系统初始化HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();MX_I2C1_Init();MX_SPI1_Init();// 初始化传感器SHT30_Init(&hi2c1); // 初始化温湿度传感器SGP30_Init(&hi2c1); // 初始化二氧化碳传感器MQ9_Init(); // 初始化可燃气体传感器Rain_Sensor_Init(); // 初始化水汽传感器ESP8266_Init(&huart1); // 初始化Wi-Fi模块LCD_Init(&hspi1); // 初始化LCD显示Buzzer_Init(); // 初始化蜂鸣器Relay_Init(); // 初始化继电器(风扇控制)// 系统主循环while (1){// 读取环境数据float temperature, humidity, co2, co;int water_vapor;read_environment_data(&temperature, &humidity, &co2, &co, &water_vapor);// 显示数据到LCDdisplay_data_on_lcd(temperature, humidity, co2, co);// 上传数据到云平台send_data_to_cloud(temperature, humidity, co2, co);// 检查是否需要报警或执行控制check_alerts(temperature, humidity, co2, co, water_vapor);}
}// 读取环境数据(温湿度,CO2浓度,CO浓度,水汽浓度)
void read_environment_data(float *temperature, float *humidity, float *co2, float *co, int *water_vapor)
{// 获取温湿度数据*temperature = SHT30_ReadTemperature();*humidity = SHT30_ReadHumidity();// 获取CO2浓度数据*co2 = SGP30_ReadCO2();// 获取CO浓度数据*co = MQ9_ReadCO();// 获取水汽浓度数据*water_vapor = Rain_Sensor_Read();
}// 将数据显示在LCD屏上
void display_data_on_lcd(float temperature, float humidity, float co2, float co)
{char display_buffer[50];// 显示温湿度数据sprintf(display_buffer, "Temp: %.2fC Hum: %.2f%%", temperature, humidity);LCD_DisplayStringLine(0, (uint8_t*)display_buffer);// 显示CO2和CO数据sprintf(display_buffer, "CO2: %.2fppm CO: %.2fppm", co2, co);LCD_DisplayStringLine(1, (uint8_t*)display_buffer);
}// 将数据上传到云平台
void send_data_to_cloud(float temperature, float humidity, float co2, float co)
{// 将数据通过MQTT协议上传到华为云物联网平台char payload[200];sprintf(payload, "{\"temperature\": %.2f, \"humidity\": %.2f, \"co2\": %.2f, \"co\": %.2f}",temperature, humidity, co2, co);ESP8266_MQTT_Publish("warehouse/environment", payload); // 假设该主题用于上传环境数据
}// 检查环境参数,判断是否需要报警或控制
void check_alerts(float temperature, float humidity, float co2, float co, int water_vapor)
{// 检查温度if (temperature > TEMP_THRESHOLD_HIGH || temperature < TEMP_THRESHOLD_LOW){control_buzzer(1); // 超出温度范围,启动蜂鸣器报警}// 检查湿度if (humidity < HUMIDITY_THRESHOLD_LOW){control_buzzer(1); // 湿度过低,启动蜂鸣器报警}// 检查二氧化碳浓度if (co2 > CO2_THRESHOLD){control_buzzer(1); // 二氧化碳浓度过高,启动蜂鸣器报警}// 检查可燃气体浓度if (co > CO_THRESHOLD){control_buzzer(1); // 可燃气体浓度过高,启动蜂鸣器报警}// 检查水汽浓度if (water_vapor > WATER_VAPOR_THRESHOLD){control_buzzer(1); // 水汽浓度过高,启动蜂鸣器报警}// 控制风扇(继电器控制)if (temperature > TEMP_THRESHOLD_HIGH){control_relay(1); // 启动风扇}else if (temperature < TEMP_THRESHOLD_LOW){control_relay(0); // 关闭风扇}
}// 控制继电器(风扇)
void control_relay(int status)
{if (status){Relay_On(); // 打开风扇}else{Relay_Off(); // 关闭风扇}
}// 控制蜂鸣器
void control_buzzer(int status)
{if (status){Buzzer_On(); // 启动蜂鸣器报警}else{Buzzer_Off(); // 关闭蜂鸣器}
}
相关文章:

基于STM32设计的仓库环境监测与预警系统
目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块的技术详情介绍总结 1. 项目开发背景 随着工业化和现代化的进程,尤其是在制造业、食品业、医药业等行业,仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐…...

VSCode便捷开发
一、常用插件 Vue 3 Snippets、Vetur、Vue - Official 二、常用开发者工具 三、Vue中使用Element-UI 安装步骤: 1、在VSCode的终端执行如下指令: npm i element-ui -S 2、在main.js中全局引入: import Vue from vue; import ElementUI from …...
理解 Maven 的 pom.xml 文件
pom.xml 是 Maven 项目的核心文件,它是项目构建、依赖管理、插件配置和项目元数据的主要地方。通过 pom.xml 文件,Maven 知道如何构建项目、下载依赖库、执行测试等任务。每个 Maven 项目都必须包含一个 pom.xml 文件。本文将详细讲解 pom.xml 文件的结构…...
docker数据持久化的意义
Docker 数据持久化是指在 Docker 容器中保存的数据不会因为容器的停止、删除或重启而丢失。Docker 容器本身是临时性的,默认情况下,容器内的文件系统是临时的,容器停止或删除后,其中的数据也会随之丢失。为了确保重要数据…...

opentelemetry-collector 配置elasticsearch
一、修改otelcol-config.yaml receivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailedotlp/jaeger: # Jaeger supports OTLP directlyendpoint: 192.168.31.161:4317tls:insecure: trueotlphttp/prometheus: …...
ASP.NET Core JWT Version
目录 JWT缺点 方案 实现 Program.cs IdentityHelper.cs Controller NotCheckJWTVersionAttribute.cs JWTVersionCheckkFilter.cs 优化 JWT缺点 到期前,令牌无法被提前撤回。什么情况下需要撤回?用户被删除了、禁用了;令牌被盗用了&…...

【ArcGIS】R语言空间分析、模拟预测与可视化技术
R语言在空间数据挖掘中具有广泛的应用,以下是一些关键内容和常用包的介绍: R语言空间数据挖掘的关键技术 空间数据类型 矢量数据:包括点(Point)、线(Line)、面(Polygon)等…...

日常知识点之面试后反思遗留问题汇总
梳理一下最近接触到的几个知识点: 1:突然问到端口复用 (SO_REUSEADDR) 端口复用一般用在服务端重启时,套接字处于time_wait状态时,无法绑定该端口,导致无法启动问题。 设置端口复用ÿ…...

链表(LinkedList) 1
上期内容我们讲述了顺序表,知道了顺序表的底层是一段连续的空间进行存储(数组),在插入元素或者删除元素需要将顺序表中的元素整体移动,时间复杂度是O(n),效率比较低。因此,在Java的集合结构中又引入了链表来解决这一问…...

Qt:Qt Creator项目创建
目录 认识Qt Creator Qt Creator概览 使用Qt Creator新建项目 选择项目模板 选择项目路径 选择构建系统 填写类信息设置界面 选择语言和翻译文件 选择Qt套件 选择版本控制系统 最终效果 认识Qt Creator Qt Creator概览 从开始菜单或者快捷方式打开Qt Creator集成开…...
windows11上,使用pipx安装Poetry,Poetry的安装路径是什么?
当使用 pipx 安装 Poetry 时,pipx 会将 Poetry 安装到一个独立的虚拟环境中,并将其可执行文件链接到一个集中的目录中。以下是 pipx 安装 Poetry 时的路径信息: 1. Poetry 的安装路径 pipx 会为每个工具(如 Poetry)创…...

详解状态模式
引言 水有固态、液态、气态三种状态,在不同条件下这三种状态可以相互转化。同样在软件设计中,有些对象也有不同的状态,不同状态的行为不同,状态模式就是用来处理这种情况的。 1.概念 状态模式(State Pattern):允许一个…...
能否通过蓝牙建立TCP/IP连接来传输数据
前言: 最近在做一个项目时,产生了一个疑问:能否通过蓝牙建立TCP/IP连接来传输数据 查阅了一些文章,可以得出结论:不行 下面是我截取的两篇个人认可的文章的回答: 文章一: 蓝牙是一种短距离无…...
uniapp mqttjs 小程序开发
在UniApp中集成MQTT.js开发微信小程序时,需注意平台差异、协议兼容性及消息处理等问题。以下是关键步骤与注意事项的综合指南: 一、环境配置与依赖安装 安装MQTT.js 推荐使用兼容性较好的版本:mqtt4.1.0(H5和小程序兼容性最佳&…...

爬虫工程师分享:获取京东商品详情SKU数据的技术难点与攻破方法
在电商数据领域,京东商品详情页的SKU数据是许多爬虫工程师的目标。这些数据包含了商品的价格、库存、规格等关键信息,对于市场分析、价格监控等应用场景至关重要。然而,获取这些数据并非易事,京东作为国内电商巨头,其反…...

数据库操作与数据管理——Rust 与 SQLite 的集成
第六章:数据库操作与数据管理 第一节:Rust 与 SQLite 的集成 在本节中,我们将深入探讨如何在 Rust 中使用 SQLite 数据库,涵盖从基本的 CRUD 操作到事务处理、数据模型的构建、性能优化以及安全性考虑等方面。SQLite 是一个轻量…...

LeetCode 0063.不同路径 II:动态规划 - 原地使用地图数组,几乎无额外空间开销
【LetMeFly】63.不同路径 II:动态规划 - 原地使用地图数组,几乎无额外空间开销 力扣题目链接:https://leetcode.cn/problems/unique-paths-ii/ 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0]&#…...

elementui:el-table支持搜索、切换分页多选功能,以及数据回显
1、el-table相关代码,需注意:row-key"(row) > { return row.id }" 以及 :reserve-selection"true" <div class"boxList"><div class"search-form"><!-- 搜索表单 --><el-form :inline"true&q…...
深度整理总结MySQL——索引正确使用姿势
索引正确使用姿势 前言MySQL索引优缺点分析✅ 索引的优势⚠️ 索引的代价 如何合理建立索引?——关键原则总结重要的优化机制索引覆盖——通俗的方式讲解索引下推索引跳跃式扫描 前言 这篇文章是补充一些基本概念和实战的一些使用建议. MySQL索引优缺点分析 ✅ 索引的优势 …...

使用LLaMA Factory踩坑记录
前置条件:电脑显卡RTX 4080 问题:LLaMA-Factory在运行的时候,弹出未检测到CUDA的报错信息 结论:出现了以上的报错,主要可以归结于以下两个方面: 1、没有安装GPU版本的pytorch,下载的是CPU版本…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...