基于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版本…...

亚博microros小车-原生ubuntu支持系列:25 二维码控制运动
二维码识别 安装依赖 pip3 install pyzbarsudo apt install libzbar-dev 在用小车识别之前,先用电脑的摄像头测试下基本的识别 import cv2 import rclpy from rclpy.node import Node import pyzbar.pyzbar as pyzbar import numpy as np from ament_index_pyth…...
基于深度学习的人工智能量化衰老模型构建与全流程应用研究
一、引言 1.1 研究背景与意义 1.1.1 人口老龄化现状与挑战 人口老龄化是当今全球面临的重要社会趋势之一,其发展态势迅猛且影响深远。根据联合国的相关数据,1980 年,全球 65 岁及以上人口数量仅为 2.6 亿,到 2021 年,这一数字已翻番,达到 7.61 亿,而预计到 2050 年,…...

【医院运营统计专题】2.运营统计:医院管理的“智慧大脑”
医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 引言 在当今医疗行业快速发展的背景下,医院运营管理的科学性和有效性成为了决定医院竞争力和可持续发展能力的关键因素。运营统计作为医院管理的重要工具,通过对医院各类数据的收集、整理、分析和解读,为医…...

Spring Boot Actuator使用
说明:本文介绍Spring Boot Actuator的使用,关于Spring Boot Actuator介绍,下面这篇博客写得很好,珠玉在前,我就不多介绍了。 Spring Boot Actuator 简单使用 项目里引入下面这个依赖 <!--Spring Boot Actuator依…...

【AI应用】免费的文本转语音工具:微软 Edge TTS 和 开源版 ChatTTS 对比
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 我试用了下Edge TTS,感觉还不错,不过它不支持克隆声音(比如自己的声音) 微软 Edge TTS 和 开源版 ChatTTS 都是免费的 文本转语音&…...

如何在 Qt 中添加和使用系统托盘图标
在 Qt 中实现系统托盘图标是一个常见的需求,尤其是在桌面应用程序中。系统托盘图标可以让应用程序在后台运行时仍然具有可见性,同时避免占用过多的桌面空间。本文将详细介绍如何在 Qt 项目中添加托盘图标,并通过资源系统(.qrc 文件…...

【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化
本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到,别忘了给仓库点个小心心~~~ https://github.com/LFF8888/FF-Studio-Resources 在自然语言处理领域,使用Hugging Face的Transformers库进行模型训练已经成为主流。然而,随着模型复…...

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头
知识点: 1、网站协议-http/https安全差异(抓包) 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP:使用明文传输,数据在传输过程中可以被…...

C语言基础系列【3】VSCode使用
前面我们提到过VSCode有多么的好用,本文主要介绍如何使用VSCode编译运行C语言代码。 安装 首先去官网(https://code.visualstudio.com/)下载安装包,点击Download for Windows 获取安装包后,一路点击Next就可以。 配…...

MySQL-5.7.44安装(CentOS7)
目录 1、下载安装包并解压 2、创建数据目录与日志目录 3、设置环境变量 4、刷新环境变量 5、执行初始化 6、创建配置文件目录 7、新建配置文件 8、为安装目录赋予可执行权限 9、创建服务启动脚本 10、启动服务并将启动脚本加入开机自启动 11、查看服务状态 12、创建…...