指纹考勤系统

目录

1.课题研究目的和内容

1.1 课题研究目的

1.2 课题研究内容

2.系统总体方案设计及功能模块介绍

2.1总体方案设计

2.2 ATK-301模块介绍

2.3 TFTLCD显示功能模块介绍

2.4 蜂鸣器报警功能模块介绍

2.5 时钟模块介绍

3.系统硬件设计与实现

3.1 系统硬件电路图

3.2 STM32F103ZET6

3.3 ATK-301指纹识别模块

3.4 TFTLCD显示模块设计与实现

3.5蜂鸣器报警模块设计与实现

3.6时钟模块设计与实现

4.系统软件设计与实现

4.1主程序设计与实现

4.2 指纹识别模块子程序

4.3 TFTLCD显示子程序

4.4 蜂鸣器报警子程序

5.系统测试

5.1系统软件测试

5.2系统硬件测试

6.总结与展望

1.课题研究目的和内容

1.1 课题研究目的

    指纹识别作为识别技术有着悠久的历史,这种技术通过分析指纹的全局特征和局部特征,从指纹中抽取的特征值可以非常的详尽以便可靠地通过指纹来确认一个人的身份。随着时代飞速发展,指纹识别也越来越普及,此实验就是运用ATK-LB301指纹识别模块进行录指纹、删除指纹、设置波特率及对比等级,以及对电阻屏(led屏)字库函数运用等功能。该系统成本低,拓展性强,能够适用于各类场景。

1.2 课题研究内容

学习各种传感器及设备的一般技术和特殊技术的学习,总体方案的选型设计,STM32单片机及外围设备的软硬件系统的技术开发,还有系统的调试和总体运行原理,软件以流程图的方式表示。LCD显示模块与语音模块相互配合,显示考勤信息。

1,删指纹——与模块握手通过之后,屏幕将虚拟一个键盘,按‘删指纹’进入删除界面。在此界面可以按照提示输出一个数值按‘Enter’删除单个指纹,也可按‘清空指纹’清空指纹库。如果是误操作也可以按‘返回’主界面。

2,录指纹——按‘录指纹’进入此项。录指纹流程:按第一次手指-->按第二次手指-->自动生成模板-->输入存储ID-->存储指纹成功。其中两次按指纹操作,如果超过10次无手指按下则退回主界面。模块感应到手指按下0.3S(最少停留0.3S)后,蜂鸣器会“滴”一声!

3,刷指纹--与模块握手成功之后,主函数中不断查询验证指纹,有自动验证指纹和分布验证方式,可以 改变USE_AUTO_IDETIFY宏定义值来选择。验证通过模块亮绿色灯,不通过亮红色灯。

2.系统总体方案设计及功能模块介绍

2.1总体方案设计

在本设计中首先使用杜邦线将模块连接到开发板,触摸校准界面,随后进入指纹测试主界面,按下录指纹,系统会提示按指纹,后续一共需要录入四次再按一次指纹 ,录入第四次指纹成功之后系统会提 示。 当第四次指纹也录入成功, 系统就会生成指纹模板, 接着就会提示 “ 请输 入存储 I D , 按 Enter 保存 ” 。 最后显示录入指纹成功。

录入指纹和验证指纹流程图

2.2 ATK-301模块介绍 

ATK-301 电容 指纹识别模块 简介 ATK-301 电容 指纹识别模块(以下简称 LB301 模块)是 ALIENTEK 推出的一款高性 能的电容半导体指纹识别模块。 LB301 采用了瑞典 FPC 公司按压式电容指纹传感器,该传 感器具有功耗低、稳定、图像一致性效果好、耐静电等级高的特点

2.3 TFTLCD显示功能模块介绍 

本次设计使用的4.3TFTLCD。分辨率为800*480,16 位真彩显示,自带触摸屏,可以用来作为控制输入。LCD 接口连接在 STM32F103ZET6 的 FSMC 总线上面,可以显著提高 LCD 的刷屏速度。

2.4 蜂鸣器报警功能模块介绍 

本设计采用电磁式有源蜂鸣器,电磁式有源蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,是电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

2.5 时钟模块介绍 

本设计中使用的实时时钟作为本系统中重要部分,必须在保证系统断电时能够正常工作,同时具备一定的时间准确性。DS1302是一款微小电流充电时钟芯片,内含有一个实时时钟/日历和31字节静态 RA M ,通过 SPl 接口与单片机进行连接[3]。芯片内置时间日历存储器,用于保存时间信息,包括年、月、日等基础信息。在供电模式选择使用双电源供电。当主电源比备用电源高0.2V时,主电源供电;否则,备用电源供电。选择3V纽扣电池作为备用电源。

3.系统硬件设计与实现

3.1 系统硬件实物图

 图3-1-1 系统硬件实物图

3.2 STM32F103ZET6

STM32系列产品基于ARM Cortex-M0,M0+,M3,M4和M7内核,具有高性能、低成本、低功耗等特点,适用于各种嵌入式应用开发。

本次设计采用STM32F103ZET6开发板,共有54个可供用户使用的引脚,以及一个34引脚的LCD屏幕插槽。属于中低端的32位ARM微控制器,基于高性能内核Cortex-M3,频率约为1.25DMips/MHz。拥有1μs的双12位ADC,4M/s的UART,18MHz的I/O翻转速度,18M/s的SPI。同时保持低功耗的特点。该芯片集成了UART,USB,定时器,ADC,CAN,I2C,SPI等多项功能。是一款非常常用的微型控制器。STM32系列产品成本比51单片机要高出不少,但其性能及可供使用引脚也较之提高不少,相信随着成本的不断降低,市场上将会有更多基于STM32的诸如医疗用品、电力电子系统应用、编程控制器、电机驱动、警报系统等产品。原理图如下图所示。

 

图3-2-1 STM32F103ZET6原理图

3.3 ATK-301指纹识别模块 

ATK-301 电容指纹识别模块(以下简称 LB301 模块)是 ALIENTEK 推出的一款高性 能的电容半导体指纹识别模块。 LB301 采用了瑞典 FPC 公司按压式电容指纹传感器,该传 感器具有功耗低、稳定、图像一致性效果好、耐静电等级高的特点。模块搭配 GigaDevice (兆易创新)生产的指纹控制专用芯片,针对指纹传感器做出了大量的图像优化、速度优化、 算法优化, 使模块具有识别速度快,通过率高的等特点。相对传统光学指纹模块,本模块具 有识别速度更快、体积更小、功耗更低等特点 模块配备了串口通讯接口,用户无需研究复杂的图像处理及指纹识别算法, 只需通过简 单的串口通讯按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜、指纹门 禁系统、指纹锁等场合。

图3-3-1  ATK301模块原理图

3.4 TFTLCD显示模块设计与实现

TFTLCD引脚如图,图中的CS:TFTLCD片选信号WR:TFTLCD 写入数据RD:从TFTLCD读取数据D[15:0]:16位双向数据线RST:硬复位TFT LCDRS:命令/数据标志(0,读写命令;1,读写数据)。

 图3-4-1  TFTLCD引脚图

3.5蜂鸣器报警模块设计与实现

蜂鸣器与STM32连接原理图如图,图中Q1是用来扩流,R38则是一个下拉电阻,避免MCU复位的时候,蜂鸣器可能发声BEEP信号直接连接在MCU的PB8上面,PB8可以做PWM 输出。蜂鸣器的驱动信号连接在 STM32 的 PB8 上。

在系统检测到实际距离小于安全距离时,会输出一个低电平,使蜂鸣器报警。本次设计中蜂鸣器在硬件上是直接连接好了的,不需要经过任何设置,直接编写代码就可以了

     图3-5-1蜂鸣器与STM32连接原理图 

3.6时钟模块设计与实现

时钟不是日常显示时间的时钟,是指数字系统里的时钟电路。

几乎所有的数字系统在处理信号都是按节拍一步一步地进行的,系统各部分也是按节拍做的,要使电路的各部分统一节拍就需要一个“时钟信号”,产生这个时钟信号的电路就是时钟电路。

时钟电路的核心是个比较稳定的振荡器(一般都用晶体振荡器),振荡器产生的是正弦波,频率不一定是电路工作的时钟频率,所以要把这正弦波进行分频,处理,形成时钟脉冲,然后分配到需要的地方。让系统里各部分工作时使用。

任何工作都按时间顺序。用于产生这个时间的电路就是时钟电路。时钟电路一般由晶体振荡器、晶震控制芯片和电容组成。

图3-6-1时钟模块原理图 

4.系统软件设计与实现

4.1主程序设计与实现 

当系统接入电源并打开开发板开关后,主程序将会自动完成系统的初始化工作,主要包括头文件及一些变量定义的初始化。随后启动TFTLCD显示模块和指纹识别模块。首先录入指纹,正确录入后,蜂鸣器会“滴”一声!将自动生成模板和数据ID交给STM32进行处理,将处理好的数据发送给TFTLCD进行显示,将已存储的指纹与正在识别的指纹进行比对,通过模块亮绿色灯,不通过亮红色灯系统主程序流程图如图4-1-1所示。

 图4-1-1 主程序流程图

int main(void)
{    u8 ensure;u8 key_num;char *str;	u16 count = 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	delay_init();  	uart_init(115200);	usart2_init(usart2_baund);BEEP_Init();  			KEY_Init();					LCD_Init();						W25QXX_Init();			tp_dev.init();			usmart_dev.init(72);		my_mem_init(SRAMIN);		 exfuns_init();			  f_mount(fs[1],"1:",1);  POINT_COLOR=RED;while(font_init()) 				{	    LCD_ShowString(60,50,240,16,16,"Font Error!");delay_ms(200);				  LCD_Fill(60,50,240,66,WHITE);delay_ms(200);	}if(!(tp_dev.touchtype&0x80))	{Show_Str_Mid(0,30,”是否进行触摸屏校准”,16,240);POINT_COLOR=BLUE;Show_Str_Mid(0,60,”是:KEY2   否:KEY0“,16,240);	while(1){key_num=KEY_Scan(0);if(key_num==KEY0_PRES)break;if(key_num==KEY2_PRES){LCD_Clear(WHITE);TP_Adjust();  	 TP_Save_Adjdata();break;				}}}

4.2 指纹识别模块子程序

首先对超声波传感器的IO端口进行配置,配置PE4为输出模式,让该引脚实现输出高低电平功能,用于触发超声波的传播。配置PE2为输入模式,让该引脚实现识别高低电平功能,用于检测超声波信号的传输时间。将中断模式设置为定时器中断,使用的是定时器为定时器3。根据超声波传感器时序图3-2-1-2可得,触发超声波信号与检测回响信号之间有一定的时间间隔,为避免发射的超声波信号对接受的回响信号产生影响,因此将测量周期设置为100ms。超声波测距模块流程图如图4-2-1所示。

 图4-2-1超声波测距模块子程序流程图

LCD_Clear(WHITE);POINT_COLOR=RED;Show_Str_Mid(0,0,”指纹考勤系统”,16,240);	    			    	 Show_Str_Mid(0,20,”又是元气满满的一天”,16,240);				    	 POINT_COLOR=BLUE;Show_Str_Mid(0,40,"信号接收中...",16,240);	while(PS_GetImage() == 0xff){delay_ms(400);LCD_Fill(0,40,240,80,WHITE);Show_Str_Mid(0,40,"掉线了!!!",16,240);delay_ms(800);LCD_Fill(0,40,240,80,WHITE);Show_Str_Mid(0,40,"勿扰,信号接收中",16,240);		  }LCD_Fill(30,40,240,100,WHITE);Show_Str_Mid(0,40,"加载完成,可以签到了!!!",16,240);str=mymalloc(SRAMIN,30);sprintf(str,"波特率 :%d 地址:%x",usart2_baund,LB301Addr);Show_Str(0,60,240,16,(u8*)str,16,0);ensure=PS_ValidTempleteNum(&ValidN);	if(ensure!=0x00)ShowErrMessage(ensure);ensure=PS_ReadSysPara(&LB301Para);   if(ensure==0x00){mymemset(str,0,50);sprintf(str,”:%d :%d”,LB301Para.PS_max-ValidN,LB301Para.PS_level);Show_Str(0,80,240,16,(u8*)str,16,0);}elseShowErrMessage(ensure);	myfree(SRAMIN,str);LB301_load_keyboard(0,170,(u8**)kbd_menu);while(1){key_num=LB301_get_keynum(0,170);	if(key_num){if(key_num==1)Del_FR();		if(key_num==3)Add_FR();										}if(++count > 10) {count = 0;press_FR();		}delay_ms(1);				 } 	
}

4.3 TFTLCD显示子程序

本设计显示模块为TFT屏幕,主要用于显示摄像头拍摄画面及超声波传感器测距距离。为保证TFT液晶屏幕正常工作,我们需要对TFT屏幕进行初始化。

由于从ILI9341中读取的数据格式为GBR而我们写入的格式为RGB,因此需要进行数据格式转换,转换的方法为将数据向左位移8位,使得格式可以对其。

本次设计需要显示摄像头拍摄图像,扫描方向为从左下角到右上角,若想要显示中英文则为从左上角到右下角,若想要显示BMP图像为右上角到左下角或从右下角到左上角。

由于需要在TFT屏幕上方显示超声波测距结果,因此我们需要在指定区域上显示字符,具体方法为先设置字符显示起始坐标,然后设置需要显示的字符,需要显示的字体大小。摄像头模块在运行时的具体流程为先读取OV7670摄像头数据,并在屏幕中显示,然后读取超声波测距数据,流程图如图4-3-1所示。

图4-3-1 TFTLCD显示子程序流程图 

void LB301_load_keyboard(u16 x,u16 y,u8 **kbtbl)
{u16 i;POINT_COLOR=RED;kbd_tbl=kbtbl;LCD_Fill(x,y,x+240,y+150,WHITE);LCD_DrawRectangle(x,y,x+240,y+150);						   LCD_DrawRectangle(x+80,y,x+160,y+150);	 LCD_DrawRectangle(x,y+30,x+240,y+60);LCD_DrawRectangle(x,y+90,x+240,y+120);POINT_COLOR=BLUE;for(i=0;i<15;i++){Show_Str_Mid(x+(i%3)*80,y+7+30*(i/3),(u8*)kbd_tbl[i],16,80);} 
}
void LB301_key_staset(u16 x,u16 y,u8 keyx,u8 sta)
{		  u16 i=keyx/3,j=keyx%3;if(keyx>16)return;if(sta &&keyx!=1)		LCD_Fill(x+j*80+1,y+i*30+1,x+j*80+78,y+i*30+28,GREEN);else if(keyx!=1)LCD_Fill(x+j*80+1,y+i*30+1,x+j*80+78,y+i*30+28,WHITE);if(keyx!=1)¯Show_Str_Mid(x+j*80,y+7+30*i,(u8*)kbd_tbl[keyx],16,80);	
}
u8 LB301_get_keynum(u16 x,u16 y)
{u16 i,j;static u8 key_x=0;u8 key=0;tp_dev.scan(0); 		 if(tp_dev.sta&TP_PRES_DOWN){	for(i=0;i<5;i++){for(j=0;j<3;j++){if(tp_dev.x[0]<(x+j*80+80)&&tp_dev.x[0]>(x+j*80)&&tp_dev.y[0]<(y+i*30+30)&&tp_dev.y[0]>(y+i*30)){	key=i*3+j+1;	 break;	 		   }}if(key){	   if(key_x==key)key=0;else {LB301_key_staset(x,y,key_x-1,0);key_x=key;LB301_key_staset(x,y,key_x-1,1);}break;}}  }else if(key_x) {LB301_key_staset(x,y,key_x-1,0);key_x=0;} return key; 
}
u16 GET_NUM(void)
{u8  key_num=0;u16 num=0;while(1){key_num=LB301_get_keynum(0,170);	if(key_num){if(key_num==1)return 0xFFFF;if(key_num==3)return 0xFF00;if(key_num>3&&key_num<13&&num<99)num =num*10+key_num-3;		if(key_num==13)num =num/10;			if(key_num==14&&num<99)num =num*10;if(key_num==15)return num;  }LCD_ShowNum(80+15,170+7,num,6,16);}	
}
void ShowErrMessage(u8 ensure)
{LCD_Fill(0,120,lcddev.width,160,WHITE);Show_Str_Mid(0,120,(u8*)EnsureMessage(ensure),16,240);
}

4.4 蜂鸣器报警子程序

蜂鸣器报警,当存储指纹成功时,蜂鸣器将会发出声音警报,其中两次按指纹操作,如果超过10次无手指按下则蜂鸣器关闭,退回主界面。

主要代码如下所示:

void press_FR(void)
{SearchResult seach;u8 ensure;char *str;
#if (USE_AUTO_IDETIFY == 1)	ensure=PS_AutoIdentify(&seach);if(ensure==0x00){BEEP=1;LCD_Fill(0,100,lcddev.width,160,WHITE);Show_Str_Mid(0,100,"签到成功",16,240);str=mymalloc(SRAMIN,2000);sprintf(str,"确有此人%d",seach.pageID,seach.mathscore);Show_Str_Mid(0,140,(u8*)str,16,240);myfree(SRAMIN,str);delay_ms(500);BEEP=0;//关闭蜂鸣器LCD_Fill(0,100,lcddev.width,160,WHITE);}else if(ensure != 0xff){BEEP=1;//打开蜂鸣器ShowErrMessage(ensure);delay_ms(500);BEEP=0;//关闭蜂鸣器LCD_Fill(0,100,lcddev.width,160,WHITE);}
#else  ensure=PS_GetImage();if(ensure==0x00){	BEEP=1;	delay_ms(100);ensure=PS_GenChar(CharBuffer1);if(ensure==0x00) {		BEEP=0;	ensure=PS_Search(CharBuffer1,0,299,&seach);if(ensure==0x00){				LCD_Fill(0,100,lcddev.width,160,WHITE);Show_Str_Mid(0,100,"删除指纹",16,240);				str=mymalloc(SRAMIN,2000);sprintf(str,":%d",seach.pageID,seach.mathscore);Show_Str_Mid(0,140,(u8*)str,16,240);myfree(SRAMIN,str);}else ShowErrMessage(ensure);					}elseShowErrMessage(ensure);delay_ms(500);BEEP=0;LCD_Fill(0,100,lcddev.width,160,WHITE);}
#endif
}

5.系统测试

5.1系统软件测试

倒车雷达系统是利用C语言程序,使用Keil作为开发工具。使用Keil软件完成该系统的软件设计,通过新建源文件、建立工程文件、编译和连接,最后生成所需单片机烧录的HEX文件。

本次设计主要用到Keil uvision4进行程序代码编写、编译、调试并生成.HEX文件,通过USB接口将所生成的.HEX文件烧写到开发板上进行测试。主函数调试运行成功并生成 .hex文件如图5-1-1所示。

图5-1-1 主函数运行结果图

5.2系统硬件测试

本次设计中选择STM32F1战舰V3开发板作为本次设计的硬件测试。

代码编译运行通过后,开始对设计进行测试。在STM32F1战舰V3开发板中将所有电路、电子元件准确连接。

实物各种元器件的参考值及数量如表5-2-1所示。

元件

数量

STM32FI战舰V3开发板

1个

4.3寸FTFLCD显示器

1个

ATK-LB301指纹识别模块

1

导线

6根

表5-2-1 元器件清单

将各个元器件连接到开发板以后,给开发板供电,开始硬件测试,实物设计正常执行,并得到预期结果。如图5-2-1所示。

图5-2-1 实物图

6.总结与展望

这次的课程设计,用时两个星期,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了stm32与传感器连接的部分过程。通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。

从各种文档的阅读到开始的挑选题目、硬件结构设计、软件结构设计、程序烧写。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。

这次课程设计有个比较大的遗憾就是还没有实现云平台的一个上传,但在下学期有学习到云平台,目前已经初步掌握云平台的上传,但代码编写还存在问题,相信在下个学期的学习中可以将课设进行一个延申,实现数据上传云端。

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

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

相关文章

控制应优先

先从大体上的去找规律&#xff0c;然后才是数字归纳&#xff08;更为详细的&#xff09;&#xff0c;同时控制关系应该优先&#xff08;这里是天数和位置&#xff09;。是否涉及所有对象不是广泛&#xff0c;如果是具体的数值就不是广泛。

指针的认识(传值调用和传地址调用)

学习指针的目的是使用指针解决问题&#xff0c;那什么问题&#xff0c;非指针不可呢&#xff1f; 当要求写个函数来交换两个变量的值时&#xff0c;我们稍加思索&#xff0c;可以写成如下函数&#xff1a; void Swap1(int x, int y) {int tmp x;x y;y tmp; } 那么我们来进…

Linux学习笔记8

介绍man命令 在Linux中&#xff0c;man命令用于查看系统手册页&#xff08;manual pages&#xff09;。系统手册页是关于各种Linux命令、函数库以及系统调用的详尽文档&#xff0c;能够提供关于命令的使用方法、参数说明、示例以及其他相关信息 可以利用man xxx的命令去查找某…

QT之动态加载树节点(QTreeWidget)

之前写过一篇动态加载ComboBox&#xff0c;可参见下面这篇文章 QT之动态加载下拉框&#xff08;QComboBox&#xff09; 同理QTreeWidget也可以实现动态加载&#xff0c;在一些异步加载数据&#xff0c;并且数据加载比较耗时&#xff0c;非常实用。 效果 原理分析 要实现此类效…

数字展示具有广阔发展空间 市场规模保持增长态势

数字展示具有广阔发展空间 市场规模保持增长态势 数字展示是指以数字图像为核心&#xff0c;将触摸屏、红外线感应器、三维数字图像等相结合的高层次展示行业。与传统展示方式相比&#xff0c;数字展示能够突破时间、空间及形态的局限&#xff0c;将文字、图像等各种信息转化为…

vue 封装水球图

1、 安装 echarts 与 echarts-liquidfill pnpm i echarts pnpm i echarts-liquidfill 2、组件中引入 import * as echarts from echarts import echarts-liquidfill 3、封装通用组件 <div class"waterball-chart"><div ref"chartContainer" s…

从C到C++,C++入门篇(1)

1.什么是C C是一种通用编程语言&#xff0c;由Bjarne Stroustrup在1980年代初开发&#xff0c;作为C语言的扩展。 C支持多种编程范式&#xff0c;包括过程式编程、数据抽象、面向对象编程和泛型编程等。 这种语言在操作系统、游戏开发、图形界面、嵌入式系统、分布式系统、网…

变压器中的磁化和励磁电流波形

导出变压器中的磁化电流和励磁电流的图形方法具有说明性&#xff0c;因为它们使我们能够同时可视化产生这些波形的元素&#xff0c;例如磁通波形和磁性材料的典型 BH 曲线。 所得波形表明它们不是正弦波&#xff0c;并且对于励磁电流而言&#xff0c;它也不对称。 使用傅里叶…

Facebook代运营 | Facebook广告投放步骤及要点

Facebook体量大&#xff0c;素材的更新频率快&#xff0c;通过Facebook进行广告投放的用户也越来越多&#xff0c;Facebook坐拥大量用户&#xff0c;同时有着非常科学的用户画像构建系统和推送机制&#xff0c;对于很多广告涉足的伙伴来说&#xff0c;更加的友好。 1. 创建广告…

ubuntu系统 kubeadm方式搭建k8s集群

服务器环境与要求&#xff1a; 三台服务器 k8s-master01 192.168.26.130 操作系统&#xff1a; Ubuntu20.04 k8s-woker01 192.168.26.140 操作系统&#xff1a; Ubuntu20.04 k8s-woker02 192.168.26.150 操作系统&#xff1a; Ubuntu20.04 最低配置&#xff1a;2…

斯坦福 AI 团队被曝抄袭中国大模型开源成果;Zoom 创始人谈视频会议未来丨 RTE 开发者日报 Vol.218

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

2.29G大小Win 11系统来了,老爷机也能焕发第二春

Win 11 推出近三年以来微软大搞特搞的份额入侵计划&#xff0c;以目前情况来看算是彻底失败了。 国外知名机构 statcounter 最近公布了 4 月份 Windows 各版本份额调查结果。 其中显示&#xff0c;Win 11 占比 26% 左右&#xff0c;相较 2 月份 28% 反而开起了倒滑车。 来源&…

技术管理革新:三品PLM在电子电气行业的应用

随着科技的不断进步和市场需求的日益增长&#xff0c;电子电气行业正经历着前所未有的变革。产品生命周期的缩短和更新换代的加速&#xff0c;对企业的产品研发管理提出了更高的要求。在这样的背景下&#xff0c;产品生命周期管理PLM解决方案应运而生&#xff0c;旨在帮助电子电…

基于数据帧进行SQL查询

本教程将通过一个具体的案例来演示如何在Spark SQL中基于数据帧进行SQL查询。我们将从创建临时视图开始&#xff0c;然后使用spark对象执行SQL查询&#xff0c;包括投影、选择、统计和排序等操作。 具体步骤如下&#xff1a; 基于数据帧创建临时视图&#xff1a; 命令格式&…

深度学习笔记:1.anaconda安装

Download Anaconda Distribution | Anaconda 双击安装 设置环境变量 anaconda常用命令大全&#xff08;保姆级别建议收藏)-CSDN博客https://blog.csdn.net/m0_64892604/article/details/128806043?ops_request_misc%257B%2522request%255Fid%2522%253A%252217174671831680018…

This Python interpreter is in a conda environment

今天在查看python版本的时候出现警告 Warning: This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.io/activation 这个警告意味着你…

2024年6月4日13:48:07-3.8功能说明1.保存草稿2.支持自定义SKU销售规格3.全网爆款企划支持一键提交

创建产品产品保存草稿、自定义编辑规格功能使用手册 尊敬的淘工厂商家&#xff1a; 淘工厂近两个月收到很多商家对淘工厂发品&#xff08;上品&#xff09;效率提升的改进建议&#xff0c;淘工厂本月将针对产品发布页的发品效率提升上线一系列改进功能&#xff0c;希望能加速…

设计循环队列---力扣622

1、题目 1.1基础设置与讲解 循环队列&#xff0c;即固定长度的队列&#xff0c;可以想象成一个环形队列 就类似于这种队列&#xff0c;队尾指针后会有一个空位&#xff0c;用于控制判断队列为空还是为满&#xff1b; typedef int MyDataType;typedef struct {MyDataType fron…

CTF-Misc学习笔记

这里写目录标题 Misc准备古典密码凯撒密码棋盘密码ADFGX密码培根密码栅栏密码摩斯密码猪圈密码键盘密码QWE编码ook编码BrainFUck密码aaencode密码jsfuckbase全家桶URL编码十六进制二进制 ascii码 2.图片隐写分析LSP 隐写实操图片修改宽高实操 零宽度字符隐写音频隐写分析与实操…

新项目来了,JDK 17和JDK 21 该如何选择?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …