基于STM32单片机设计的宠物喂食监控系统
1. 项目开发背景
随着宠物数量的增加,尤其是人们对宠物的养护需求日益增多,传统的人工喂养和管理方式难以满足现代养宠生活的需求。人们越来越希望通过智能化手段提高宠物养护的质量和效率,特别是对于宠物喂食、饮水、温湿度控制等方面的智能化管理。
基于这一需求,设计并实现了一种基于STM32单片机的宠物喂食监控系统。该系统通过集成多种传感器,结合蓝牙无线通信和云物联网技术,实现了对宠物环境、饮水、喂食等多项功能的智能监控和管理。这不仅能提高宠物生活质量,还能为主人提供更便捷的管理方式。
2. 设计实现的功能
本项目的目标是设计一款智能宠物喂食监控系统,具体功能包括:
- 温湿度环境监控
采用温湿度传感器,实时采集当前环境的温湿度数据。当温度超过设定阈值时,自动开启风扇进行散热;当湿度超过设定阈值时,自动开启风扇进行空气除湿。 - 水位检测与自动加水
采用水位传感器,检测宠物水盆的水位情况。当水位低于设定阈值时,自动开启水泵进行加水,保障宠物水量充足。 - 食物检测与自动投喂
采用红外传感器,实时检测宠物食物盆中的食物量。当食物不足时,自动开启继电器控制投喂装置进行喂食。 - 手动模式与智能模式切换
提供7个按键进行手动模式与智能模式的切换,允许用户手动控制喂食、喂水、散热、除湿等功能,同时可以设置温湿度阈值。 - OLED液晶显示
系统通过OLED显示屏实时显示采集到的环境数据,包括当前的温湿度、设定的温湿度阈值、水位、食物量、控制模式等信息。 - 蓝牙无线控制
采用HC-05蓝牙模块实现与手机APP的无线通信,通过手机APP显示当前环境状态并支持远程控制,如模式切换、温湿度阈值设置、喂食、喂水、散热、除湿等操作。 - 数据上云与可视化管理
系统支持将数据通过WIFI模块上传至华为云物联网平台,采用MQTT协议进行数据传输。用户可以通过可视化网页查看历史数据、实时监控宠物的状态,并远程控制系统。 - 服务器与前端展示
采用Python作为后端服务器,接收华为云物联网平台的数据,并通过HTML前端页面展示。支持局域网或公网访问,用户可以在任何地方查看宠物状态并进行操作。
3. 项目硬件模块组成
本系统的硬件部分基于STM32单片机进行设计,主要包含以下模块:
3.1. 核心控制单元:STM32单片机
- 型号:STM32F103RCT6
- 功能:作为整个系统的核心控制单元,负责接收传感器数据、控制设备、进行数据传输与无线通信。
3.2. 温湿度传感器(SHT30)
- 功能:用于实时监测环境的温度和湿度,当温湿度超过设定阈值时,控制风扇启停以调整环境。
3.3. 水位传感器
- 功能:检测宠物水盆中的水位情况,当水位低于设定阈值时,自动开启水泵进行加水。
3.4. 红外传感器
- 功能:用于检测宠物食物盆中的食物量,当食物不足时,自动启动继电器进行食物投喂。
3.5. 风扇与水泵控制模块
- 功能:风扇和水泵的控制电路,通过继电器控制风扇、泵和喂食装置的启停。
3.6. 蓝牙模块(HC-05)
- 功能:实现与手机APP的无线通信,允许用户通过蓝牙进行远程控制和数据查看。
3.7. OLED显示模块
- 功能:用于实时显示环境数据,包括温湿度、设定阈值、水位、食物量等信息。
3.8. 继电器模块
- 功能:控制喂食装置、电动水泵和风扇的启停。
3.9. 无线网络模块(ESP8266)
- 功能:用于将数据上传至华为云物联网平台,实现数据存储和历史数据分析。
3.10. 电源模块
- 功能:为系统提供稳定的电源供应,保证各模块正常运行。
4. 设计思路
本项目的设计思路可以概括为以下几个步骤:
- 传感器数据采集
使用温湿度传感器、红外传感器和水位传感器采集环境数据、食物量和水量。 - 数据处理与控制决策
STM32单片机根据采集到的实时数据,进行处理和判断,是否满足自动控制的条件(如温湿度过高、水位不足、食物不足等),然后通过继电器控制设备的启停。 - 用户交互与模式切换
通过按键电路提供用户手动模式的操作,允许用户设置阈值和直接控制设备。用户也可以通过手机APP与系统进行无线通信,控制和查看宠物状态。 - 显示与反馈
使用OLED显示模块实时反馈当前环境的温湿度、水位、食物量等信息,让用户能够直观地了解宠物的状态。 - 数据上云与远程监控
系统通过ESP8266模块连接WIFI,并将数据上传至华为云物联网平台。用户可以通过PC端或手机端的网页实时查看宠物的状态、历史数据,并进行远程控制。 - 网页展示与控制
后端Python服务器通过API接口拉取华为云物联网平台的数据,将其展示在前端网页上,支持用户通过网页进行远程监控与控制。
5. 系统功能总结
功能模块 | 功能描述 | 实现方式 |
---|---|---|
温湿度环境监控 | 实时采集环境温湿度,当温湿度超过阈值时自动启动风扇和除湿 | SHT30传感器、继电器模块控制风扇 |
水位检测与自动加水 | 检测水盆水位,低于设定值时自动启动水泵加水 | 水位传感器、继电器模块控制水泵 |
食物检测与自动投喂 | 检测食物盆中食物量,低于设定值时自动投喂食物 | 红外传感器、继电器模块控制投喂装置 |
手动模式与智能模式切换 | 用户可手动设置阈值或切换模式,系统根据数据自动控制设备 | 7个按键电路、STM32控制逻辑 |
OLED显示功能 | 显示环境数据、设备状态、控制模式等信息 | OLED显示模块 |
蓝牙无线控制 | 通过手机APP无线控制温湿度阈值、喂食、喂水等操作 | HC-05蓝牙模块、手机APP |
数据上云与可视化管理 | 将实时数据上传至华为云,支持历史数据查看和远程控制 | ESP8266、华为云物联网平台、MQTT协议 |
前端网页展示与控制 | 通过网页展示宠物状态,并允许用户远程控制 | Python后端、HTML前端、API接口 |
6. 使用的模块技术详情介绍
6.1. STM32F103RCT6
STM32F103RCT6是STM32系列中一款基于ARM Cortex-M3核心的32位单片机,具有较强的处理能力和丰富的外设接口,适合嵌入式应用。该单片机具有高达72MHz的主频,支持多种通信接口(如USART、SPI、I2C等),广泛应用于物联网、自动化控制等领域。
6.2 SHT30温湿度传感器
SHT30是一款高精度的温湿度传感器,具有较高的测量精度和稳定性,适用于对温湿度要求较高的应用场景。通过I2C接口与STM32单片机进行通信,能够实时获取环境温湿度数据。
6.3. HC-05蓝牙模块
HC-05是一款常用的蓝牙串口模块,通过串口通信与STM32单片机连接,提供无线通信能力。用户通过手机APP与系统进行蓝牙连接,能够实现远程控制和数据查看。
6.4. ESP8266 WiFi模块
ESP8266是一款低成本、低功耗的WiFi模块,支持与STM32单片机进行串口通信,能够将采集到的数据通过WIFI上传至云端。该模块支持MQTT协议,用于物联网设备之间的数据传输。
6.5. OLED显示屏
OLED显示屏是一种广泛应用的显示模块,具有高对比度、广视角和低功耗的特点。在本系统中,OLED显示屏用于实时显示温湿度、水位、食物量等信息。
7. 总结
基于STM32单片机设计的宠物喂食监控系统通过集成多种传感器、无线通信技术和云物联网平台,实现了对宠物生活环境的全面监控和管理。系统具有智能自动模式和手动模式两种操作方式,用户通过手机APP可以随时远程控制系统,并且能够实时查看宠物状态。通过将数据上传至华为云物联网平台,本系统还支持历史数据的查看和分析,进一步提升了宠物管理的智能化程度。
在今后的工作中,系统可以进一步优化传感器的精度和控制策略,增加更多的智能功能,如智能预警、自动喂食计划等,进一步提高系统的智能化水平和实用性。
8. STM32代码设计
以下是一个基本的 main.c
文件。此文件包括了系统初始化、各个模块的调用,以及手动模式和智能模式的切换。代码中已经使用了 STM32 HAL 库。
main.c
完整代码
#include "main.h"
#include "stm32f1xx_hal.h"
#include "sht30.h" // 温湿度传感器库
#include "oled.h" // OLED显示库
#include "water_level.h" // 水位传感器库
#include "food_level.h" // 食物红外传感器库
#include "relay_control.h"// 继电器控制库
#include "bluetooth.h" // 蓝牙控制库
#include "wifi.h" // WiFi上传库// 定义阈值
#define TEMP_THRESHOLD_HIGH 30 // 温度上限 (30°C)
#define TEMP_THRESHOLD_LOW 20 // 温度下限 (20°C)
#define HUM_THRESHOLD_HIGH 70 // 湿度上限 (70%)
#define HUM_THRESHOLD_LOW 40 // 湿度下限 (40%)
#define WATER_LEVEL_THRESHOLD 30 // 水位下限(单位:%)
#define FOOD_LEVEL_THRESHOLD 10 // 食物下限(单位:%)// 定义系统模式
#define MODE_MANUAL 0
#define MODE_AUTO 1// 全局变量
uint8_t system_mode = MODE_AUTO; // 初始为自动模式
float current_temp, current_hum; // 当前温湿度
int water_level, food_level; // 当前水位和食物量
uint8_t temp_threshold_high = TEMP_THRESHOLD_HIGH;
uint8_t temp_threshold_low = TEMP_THRESHOLD_LOW;
uint8_t hum_threshold_high = HUM_THRESHOLD_HIGH;
uint8_t hum_threshold_low = HUM_THRESHOLD_LOW;// 函数声明
void System_Init(void);
void Read_Sensors(void);
void Handle_Auto_Mode(void);
void Handle_Manual_Mode(void);
void Update_Display(void);
void Control_Fans(void);
void Control_Water_Pump(void);
void Control_Food_Dispenser(void);int main(void)
{// 系统初始化HAL_Init();System_Init();// 主循环while (1){// 读取传感器数据Read_Sensors();// 根据当前模式执行相应的操作if (system_mode == MODE_AUTO) {Handle_Auto_Mode();} else if (system_mode == MODE_MANUAL) {Handle_Manual_Mode();}// 更新OLED显示Update_Display();}
}void System_Init(void)
{// 初始化硬件外设HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); // 初始化GPIOOLED_Init(); // 初始化OLED显示SHT30_Init(); // 初始化温湿度传感器Water_Level_Init(); // 初始化水位传感器Food_Level_Init(); // 初始化食物传感器Relay_Init(); // 初始化继电器控制Bluetooth_Init(); // 初始化蓝牙模块Wifi_Init(); // 初始化WiFi模块
}void Read_Sensors(void)
{// 读取温湿度传感器SHT30_Read_Temperature_Humidity(¤t_temp, ¤t_hum);// 读取水位传感器water_level = Water_Level_Read();// 读取食物量传感器food_level = Food_Level_Read();
}void Handle_Auto_Mode(void)
{// 根据温湿度自动控制风扇和除湿Control_Fans();// 根据水位自动控制加水if (water_level < WATER_LEVEL_THRESHOLD) {Control_Water_Pump();}// 根据食物量自动控制投喂if (food_level < FOOD_LEVEL_THRESHOLD) {Control_Food_Dispenser();}
}void Handle_Manual_Mode(void)
{// 手动控制模式下,蓝牙控制命令判断Bluetooth_Control();// 用户通过按键手动调整温湿度阈值if (Button_Pressed(UP_TEMP_BTN)) {temp_threshold_high += 1; // 增加温度阈值}if (Button_Pressed(DOWN_TEMP_BTN)) {temp_threshold_high -= 1; // 减少温度阈值}if (Button_Pressed(UP_HUM_BTN)) {hum_threshold_high += 5; // 增加湿度阈值}if (Button_Pressed(DOWN_HUM_BTN)) {hum_threshold_high -= 5; // 减少湿度阈值}// 手动控制加水和喂食if (Button_Pressed(WATER_BTN)) {Control_Water_Pump();}if (Button_Pressed(FEED_BTN)) {Control_Food_Dispenser();}
}void Control_Fans(void)
{// 控制温湿度风扇if (current_temp > temp_threshold_high || current_hum > hum_threshold_high) {Relay_On(FAN_RELAY);} else if (current_temp < temp_threshold_low && current_hum < hum_threshold_low) {Relay_Off(FAN_RELAY);}
}void Control_Water_Pump(void)
{// 控制水泵Relay_On(WATER_PUMP_RELAY);HAL_Delay(3000); // 延时3秒钟加水Relay_Off(WATER_PUMP_RELAY);
}void Control_Food_Dispenser(void)
{// 控制食物投喂Relay_On(FEED_RELAY);HAL_Delay(2000); // 延时2秒钟投喂Relay_Off(FEED_RELAY);
}void Update_Display(void)
{// 更新OLED显示屏,显示传感器数据和系统状态OLED_Clear();OLED_Display_String(0, 0, "Temp: %.1f C", current_temp);OLED_Display_String(0, 1, "Humidity: %.1f %%", current_hum);OLED_Display_String(0, 2, "Water: %d %%", water_level);OLED_Display_String(0, 3, "Food: %d %%", food_level);if (system_mode == MODE_AUTO) {OLED_Display_String(0, 4, "Mode: Auto");} else {OLED_Display_String(0, 4, "Mode: Manual");}
}void Bluetooth_Control(void)
{// 读取蓝牙指令并处理uint8_t command = Bluetooth_Read_Command();if (command == 'M') {system_mode = MODE_MANUAL; // 切换到手动模式} else if (command == 'A') {system_mode = MODE_AUTO; // 切换到自动模式} else if (command == 'W') {Control_Water_Pump(); // 手动加水} else if (command == 'F') {Control_Food_Dispenser(); // 手动投喂}
}
代码解释
- 初始化函数(
System_Init
)
初始化所有硬件模块,包括OLED显示、温湿度传感器、水位传感器、食物传感器、继电器模块、蓝牙和WiFi模块。 - 传感器数据读取(
Read_Sensors
)
通过调用各自的函数获取传感器数据。温湿度数据通过SHT30_Read_Temperature_Humidity
获取,水位和食物数据分别通过Water_Level_Read
和Food_Level_Read
获取。 - 自动模式处理(
Handle_Auto_Mode
)
根据当前的传感器数据,自动判断是否需要开启风扇(散热或去湿),是否需要加水和投食。 - 手动模式处理(
Handle_Manual_Mode
)
在手动模式下,允许用户通过按键设置温湿度阈值,并通过蓝牙控制手动加水、喂食等操作。 - 风扇控制(
Control_Fans
)
如果温度超过设定阈值或湿度超过阈值,开启风扇;否则,关闭风扇。 - 水泵控制(
Control_Water_Pump
)
如果水位低于设定阈值,开启水泵加水。 - 食物投喂控制(
Control_Food_Dispenser
)
如果食物量不足,启动继电器进行食物投喂。 - OLED显示更新(
Update_Display
)
将温湿度、水位、食物量和当前模式等信息显示在OLED屏上。 - 蓝牙控制(
Bluetooth_Control
)
从蓝牙接收控制命令,切换模式或执行操作(如加水、投喂)。
相关文章:
基于STM32单片机设计的宠物喂食监控系统
1. 项目开发背景 随着宠物数量的增加,尤其是人们对宠物的养护需求日益增多,传统的人工喂养和管理方式难以满足现代养宠生活的需求。人们越来越希望通过智能化手段提高宠物养护的质量和效率,特别是对于宠物喂食、饮水、温湿度控制等方面的智能…...
Minio分布式多节点多驱动器集群部署
Minio分布式多节点多驱动器集群部署 Minio分布式多节点多驱动器集群部署节点规划先决条件开放防火墙端口设置主机名更新域名映射文件时间同步存储要求内存要求 增加虚拟机磁盘(所有机器都要执行)部署分布式 MinIO测试上传与预览测试高可用MinIO 配置限制模拟单节点磁盘故障模拟…...
Web前端开发——HTML基础
本系列博客声明,根据本人所学书籍和网上的一些资料共同磨合,写下web前端系列的博客 HTML基础 一、HTML基本概述[^1]二、HTML大体认知1.HTML基本结构2.HTML 语法格式 三、THML常用标记[^2]1.文本标记(1)标题(2…...
《计算机视觉》——图像拼接
图像拼接 图像拼接是将多幅有重叠区域的图像合并成一幅全景或更大视角图像的技术,以下为你详细介绍: 原理:图像拼接的核心原理是基于图像之间的特征匹配。首先,从每幅图像中提取独特的特征点,如角点、边缘点等&#x…...
zookeeper从入门到精通
一、入门基础 1.1 什么是 ZooKeeper ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,后成为 Apache 的顶级项目。它为分布式应用提供了高效、可靠的协调服务,例如统一命名服务、配置管理、分布式锁、集群管理等。ZooKeeper 的数据模型类…...
2.2 添加注释
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 注释是为了方便理解代码含义而添加的简短的解释性说明。在编译时,编辑器不会将注释加入最终生成的文件中,不…...
具有快慢思考的语言调节机器人操作
24年1月来自华东师范大学、美的集团和上海大学的论文“Language-Conditioned Robotic Manipulation with Fast and Slow Thinking”。 语言调节机器人操作,旨在将自然语言指令转化为可执行动作,从简单的“拾取和放置”到需要意图识别和视觉推理的任务。…...
美颜相机1.0
项目开发步骤 1 界面开发 美颜相机界面构成: 标题 尺寸 关闭方式 位置 可视化 2 创建主函数调用界面方法 3 添加两个面板 一个是按钮面板一个是图片面板 用JPanel 4 添加按钮到按钮面吧【注意:此时要用初始化按钮面板的方法initBtnPanel 并且将按钮添…...
Css3重点知识讲解
选择器 优先级: id 选择器 > 类选择器 > 标签选择器 类选择器: .myClass {color: blue; }id 选择器(全局唯一): #myId {color: green; }标签选择器: p {color: red; }层次选择器: /…...
[Web 安全] Web 安全攻防 - 学习手册
关联专栏:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:Web 安全攻防 —— 信息收集篇 Web 信息收集 — 手动收集域名信息 Web 信息收集 — 手动收集 IP 信息 Web 信息收集 — 端口服务信息收集 Web 信息收集 — 自动化信息收集 — ShuiZe 水泽 We…...
nextjs的记录一些小东西
1. 格式化时间:使用date-fns库 npm install date-fns 在组建中创建date.js import { parseISO, format } from date-fnsexport default function Date({ dateString }) {const date parseISO(dateString)return <time dateTime{dateString}>{format(date,…...
故障诊断 | PID搜索算法优化CatBoost故障诊断(MatlabPython)
目录 效果一览文章概述故障诊断 | PID搜索算法优化CatBoost故障诊断(Matlab&Python)PID搜索算法优化CatBoost故障诊断PID搜索算法优化CatBoost故障诊断一、引言1.1、研究背景与意义1.2、研究现状1.3、研究目的与内容二、CatBoost算法概述2.1、CatBoost算法原理2.2、CatBo…...
探索关键领域的AI工具:机器学习、深度学习、计算机视觉与自然语言处理
引言 在人工智能(AI)迅猛发展的今天,机器学习(ML)、深度学习(DL)、计算机视觉(CV)和自然语言处理(NLP)已经成为解决复杂问题的关键技术。无论是自动驾驶车辆的视觉识别,还是智能助手的对话理解,这些技术都在改变着世界。本文将介绍在各个领域…...
使用 DeepSeek 生成流程图、甘特图与思维导图:结合 Typora 和 XMind 的高效工作流
在现代工作与学习中,可视化工具如流程图、甘特图和思维导图能够极大地提升信息整理与表达的效率。本文将详细介绍如何使用 DeepSeek 生成 Mermaid 文本,结合 Typora 快速生成流程图和甘特图,并通过 Markdown 格式生成思维导图,最终…...
11、集合框架
一、简介 Java集合框架位于java.util包中 Collection是Set和List的父类,Collections是工具类,提供了对集合进行排序、遍历等多种算法的实现。 ArrayList: 有序(放进去顺序和拿出来顺序一致),可重复 HashSet: 无序(放进去顺序和拿出来顺序不…...
从入门到精通Rust:资源库整理
今天给大家分享一些优质的Rust语言学习资源,适合不同水平的学习者。前三个官方资源是我Rust语言的启蒙老师,非常平易近人。 官方资源 The Rust Programming Language (The Book) 链接: https://doc.rust-lang.org/book/ 简介: 官方权威指南,…...
Spring Boot 项目启动命令大全:参数详解与高阶用法
Spring Boot 项目启动命令大全:参数详解与高阶用法 一、基础启动命令 默认启动命令 java -jar xxx.jar适用场景:开发环境快速启动,使用默认配置(端口 8080,内存由 JVM 自动分配)。 指定 JVM 内存参数 java…...
c++day4
作业 #include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory>using namespace std; class S{ private:int a;int b; public:S(i…...
应对LLM应用中的AI幻觉,如何通过Token对数概率预测LLM的可靠性
应对LLM应用中的AI幻觉 如何通过Token对数概率预测LLM的可靠性 内容: 1. 相关机器学习(ML)概念回顾(精准度/召回率,LLM直觉) 2. 使用序列对数概率度量作为LLM信心 3. 通过案例研究结果过滤低质量LLM输出…...
Openwrt路由器操作系统
一、什么是 OpenWrt? OpenWrt 是一个基于 Linux 的开源操作系统,主要设计用于嵌入式设备,尤其是路由器。与其说是传统的路由器固件,不如说它是一个路由器操作系统。 传统的路由器固件通常由路由器厂商开发,功能相对固…...
基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“流浪动物救助系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统…...
Ansible 学习笔记
这里写自定义目录标题 基本架构文件结构安装查看版本 Ansible 配置相关文件主机清单写法 基本架构 Ansible 是基于Python实现的,默认使用22端口, 文件结构 安装 查看用什么语言写的用一下命令 查看版本 Ansible 配置相关文件 主机清单写法...
(六)趣学设计模式 之 代理模式!
目录 一、啥是代理模式?二、为什么要用代理模式?三、代理模式的实现方式1. 静态代理2. JDK动态代理3. CGLIB动态代理 四、三种代理的对比五、代理模式的优缺点六、代理模式的应用场景七、总结 🌟我的其他文章也讲解的比较有趣😁&a…...
【CSS】HTML元素布局基础总结
HTML默认布局和元素显示 CSS 元素显示 { HTML 默认布局: 流式布局 { 从左到右,从上到下 随页面宽度变化动态排列元素 文档流:整个 H T M L 文档的流式布局 HTML 元素分为 { 块级元素 :默认占满一行 行内元素 :在行内最…...
【JavaScript】什么是JavaScript?以及常见的概念
作为 JavaScript 初学者,想要更好地理解这门语言,需要从核心概念、实践练习和项目实战三个方面入手。下面是详细的学习路线和方法,帮助你系统性地掌握 JavaScript。 一、理解 JavaScript 的核心概念 JavaScript 是一门动态、弱类型的编程语言…...
为什么要将PDF转换为CSV?CSV是Excel吗?
在企业和数据管理的日常工作中,PDF文件和CSV文件承担着各自的任务。PDF通常用于传输和展示静态的文档,而CSV因其简洁、易操作的特性,广泛应用于数据存储和交换。如果需要从PDF中提取、分析或处理数据,转换为CSV格式可能是一个高效…...
P1038 [NOIP 2003 提高组] 神经网络
题目描述 在兰兰的模型中,神经网络就是一张有向图,图中的节点称为神经元,而且两个神经元之间至多有一条边相连,下图是一个神经元的例子: 神经元(编号为 i) 图中,X1∼X3 是信息…...
TypeScript 类型断言的适用场景及代码示例
类型断言的适用场景及代码示例 适用场景 类型断言就像是你很确定某个东西是什么,然后直接告诉 TypeScript 编译器“相信我,它就是这个类型”。以下是几种常见的适用场景: 从 any 类型恢复具体类型:当你使用 any 类型时…...
Docker 容器
Docker 是一种开源的容器化平台,可以让开发人员将应用程序及其依赖项打包到一个可移植的容器中,然后部署到任何支持 Docker 的环境中。Docker 的基本概念包括以下几点: 1. **容器(Container)**:容器是一个独立、轻量级的运行环境…...
Spark(3)vi的基本使用
一.打开与创建文件 二.三种模式 三. 光标操作 四.复制粘贴 一.打开与创建文件 它是linux的内置命令,所以还是以命令的方式来运行。 命令的格式是:Vi /路径/文件名。要注意如下两种情况: 1.如果这个文件不存在,此时就是新建文…...
element-ui的组件使用
1. 安装 Element UI(在文件夹最上面输入cmd进入dos窗口,然后输入安装指令 npm install element-ui --save) 2.在main.js文件全局引入(main.js文件负责 全局注册 ),在该文件注册的所有组件在其他文件都能直接调用,一般…...
Starlink卫星动力学系统仿真建模第九讲-滑模(SMC)控制算法原理简介及卫星控制应用
滑模控制(Sliding Mode Control)算法详解 一、基本原理 滑模控制(Sliding Mode Control, SMC)是一种变结构控制方法,通过设计一个滑模面(Sliding Surface),迫使系统状态在有限时间内…...
《深度剖析Linux 系统 Shell 核心用法与原理_666》
1. 管道符的用法 查找当前目录下所有txt文件并统计行数 # 使用管道符将ls命令的结果传递给wc命令进行行数统计 ls *.txt | wc -l 在/etc目录下查找包含"network"的文件并统计数量 # 使用find命令查找文件,并通过grep查找包含特定字符串的文件…...
51单片机学习之旅——定时器
打开软件 1与其它等于其它,0与其它等于0 1或其它等于1,0或其它等于其它 TMODTMOD&0xF0;//0xF01111 0000进行与操作,高四位保持,低四位清零,高四位定时器1,低四位定时器0 TMODTMOD|0x01;//0x010000 0…...
超详细介绍map(multimap)的使用
map类的介绍 map的声明如下,Key是map底层关键字的类型,T是map底层value的类型。set默认要求Key支持小于比较,如果不支持或者需要的情况下我们可以自行传入仿函数,map底层存储数据的内存是从空间申请来的。一般情况下,我…...
原生稀疏注意力NSA 替换transformer 注意力进行文本生成训练
DeepSeek-R1这篇文章,聚焦范围更加小,R1的重点在于提出了一个文本生成的训练策略和蒸馏策略,这篇文章则是提出了一个注意力机制NSA,主要解决的是长序列做注意力时带来的效率问题。通篇文章看下来,它的实际意义可能比较…...
读书笔记:《百年孤独》
《百年孤独》加西亚.马尔克斯 著 范晔 译 读出了阅读障碍。 记不得书中的人,记不得书中的事,更不知何为孤独,只记得马孔多,这个陌生的地方,还有那个猪尾巴婴儿。 百年:故事跨越了百年 孤独&#…...
TVS管学习记录
文章目录 前言一、TVS是什么?二、TVS关键参数1.反向截至电压**实际意义** 2.钳位电压**定义与作用****选择依据** **4. 实际应用示例****场景:通信端口的ESD保护** 3.反向截至电压和钳位电压的关联和区别**. 小结** 三、实际应用电路举例总结 前言 TVS管…...
网络安全系统概述 网络安全系统分为几级
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 5级 网络信息系统安全等级保护分为五级,一级防护水平最低,最高等保为五级。分别是用户自主保护级、系统审计保护级、安全标记保护级、结构…...
基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
写在前面 博文内容涉及 基于 Deepseek LLM 的本地知识库搭建使用 ollama 部署 Deepseek-R1 LLM知识库能力通过 Ragflow、Dify 、AnythingLLM、Cherry 提供理解不足小伙伴帮忙指正 😃,生活加油 我站在人潮中央,思考这日日重复的生活。我突然想,…...
Apache Flink架构深度解析:任务调度、算子数据同步与TaskSlot资源管理机制
Apache Flink是一个分布式流处理框架,其核心架构设计围绕有界与无界数据流的统一处理能力展开。以下从任务分配、算子数据同步、TaskManager与JobManager的TaskSlot机制三个维度展开详细分析: 一、任务分配机制 Flink的任务分配基于并行度(P…...
Linux 常见命令全解析
一、文件操作命令 1. ls ls是列出目录内容的命令。简单输入ls,会展示当前目录下的文件和目录列表。想要获取更详细的信息,比如文件权限、所有者、大小、修改时间等,使用ls -l。若要显示所有文件,包括以点(.ÿ…...
k8s集群部署
集群结构 角色IPmaster192.168.35.135node1192.168.35.136node2192.168.35.137 部署 #需在三台主机上操作 //关闭防火墙 [rootmaster ~]# systemctl disable --now firewalld//关闭selinux [rootmaster ~]# sed -i s/enforcing/disabled/ /etc/selinux/config//关闭swap分区…...
springboot005学生心理咨询评估系统(源码+数据库+文档)
源码地址:学生心理咨询评估系统 文章目录 1.项目简介2.部分数据库结构与测试用例3.系统功能结构4.包含的文件列表(含论文)后台运行截图 1.项目简介 使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了,把现…...
LeetCode37
LeetCode37 目录 题目描述示例思路分析代码段代码逐行讲解复杂度分析总结的知识点整合总结...
2025年02月24日Github流行趋势
项目名称:mastra 项目地址url:https://github.com/mastra-ai/mastra 项目语言:TypeScript 历史star数:5735 今日star数:1140 项目维护者:adeleke5140, abhiaiyer91, TheIsrael1, adeniyii, Joshuafolorunsh…...
Spring Boot 中的日志管理
一、日志框架选择 1. 主流框架对比 框架特点Spring Boot 默认支持Logback- 性能优异,Spring Boot 默认集成- 支持自动热更新配置文件✅ (默认)Log4j2- 异步日志性能更强- 支持插件扩展- 防范漏洞能力更好❌ (需手动配置)JUL (JDK自带)- 无需额外依赖- 功能简单&am…...
后端之JPA(EntityGraph+JsonView)
不同表之间的级联操作或者说关联查询是很多业务场景都会用到的。 对于这种需求最朴素的方法自然是手动写关联表,然后对被关联的表也是手动插入数据。但是手写容易最后写成一堆shit代码,而且修改起来也是非常麻烦的。 学会使用现成的工具还是非常有利的…...
点击修改按钮图片显示有问题
问题可能出在表单数据的初始化上。在 ave-form.vue 中,我们需要处理一下从后端返回的图片数据,因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …...
Linux第一个小程序-进度条 (linux第七课)
目录 知识补充: 随机数的使用,先用srand(time(NULL))种时间种子 函数指针 模拟进度条代码 知识补充: \r只是回车 \r\n是回车加换行,其中\n带有强制换行的功能 如果只使用\r ,还需要刷新缓冲区(fflush(stdout)) %2d是左对齐 %-2d是右对齐 %.1lf是小数点后保留一位 随机数的使…...