網(wǎng)站制作邯鄲網(wǎng)址搜索
鶴壁市浩天電氣有限公司
2026/01/24 10:47:48
網(wǎng)站制作邯鄲,網(wǎng)址搜索,唐山網(wǎng)站建設(shè)托管,留言板 wordpress文章目錄 0 前言1 主要功能2 硬件設(shè)計(jì)(原理圖)3 核心軟件設(shè)計(jì)4 實(shí)現(xiàn)效果5 最后 0 前言
#x1f525; 這兩年開始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升#xff0c;傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn)#xff0c;往往達(dá)不到畢業(yè)答辯的要求#xff0c;這兩年不斷有學(xué)弟學(xué)妹告訴…文章目錄0 前言1 主要功能2 硬件設(shè)計(jì)(原理圖)3 核心軟件設(shè)計(jì)4 實(shí)現(xiàn)效果5 最后0 前言這兩年開始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn)往往達(dá)不到畢業(yè)答辯的要求這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。為了大家能夠順利以及最少的精力通過畢設(shè)學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目今天要分享的是畢業(yè)設(shè)計(jì) stm32人臉識別門禁系統(tǒng)(源碼硬件論文)學(xué)長這里給一個(gè)題目綜合評分(每項(xiàng)滿分5分)難度系數(shù)3分工作量3分創(chuàng)新點(diǎn)4分項(xiàng)目分享:見文末!實(shí)物演示效果畢業(yè)設(shè)計(jì) stm32人臉識別門禁系統(tǒng) - 單片機(jī) 嵌入式 物聯(lián)網(wǎng)1 主要功能本系統(tǒng)設(shè)計(jì)了一種由下位機(jī)的攝像頭采集人臉圖像數(shù)據(jù)再經(jīng)過無線傳輸模塊傳輸給上位機(jī)識別并且返回識別結(jié)果的人臉識別門禁系統(tǒng)可以實(shí)現(xiàn)人臉錄入、人臉檢測、人臉識別、人員訪問響應(yīng)策略。下位機(jī)部分主要由主控模塊、攝像頭模塊、顯示器、無線傳輸模塊、模擬門禁模塊組成下位機(jī)負(fù)責(zé)人臉圖像的采集與發(fā)送并且根據(jù)上位機(jī)返回的識別結(jié)果執(zhí)行相應(yīng)的動(dòng)作。上位機(jī)由一臺基于Python操作環(huán)境的PC機(jī)組成成負(fù)責(zé)保存人臉圖像、識別人臉并且返回識別結(jié)果。最新方案換成上位機(jī)識別下位機(jī)響應(yīng)釋放單片機(jī)性能消耗2 硬件設(shè)計(jì)(原理圖)3 核心軟件設(shè)計(jì)主程序流程系統(tǒng)軟硬件配置好以后首先對系統(tǒng)進(jìn)行初始化確定整個(gè)系統(tǒng)正常運(yùn)行。打開人臉門禁當(dāng)攝像頭檢測到人臉時(shí)會(huì)通過WIFI上傳至上位機(jī)在上位機(jī)中再將采集到的人臉信息與本地已錄入的人臉信息進(jìn)行匹配在信息匹配完成后再將結(jié)果通過WIFI上傳給單片機(jī)由單片機(jī)控制繼電器模擬門禁的打開和關(guān)閉。上位機(jī)部分設(shè)計(jì)上位機(jī)需要實(shí)現(xiàn)的功能為與下位機(jī)建立TCP連接以接收下位機(jī)上傳的人臉圖像數(shù)據(jù)再利用人臉識別技術(shù)完成識別任務(wù)。本文選用了基于Python的OpenCV開源計(jì)算機(jī)視覺庫、Dlib開源機(jī)器學(xué)習(xí)庫、Numpy開源數(shù)值計(jì)算庫、Pillow開源圖像處理庫、Pandas開源數(shù)據(jù)分析庫進(jìn)行上位機(jī)軟件程序的設(shè)計(jì)篇幅有限不過多復(fù)述詳細(xì)設(shè)計(jì)細(xì)節(jié)詳細(xì)的設(shè)計(jì)分享在論文中。。。部分關(guān)鍵代碼//#include usart.h#includedelay.h#includespi.h#includeusart.h#includestring.h#includeincludes.h#includeled.h#includeGUI.h#includePicture.h#includedht11.h#includeadc.h#includelight.h#includefont.h//LCD的畫筆顏色和背景色u16 POINT_COLOR0x0000;//畫筆顏色u16 BACK_COLOR0xFFFF;//背景色//管理LCD重要參數(shù)//_lcd_dev lcddev;//寫寄存器函數(shù)//regval:寄存器值voidLCD_WR_REG(u16 regval){SPILCD_CS_RESET;//LCD_CS0SPILCD_RS_RESET;SPI_WriteByte(SPI2,regval0x00FF);SPILCD_CS_SET;//LCD_CS1}//寫LCD數(shù)據(jù)//data:要寫入的值voidLCD_WR_DATA(u16 data){SPILCD_CS_RESET;//LCD_CS0SPILCD_RS_SET;SPI_WriteByte(SPI2,data8);SPI_WriteByte(SPI2,data);SPILCD_CS_SET;//LCD_CS1}voidLCD_WR_DATA8(u8 da)//寫8位數(shù)據(jù){SPILCD_CS_RESET;//LCD_CS0SPILCD_RS_SET;SPI_WriteByte(SPI2,da);SPILCD_CS_SET;//LCD_CS1}//寫寄存器//LCD_Reg:寄存器地址//LCD_RegValue:要寫入的數(shù)據(jù)voidLCD_WR_REG_DATA(u8 LCD_Reg,u16 LCD_RegValue){LCD_WR_REG(LCD_Reg);LCD_WR_DATA(LCD_RegValue);}//開始寫GRAMvoidLCD_WriteRAM_Prepare(void){LCD_WR_REG(0x2c);}//當(dāng)mdk -O1時(shí)間優(yōu)化時(shí)需要設(shè)置//延時(shí)i//設(shè)置光標(biāo)位置//Xpos:橫坐標(biāo)//Ypos:縱坐標(biāo)voidLCD_SetCursor(u16 Xpos,u16 Ypos){LCD_WR_REG(0x2a);LCD_WR_DATA8(Xpos8);LCD_WR_DATA8(Xpos0XFF);LCD_WR_REG(0x2b);LCD_WR_DATA8(Ypos8);LCD_WR_DATA8(Ypos0XFF);}/************************************************* 函數(shù)名LCD_Set_Region 功能設(shè)置lcd顯示區(qū)域在此區(qū)域?qū)扅c(diǎn)數(shù)據(jù)自動(dòng)換行 入口參數(shù)xy起點(diǎn)和終點(diǎn) 返回值無 *************************************************/voidLcd_SetRegion(u16 x_start,u16 y_start,u16 x_end,u16 y_end){LCD_WR_REG(0x2a);LCD_WR_DATA8(x_start8);LCD_WR_DATA8(0x00FFx_start2);;LCD_WR_DATA8(x_end8);LCD_WR_DATA8(0x00FFx_end2);LCD_WR_REG(0x2b);LCD_WR_DATA8(y_start8);LCD_WR_DATA8(0x00FFy_start3);LCD_WR_DATA8(y_end8);LCD_WR_DATA8(0x00FFy_end3);LCD_WR_REG(0x2c);}//畫點(diǎn)//x,y:坐標(biāo)//POINT_COLOR:此點(diǎn)的顏色voidLCD_DrawPoint(u16 x,u16 y){LCD_SetCursor(x,y);//設(shè)置光標(biāo)位置LCD_WriteRAM_Prepare();//開始寫入GRAMLCD_WR_DATA(POINT_COLOR);}/************************************************* 函數(shù)名LCD_Set_XY 功能設(shè)置lcd顯示起始點(diǎn) 入口參數(shù)xy坐標(biāo) 返回值無 *************************************************/voidLcd_SetXY(u16 x,u16 y){Lcd_SetRegion(x,y,x,y);}/************************************************* 函數(shù)名LCD_DrawPoint 功能畫一個(gè)點(diǎn) 入口參數(shù)無 返回值無 *************************************************/voidGui_DrawPoint(u16 x,u16 y,u16 Data){Lcd_SetRegion(x,y,x1,y1);LCD_WR_DATA(Data);}voidLcd_Reset(void){// LCD_RST_CLR;delay_ms(100);// LCD_RST_SET;delay_ms(50);}//初始化lcdvoidLCD_Init(void){Lcd_Reset();//LCD Init For 1.44Inch LCD Panel with ST7735R.LCD_WR_REG(0x11);//Sleep exitdelay_ms(120);//ST7735R Frame RateLCD_WR_REG(0xB1);LCD_WR_DATA8(0x01);LCD_WR_DATA8(0x2C);LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB2);LCD_WR_DATA8(0x01);LCD_WR_DATA8(0x2C);LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB3);LCD_WR_DATA8(0x01);LCD_WR_DATA8(0x2C);LCD_WR_DATA8(0x2D);LCD_WR_DATA8(0x01);LCD_WR_DATA8(0x2C);LCD_WR_DATA8(0x2D);LCD_WR_REG(0xB4);//Column inversionLCD_WR_DATA8(0x07);//ST7735R Power SequenceLCD_WR_REG(0xC0);LCD_WR_DATA8(0xA2);LCD_WR_DATA8(0x02);LCD_WR_DATA8(0x84);LCD_WR_REG(0xC1);LCD_WR_DATA8(0xC5);LCD_WR_REG(0xC2);LCD_WR_DATA8(0x0A);LCD_WR_DATA8(0x00);LCD_WR_REG(0xC3);LCD_WR_DATA8(0x8A);LCD_WR_DATA8(0x2A);LCD_WR_REG(0xC4);LCD_WR_DATA8(0x8A);LCD_WR_DATA8(0xEE);LCD_WR_REG(0xC5);//VCOMLCD_WR_DATA8(0x0E);LCD_WR_REG(0x36);//MX, MY, RGB modeLCD_WR_DATA8(0xC8);//ST7735R Gamma SequenceLCD_WR_REG(0xe0);LCD_WR_DATA8(0x0f);LCD_WR_DATA8(0x1a);LCD_WR_DATA8(0x0f);LCD_WR_DATA8(0x18);LCD_WR_DATA8(0x2f);LCD_WR_DATA8(0x28);LCD_WR_DATA8(0x20);LCD_WR_DATA8(0x22);LCD_WR_DATA8(0x1f);LCD_WR_DATA8(0x1b);LCD_WR_DATA8(0x23);LCD_WR_DATA8(0x37);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x07);LCD_WR_DATA8(0x02);LCD_WR_DATA8(0x10);LCD_WR_REG(0xe1);LCD_WR_DATA8(0x0f);LCD_WR_DATA8(0x1b);LCD_WR_DATA8(0x0f);LCD_WR_DATA8(0x17);LCD_WR_DATA8(0x33);LCD_WR_DATA8(0x2c);LCD_WR_DATA8(0x29);LCD_WR_DATA8(0x2e);LCD_WR_DATA8(0x30);LCD_WR_DATA8(0x30);LCD_WR_DATA8(0x39);LCD_WR_DATA8(0x3f);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x07);LCD_WR_DATA8(0x03);LCD_WR_DATA8(0x10);LCD_WR_REG(0x2a);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x7f);LCD_WR_REG(0x2b);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x00);LCD_WR_DATA8(0x9f);LCD_WR_REG(0xF0);//Enable test commandLCD_WR_DATA8(0x01);LCD_WR_REG(0xF6);//Disable ram power save modeLCD_WR_DATA8(0x00);LCD_WR_REG(0x3A);//65k modeLCD_WR_DATA8(0x05);LCD_WR_REG(0x29);//Display on}//清屏函數(shù)//color:要清屏的填充色voidLcd_Clear(u16 Color){unsignedinti,m;Lcd_SetRegion(0,0,X_MAX_PIXEL-1,Y_MAX_PIXEL-1);//Lcd_WriteIndex(0x2C);for(i0;iX_MAX_PIXEL;i){for(m0;mY_MAX_PIXEL;m){LCD_WR_DATA(Color);}}}//在指定區(qū)域內(nèi)填充單個(gè)顏色//(sx,sy),(ex,ey):填充矩形對角坐標(biāo),區(qū)域大小為:(ex-sx1)*(ey-sy1)//color:要填充的顏色voidLCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color){u16 i,j;u16 xlen0;xlenex-sx1;for(isy;iey;i){LCD_SetCursor(sx,i);//設(shè)置光標(biāo)位置LCD_WriteRAM_Prepare();//開始寫入GRAMfor(j0;jxlen;j)LCD_WR_DATA(color);//設(shè)置光標(biāo)位置}}//畫線//x1,y1:起點(diǎn)坐標(biāo)//x2,y2:終點(diǎn)坐標(biāo)voidLCD_DrawLine(u16 x1,u16 y1,u16 x2,u16 y2){u16 t;intxerr0,yerr0,delta_x,delta_y,distance;intincx,incy,uRow,uCol;delta_xx2-x1;//計(jì)算坐標(biāo)增量delta_yy2-y1;uRowx1;uColy1;if(delta_x0)incx1;//設(shè)置單步方向elseif(delta_x0)incx0;//垂直線else{incx-1;delta_x-delta_x;}if(delta_y0)incy1;elseif(delta_y0)incy0;//水平線else{incy-1;delta_y-delta_y;}if(delta_xdelta_y)distancedelta_x;//選取基本增量坐標(biāo)軸elsedistancedelta_y;for(t0;tdistance1;t)//畫線輸出{LCD_DrawPoint(uRow,uCol);//畫點(diǎn)xerrdelta_x;yerrdelta_y;if(xerrdistance){xerr-distance;uRowincx;}if(yerrdistance){yerr-distance;uColincy;}}}//畫矩形//(x1,y1),(x2,y2):矩形的對角坐標(biāo)voidLCD_DrawRectangle(u16 x1,u16 y1,u16 x2,u16 y2){LCD_DrawLine(x1,y1,x2,y1);LCD_DrawLine(x1,y1,x1,y2);LCD_DrawLine(x1,y2,x2,y2);LCD_DrawLine(x2,y1,x2,y2);}//在指定位置顯示一個(gè)漢字(16*16大小)voidshowhanzi16(unsignedintx,unsignedinty,unsignedcharindex){unsignedchari,j,k;constunsignedchar*temphanzi16;tempindex*32;for(j0;j16;j){LCD_SetCursor(x,yj);LCD_WriteRAM_Prepare();//開始寫入GRAMfor(k0;k2;k){for(i0;i8;i){if((*temp(1i))!0){LCD_WR_DATA(POINT_COLOR);}else{LCD_WR_DATA(BACK_COLOR);}}temp;}}}voidLCD_Fast_DrawPoint(u16 x,u16 y,u16 color){//Lcd_SetRegion(x,y,x,y);LCD_SetCursor(x,y);//設(shè)置光標(biāo)位置LCD_WriteRAM_Prepare();//開始寫入GRAMLCD_WR_DATA(color);}//在指定位置顯示一個(gè)字符//x,y:起始坐標(biāo)//num:要顯示的字符: ---~//size:字體大小 12/16//mode:疊加方式(1)還是非疊加方式(0)voidLCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode){u8 temp,t1,t;u16 y0y;u16 colortempPOINT_COLOR;//設(shè)置窗口numnum- ;//得到偏移后的值if(!mode)//非疊加方式{for(t0;tsize;t){if(size12)tempasc2_1206[num][t];//調(diào)用1206字體elsetempasc2_1608[num][t];//調(diào)用1608字體for(t10;t18;t1){if(temp0x80)POINT_COLORcolortemp;elsePOINT_COLORBACK_COLOR;LCD_DrawPoint(x,y);temp1;y;if(yY_MAX_PIXEL){POINT_COLORcolortemp;return;}//超區(qū)域了if((y-y0)size){yy0;x;if(xX_MAX_PIXEL){POINT_COLORcolortemp;return;}//超區(qū)域了break;}}}}else//疊加方式{for(t0;tsize;t){if(size12)tempasc2_1206[num][t];//調(diào)用1206字體elsetempasc2_1608[num][t];//調(diào)用1608字體for(t10;t18;t1){if(temp0x80)LCD_DrawPoint(x,y);temp1;y;if(yY_MAX_PIXEL){POINT_COLORcolortemp;return;}//超區(qū)域了if((y-y0)size){yy0;x;if(xX_MAX_PIXEL){POINT_COLORcolortemp;return;}//超區(qū)域了break;}}}}POINT_COLORcolortemp;}//m^n函數(shù)//返回值:m^n次方.u32LCD_Pow(u8 m,u8 n){u32 result1;while(n--)result*m;returnresult;}//顯示數(shù)字,高位為0,則不顯示//x,y :起點(diǎn)坐標(biāo)//len :數(shù)字的位數(shù)//size:字體大小//color:顏色//num:數(shù)值(0~4294967295);voidLCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size){u8 t,temp;u8 enshow0;for(t0;tlen;t){temp(num/LCD_Pow(10,len-t-1))%10;if(enshow0t(len-1)){if(temp0){LCD_ShowChar(x(size/2)*t,y, ,size,0);continue;}elseenshow1;}LCD_ShowChar(x(size/2)*t,y,temp0,size,0);}}//顯示字符串//x,y:起點(diǎn)坐標(biāo)//width,height:區(qū)域大小//size:字體大小//*p:字符串起始地址voidLCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8*p){u8 x0x;widthx;heighty;while((*p~)(*p ))//判斷是不是非法字符!{if(xwidth){xx0;ysize;}if(yheight)break;//退出LCD_ShowChar(x,y,*p,size,1);xsize/2;p;}}char*Name_data;volatileuint8_tnow_Count0;voidLoad_Drow_Dialog(void){Lcd_Clear(WHITE);//清屏POINT_COLORBLUE;//設(shè)置字體為藍(lán)色LCD_ShowString(X_MAX_PIXEL-24,0,200,16,16,RST);//顯示清屏區(qū)域POINT_COLORRED;//設(shè)置畫筆藍(lán)色}voidxianshi(void)//顯示信息{Lcd_Clear(WHITE);//清屏POINT_COLORBLUE;//設(shè)置字體為藍(lán)色BACK_COLORWHITE;// LCD_ShowString(20,20,240,12,12,q746876041);showhanzi16(5,24,13);//showhanzi16(25,24,14);//showhanzi16(45,24,15);//showhanzi16(65,24,16);//showhanzi16(85,24,17);//showhanzi16(105,24,18);//}4 實(shí)現(xiàn)效果實(shí)物演示效果畢業(yè)設(shè)計(jì) stm32人臉識別門禁系統(tǒng) - 單片機(jī) 嵌入式 物聯(lián)網(wǎng)5 最后包含內(nèi)容配套詳細(xì)論文項(xiàng)目分享:見文末!