stm32项目(8)——基于stm32的智能家居设计

目录

一.功能设计

二.演示视频

三.硬件选择

1.单片机

2.红外遥控

3.红外探测模块

4.光敏电阻模块

5.温湿度检测模块

6.风扇模块

7.舵机

8.WIFI模块

9.LED和蜂鸣器

10.火焰传感器

11.气体传感器

四.程序设计

1.连线方式

2.注意事项

3.主程序代码

五.课题意义


一.功能设计

本次设计的目标是想实现如下图所示的智能家居环境

本次设计所实现的功能:
        用红外遥控输入密码,密码正确,绿灯亮,系统工作,实现后面的功能,密码不正确红灯亮,不工作。
        红外避障检测到汽车靠近,自动抬杆
        检测光照强度,显示到TFTLCD屏幕上,天亮自动开窗
        检测温湿度数值,温度高,自动开风扇。
        火焰传感器检测到有火,烟雾传感器检测到有烟雾,蜂鸣器就报警。
       通过WIFI模块连接到原子云, 从云端远程控制开门、开窗,同时将温度 湿度 光照信息上传到原子云显示

二.演示视频

完成后的演示视频如下:

基于探索者开发板的智能家居_功能演示

正点原子WIFI模块连接原子云的讲解

三.硬件选择

        所有硬件的实物图如下:

1.单片机

        单片机选择stm32f407,用的是正点原子的探索者开发板。

        正点原子探索者开发板(Atomic Explorer)是一款基于STM32系列微控制器的开发板。它由正点原子推出,旨在方便开发者进行嵌入式系统的开发和调试。

        该开发板采用了常见的DIP封装,具有丰富的外设和接口,包括数字量输入输出口、模拟量输入输出口、串口、SPI、I2C等接口,以满足不同项目的需求。开发板还配备了丰富的功能模块,如LED指示灯、继电器、按键、温湿度传感器等,方便开发者快速验证和验证项目的可行性。

        开发者可以使用开发板上提供的开发环境和开源库进行程序开发,也可以与其他常用开发环境(如Keil、IAR)配合使用。开发板支持C语言和汇编语言编程,开发者可以根据自己的需要选择合适的编程方式。

        总之,正点原子探索者开发板是一款功能丰富、易于使用的嵌入式系统开发工具,适用于学习、原型开发和小型项目开发等各种场景。

2.红外遥控

        红外遥控用的是买单片机自带的。

        通常红外遥控为了提高抗干扰性能和降低电源消耗,红外遥控器常用载波的方式传送二进制编码,常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用36kHz、40 kHz、56 kHz等,一般由发射端晶振的振荡频率来决定。所以,通常的红外遥控器是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。 

        红外接收设备是探索者板子上自带的,由红外接收电路、红外解码、电源和应用电路组成。红外遥控接收器的主要作用是将遥控发射器发来的红外光信号转换成电信号,再放大、限幅、检波、整形,形成遥控指令脉冲,输出至遥控微处理器。近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VOUT)。

3.红外探测模块

        红外探测模块检测到有车靠近时,自动抬杆。使用模块如下所示:

        该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3v-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。

        其原理图如下所示

4.光敏电阻模块

        光敏电阻模块如下图所示: 

        光敏电阻模块(Photoresistor Module)是一种基于光敏电阻原理的传感器模块。它是一种被广泛应用于光敏感测领域的组件,常用于测量环境中的光强度。

        光敏电阻模块通常由光敏电阻元件和调节电路组成。光敏电阻元件是一种能随着光照强度变化而改变电阻值的组件。当光照强度增加时,电阻值会减小;反之,当光照强度减小时,电阻值会增加。调节电路通常用于对光敏电阻的输出进行放大和转换。

        光敏电阻模块可以通过数字或模拟信号进行输出。在数字输出模式下,当光敏电阻检测到的光强度超过预设阈值时,输出高电平;否则,输出低电平。在模拟输出模式下,光敏电阻模块会输出一个与光强度成正比的电压或电流信号。

        光敏电阻模块广泛应用于自动调节和感知光照的场景中。例如,它可以用于光敏感控灯系统、光敏感自动窗帘系统、光敏感安防系统等。通过与其他模块或控制器结合,光敏电阻模块可以实现光强度的实时监测和光敏感应控制。

        只要用单片机的AD转换功能,检测该模块输出电压的大小,都可以知道环境光照强度大小。

5.温湿度检测模块

         温湿度传感器选择的是DHT11,实物图如下:

        DHT11是一款广泛应用于温湿度测量的数字温湿度传感器。DHT代表Digital Humidity and Temperature(数字湿度和温度),11表示其具有11位的输出精度。

        DHT11传感器由温湿度感测元件、AD转换电路和数字信号处理电路组成。它采用单总线传输方式,通过一个总线线路即可同时获取温度和湿度数据。DHT11的测量范围为温度0℃至50℃,湿度20%RH至90%RH。

        DHT11传感器的使用非常简单,只需将其三个引脚分别连接到供电(VCC)、地(GND)和数据(DATA)引脚即可。通过单总线协议,可以通过读取引脚上的数字信号来获取温度和湿度值。通常情况下,开发者需要使用相应的库或驱动程序来与DHT11传感器进行交互,以便读取温湿度数据并进行进一步的处理和应用。

6.风扇模块

        风扇模块实物图:

         这种风扇自带驱动,直接用单片机IO口就可以控制它的转动,非常方便,不需要外加驱动模块,可以大大提高便利性。

7.舵机

        本次使用小型数字舵机。实物:

 

 可见,只要给该舵机一定时间的高电平,就能控制舵机转动到对应的角度!

8.WIFI模块

        WIFI模块使用正点原子的WIFI模块,实物图如下:

      

        WIFI模块(Wireless Fidelity Module)是一种用于无线网络通信的模块,可以使设备具备无线网络连接的能力。

        WIFI模块通常与设备的主控芯片或微控制器结合使用,通过无线局域网(WLAN)技术实现设备与网络的连接。它可以通过无线方式传输数据、接入互联网、与其他设备进行通信等。

        WIFI模块的工作原理主要基于标准的无线网络协议(如IEEE 802.11系列标准),其中常见的协议包括802.11b、802.11g、802.11n和802.11ac等。这些协议定义了WIFI模块与其他设备之间的通信规范,包括使用的频段、数据传输速率、安全认证等。

        使用WIFI模块,设备可以利用现有的无线网络基础设施(如无线路由器)与互联网进行连接,以实现各种应用场景。例如,智能家居设备可以通过WIFI模块连接到家庭无线网络,实现远程控制和监控;物联网设备可以通过WIFI模块与云服务器进行通信,实现数据传输和远程控制等。

       在探索者板子上,WIFI模块使用的是串口三,所以到时候直接用串口三控制这个WIFI模块就可以了。 

        在程序设计时,我用了一个按键控制了WIFI模块的连接,按下K0,才进行WIFI模块连接到原子云这一步工作。

9.LED和蜂鸣器

        LED和蜂鸣器直接用板子上自带就即可。

10.火焰传感器

        火焰传感器是专门用来探测火源的传感器。火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为模拟电压信号输出。  本次使用的火焰传感器,火焰强度越大,输出的电压越低。火焰强度越小,输出的电压越大。是一个反比例关系。

        所以,当有火焰时,该模块输出低电平。单片机检测到低电平就可以进行相关的控制操作。 

11.气体传感器

        气体传感器使用的是MQ2,MQ-2气体传感器对气体敏感,能检测出包括天然气、甲烷、酒精在内的多种可燃性气体,是一款高性价比传感器。下图为MQ-2传感器的实物图:

        本次只使用了它的数字输出口,当传感器检测到有烟雾时就会输出低电平,单片机检测到这个低电平就知道有烟雾产生了。 

四.程序设计

1.连线方式

/**
 ****************************************************************************************************
 红外避障端口  数字输出端“D” 接到单片机PB3口
 汽车抬杆控制口为PB0
 光照传感器接PA5
 控制开窗的舵机接PB1
 温湿度传感器接PG9
 风扇的INA接PC0  INB 接PC2
 火焰传感器 数字输出端“D” 接PB6
 气体传感器 数字输出端“D” 接PB7
 
 控制大门的舵机接 PB2
 ****************************************************************************************************
 */

2.注意事项

//开机后,用遥控输入开机密码  初始密码为 123456 输入时 按键按下去的时间必须非常短暂,避免重复触发 密码输入完成后 按下遥控器电源键进行密码判断
//密码输入过程中 如果输错了数字 可以按下删除键进行删除
//密码输入正确后  按下KEY0键 进行WIFI连接 连接过程会在LCD上显示
//连接上原子云后  温度 湿度 光照会传到原子云显示  从原子云发送1 控制大门的舵机会打开  发送0  大门关闭

3.主程序代码

/******************************************************************************************************红外避障端口  数字输出端“D” 接到单片机PB3口汽车抬杆控制口为PB0光照传感器接PA5控制开窗的舵机接PB1温湿度传感器接PG9风扇的INA接PC0  INB 接PC2火焰传感器 数字输出端“D” 接PB6气体传感器 数字输出端“D” 接PB7控制大门的舵机接 PB2*****************************************************************************************************///开机后,用遥控输入开机密码  初始密码为 123456 输入时 按键按下去的时间必须非常短暂,避免重复触发 密码输入完成后 按下遥控器电源键进行密码判断
//密码输入过程中 如果输错了数字 可以按下删除键进行删除
//密码输入正确后  按下KEY0键 进行WIFI连接 连接过程会在LCD上显示
//连接上原子云后  温度 湿度 光照会传到原子云显示  从原子云发送1 控制大门的舵机会打开  发送0  大门关闭
#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
#include "./BSP/LCD/lcd.h"
#include "./BSP/BEEP/beep.h"
#include "./BSP/KEY/key.h"
#include "./BSP/ADC/adc.h"
#include "./BSP/DHT11/dht11.h"
#include "./BSP/SENSOR/sensor.h"
#include "./BSP/REMOTE/remote.h"
#include "./BSP/TIMER/btim.h"
#include "string.h"char mima[]="123456";               //密码
int  light_yuzhi=200;               //光照强度阈值(可根据实际情况修改)
int  temp_yuzhi=20;                 //温度阈值int main(void)
{uint8_t key;uint8_t flag=0;                 //若flag=1  说明输入的密码正确uint8_t i = 0;uint16_t adcx=0;                     //保存AD转换的值   该值的大小反应了光照强度uint8_t temperature=0;             //保存温度数据uint8_t humidity=0;                //保存湿度数据char str[]="";char *p;HAL_Init();                             /* 初始化HAL库 */sys_stm32_clock_init(336, 8, 2, 7);     /* 设置时钟,168Mhz */delay_init(168);                        /* 延时初始化 */usart_init(115200);                     /* 串口初始化为115200 */btim_timx_int_init(10 - 1, 8400 - 1); /* 84 000 000 / 84 00 = 10 000 10Khz的计数频率,计数10次为1ms */usart3_init(115200);		//WIFI 初始化 波特率必须为 9600led_init();                             /* 初始化LED */lcd_init();                             /* 初始化LCD */sensor_init();                           //各种开关量传感器初始化beep_init();                            /* 初始化蜂鸣器 */key_init();                             /* 初始化按键 */remote_init();                         /* 红外接收初始化 */dht11_init();                            //温湿度传感器初始化adc_init();                             /* 初始化ADC  采集光照强度要用到ADC */g_point_color = RED;lcd_show_string(50, 40, 300, 32, 32, "SMART HOME SYSTEM", RED);     //显示标题lcd_show_string(50,100, 300, 16, 16, "key:", RED);     //显示标题lcd_show_string(30, 160, 200, 16, 16, "Light_Intensity", BLUE);        //显示光照强度lcd_show_string(30, 180, 200, 16, 16, "Light_yuzhi", BLUE);        //显示光照强度阈值lcd_show_xnum(110, 180, light_yuzhi, 5, 16, 0, BLUE);      lcd_show_string(30, 200, 200, 16, 16, "Temp:  C", BLUE);            //显示温度lcd_show_string(30, 220, 200, 16, 16, "Humi:  %", BLUE);          //显示湿度lcd_show_string(30, 240, 200, 16, 16, "Temp_yuzhi:  C", BLUE);            //显示温度阈值lcd_show_num(30 + 84, 240, temp_yuzhi, 2, 16, BLUE); while (1){key = remote_scan();          //检测红外遥控是否有按键按下if(key)                     //如果按键被按下{switch (key){               case 22:str[i++] = '1';break;case 25:str[i++] = '2';break;case 13:str[i++] = '3';break;case 12:str[i++] = '4';break;case 24:str[i++] = '5';break;case 94:str[i++] = '6';break;case 8:str[i++] = '7';break;case 28:str[i++] = '8';break;case 90:str[i++] = '9';break;case 66:str[i++] = '0';break;case 74:str[--i] = ' ';       //如果按了回退键,那么指针左移一位 相当于删除最后一位数字                                     break;case 69:                 //69 是电源键      按下以后进行密码判断                if(strcmp(str,mima)==0)        //如果密码正确{flag=1;}else{flag=0;lcd_show_string(80, 100, 300, 16, 16, "        ", RED);     //清空前面输错的密码}i=0;strcpy(str,"");               //清空  便于下次输入密码                  break;}}lcd_show_string(80, 100, 300, 16, 16, str, RED);     //显示输入的密码if(flag==1){  LED1(0);         //密码正确 绿灯亮LED0(1);lcd_show_string(50,100, 300, 16, 16, "welcaom to my smart home system", RED);     lcd_show_string(30, 320, 200, 16, 16, "press key0 to connect wifi", BLUE);if(KEY0==0){lcd_show_string(30, 340, 200, 16, 16, "WIFI Connecting......", BLUE);           u3_printf("AT+CWMODE=1\r\n");delay_ms(3000);u3_printf("AT+CWJAP=\"FAST_0A5C\",\"123456789\"\r\n");      //FAST_0A5C改成你自己的WIFI名字  后面的一串数字改成你自己的WIFI密码delay_ms(8000);u3_printf("AT+ATKCLDSTA=\"22021955902980447838\",\"88888888\"\r\n");      //这里的数字是设备编号 和 设备密码  改成你自己原子云里面对应的就行delay_ms(3000);lcd_show_string(30, 340, 200, 16, 16, "WIFI Conneced!         ", BLUE);}if(Infrared==0)           //如果红外避障检测到有车{rod_ctrl(180);         //那么抬起杆子    (控制杆子的舵机接在PB0  角度控制范围为0-180°)}else{rod_ctrl(90);          //否则杆子不抬起}adcx = adc_get_result_average(ADC_ADCX_CHY, 10);   /* ADCX即为光照强度 范围为0-4095 值越大 代表光照越强 用手指蒙住传感器adcx为50左右 正常情况下为180左右   用手电筒照射,可达到3000多(设定光照阈值时 可供参考)*/lcd_show_xnum(160, 160, adcx, 5, 16, 0, BLUE);      /* 显示ADC采样后的原始值 */if(adcx>light_yuzhi)                           //光照强度阈值 我设置为100    window_ctrl(180);                            //开窗elsewindow_ctrl(90);             //关窗dht11_read_data(&temperature, &humidity);             /* 读取温湿度值 */lcd_show_num(30 + 40, 200, temperature, 2, 16, BLUE); /* 显示温度 */lcd_show_num(30 + 40, 220, humidity, 2, 16, BLUE);    /* 显示湿度 */if(temperature>temp_yuzhi)       //如果温度大于阈值{INB(1);INA(0);     //开风扇}else{INB(0);INA(0);     //关风扇}if(Fire==0 || Gas==0)BEEP(1);       //开启蜂鸣器elseBEEP(0);u3_printf("temp:%d,humi:%d,light:%d\r\n",temperature,humidity,adcx);       //向原子云发送数据}else{LED0(0);         //否则 红灯亮LED1(1);}delay_ms(1000);}
}

五.课题意义

        基于STM32单片机的智能家居课题具有以下意义:

        1. 提升生活品质:智能家居系统可以通过自动化和智能化的方式,优化家居环境,提供更加舒适和便捷的生活体验。例如,通过自动调节照明、温度和湿度等参数,提高室内的舒适度;通过远程控制和智能时间表,实现家电的智能化管理,提供更加方便的生活方式。

        2. 节能环保:智能家居系统可以通过智能控制和能耗监测,实现能源的有效利用和节约。例如,通过智能照明控制,合理调节灯光亮度和开启时间,降低能耗;利用智能化的能源管理系统,定时监控和控制家电的用电量,提高能源利用效率。

        3. 安全保障:智能家居系统可以提供更高的安全性和防护性。通过安防监控系统、智能锁、入侵报警等智能设备的联动,实现家居的安全防护功能,提供实时的安全监控和警报系统。

        4. 开发创新:基于STM32单片机的智能家居课题可以促使开发者深入研究和应用嵌入式系统、物联网以及传感器技术等方面的知识。通过设计和开发智能家居系统,创新出更加智能、高效和可靠的解决方案,推动技术的发展和应用。

        5. 学习与实践机会:智能家居课题为学生提供了学习和实践的机会。在实际项目中,学生可以通过设计、搭建和调试智能家居系统,提高嵌入式系统开发、网络通信、传感器应用等技能,培养解决问题和创新思维的能力。

        综上所述,基于STM32单片机的智能家居课题具有提升生活品质、节能环保、安全保障、开发创新和学习实践的重要意义,对于推动智能家居技术的发展和应用具有积极的推动作用。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zabbix监控mysql数据库、nginx、Tomcat

文章目录 zabbix监控mysql数据库、nginx、Tomcat一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署(192.168.198.17)3.zabbix-mysql安装部署(192.168.198.15)3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通…

【JavaWeb】MySQL基础操作

1 通用语法规则 SQL语句可以单行或者多行书写,以分号结尾SQL语句不区分大小写,关键字建议使用大写单行注释 --注释内容(通用) # 注释内容(MySQL独有)多行注释 /* 注释内容 */ 2 语句 数据库 -- 查…

前后端分离------后端创建笔记(03)前后端对接(下)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

新增守护进程管理、支持添加MySQL远程数据库,支持PHP版本切换,1Panel开源面板v1.5.0发布

2023年8月14日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.5.0版本。 在这个版本中,1Panel新增了守护进程管理功能;支持添加MySQL远程数据库;支持添加FTP/S和WebDAV的SFTP服务;支持PHP版本切换。此外&am…

测试架构师如何落地性能测试方案(一)

背景描述: 最近刚接手一个新项目,在最开始的时候要求对这个项目做性能测试,产品经理也给不出性能需求,只因为这个项目是电商项目,可能会有高并发,秒杀的场景,所以产品经理要求我们对这个项目必…

深入浅出 栈和队列(附加循环队列、双端队列)

栈和队列 一、栈 概念与特性二、Stack 集合类及模拟实现1、Java集合中的 Stack2、Stack 模拟实现 三、栈、虚拟机栈、栈帧有什么区别?四、队列 概念与特性五、Queue集合类及模拟实现1、Queue的底层结构(1)顺序结构(2)链…

echarts3d柱状图

//画立方体三个面 const CubeLeft echarts.graphic.extendShape({shape: {x: 0,y: 0,width: 9.5, //柱状图宽zWidth: 4, //阴影折角宽zHeight: 3, //阴影折角高},buildPath: function (ctx, shape) {const api shape.api;const xAxisPoint api.coord([shape.xValue, 0]);con…

c++ 有元

友元分为两部分内容 友元函数友元类 友元函数 问题&#xff1a;当我们尝试去重载operator<<&#xff0c;然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作 数了。…

AutoDL服务器的镜像版本太高,配置python3.7 tensorflow1.15版本的框架的步骤

1.选择一个实例&#xff0c;进入后端界面 2. 更新bashrc中的环境变量 conda init bash && source /root/.bashrc查看虚拟环境 conda info --envs可以看到此时有一个base的虚拟环境 但是它的python版本为3.8.10&#xff0c;无法安装tensorflow1.15,所以我们要创建一个…

基于Java+SpringBoot+Vue的网上图书商城设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

[保研/考研机试] KY85 二叉树 北京大学复试上机题 C++实现

题目链接&#xff1a; 二叉树https://www.nowcoder.com/share/jump/437195121692000296981 描述 如上所示&#xff0c;由正整数1&#xff0c;2&#xff0c;3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是&#xff0c;结点m所在的子树中一共包…

k8s 自身原理 2

前面我们说到 K8S 的基本原理和涉及的四大组件&#xff0c;分享了前两个组件 etcd 和 ApiServer 这一次我们接着分享一波&#xff1a; 调度器 scheduler控制器管理器 controller manager 调度器 scheduler 调度器&#xff0c;见名知意&#xff0c;用于调度 k8s 资源的&…

cmake-ibmtpm1682编译

1、error Ossl library is using different radix 异常解决 RADIX_BITS由 64改成32 --whole-archive CMakeFiles\ibm-tpm-my.dir/objects.a -Wl, --no-whole-archive CMakeFiles\ibm-tpm-my.dir\linklibs.rsp CMake中的 --whole-archive以及–no-whole-archive两者都是编译器…

新能源汽车需要检测哪些项目

截至2022年底&#xff0c;中国新能源车保有量达1310万辆&#xff0c;其中纯电动汽车保有量1045万辆。为把好新能源汽车安全关&#xff0c;我国新能源汽车除了完善的强制性产品认证型式实验外&#xff0c;还建立了“车企-地方-国家”逐级上报的三级监管体系实行新能源汽车全生命…

opencv 基础54-利用形状场景算法比较轮廓-cv2.createShapeContextDistanceExtractor()

注意&#xff1a;新版本的opencv 4 已经没有这个函数 cv2.createShapeContextDistanceExtractor() 形状场景算法是一种用于比较轮廓或形状的方法。这种算法通常用于计算两个形状之间的相似性或差异性&#xff0c;以及找到最佳的匹配方式。 下面是一种基本的比较轮廓的流程&…

这所985非常难考,却无数人趋之若鹜!

一、学校及专业介绍 厦门大学&#xff08;Xiamen University&#xff09;&#xff0c;简称厦大&#xff08;XMU&#xff09;&#xff0c;位于福建省厦门市&#xff0c;位列国家“双一流”、“985工程”、“211工程”重点建设高校。 1.1 招生情况 厦门大学初试考847信号与系统…

LeetCode面向运气之Javascript—第27题-移除元素-98.93%

LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val&#xff0c;你需要原地移除所有数值等于val的元素&#xff0c;并返回移除后数组的新长度 举例 输入&#xff1a;nums [3,2,2,3], val 3 输出&#xff1a;2, nums [2,2] 输入&#xff1a;nums [0,1,2,2,3,0,4,2…

Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发

今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】 问题导入 思考:如何使用注解方式将Bean对象注入到类中 1.1 使用Autowired注解开启自动装配模式&#xff08;按类型&#xff09; Service public class StudentS…

vue3 使用@vue-office/excel预览本地excel文件 demo

vue3 使用vue-office/excel预览excel文件 demo 显示如下&#xff1a; npm地址&#xff1a;https://www.npmjs.com/package/vue-office/excel vue-office还有pdf和docx&#xff0c;按需下载对应插件 npm install vue-office/excel vue-demivue代码如下 app.vue <templ…

【Leetcode】79.单词搜索

一、题目 1、题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内…