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 RFID智能倉庫管理系統(tǒng)(源碼+硬件+論文)
??學(xué)長這里給一個題目綜合評分(每項(xiàng)滿分5分)
- 難度系數(shù):3分
- 工作量:3分
- 創(chuàng)新點(diǎn):4分
?? 項(xiàng)目分享:見文末!文章來源地址http://www.zghlxwxcb.cn/news/detail-828918.html
實(shí)物演示效果
畢業(yè)設(shè)計(jì) stm32 RFID智能倉庫管理系統(tǒng) - 單片機(jī) 物聯(lián)網(wǎng) 嵌入式
1 主要功能
傳統(tǒng)的倉儲管理,往往操作流程繁瑣,人員勞動強(qiáng)度大。數(shù)據(jù)的精確性與實(shí)時性更是無法得到保障,一些潛在風(fēng)險也無法得到有效的規(guī)避。為了彌補(bǔ)人工監(jiān)管的不足,我結(jié)合現(xiàn)代飛速發(fā)展的科學(xué)技術(shù),本系統(tǒng)設(shè)計(jì)基于RFID的倉儲管理系統(tǒng)。因此,基于RFID的倉庫管理系統(tǒng)應(yīng)滿足以下幾個方面的需求:
(1)利用RFID技術(shù)來提高數(shù)據(jù)的精確性。
(2)系統(tǒng)的使用能夠加快貨物出入庫速度。
(3)利用RFID技術(shù)提高盤點(diǎn)作業(yè)的質(zhì)量。
(4)能夠簡化監(jiān)管操作,節(jié)省勞動成本,提高經(jīng)濟(jì)效益。
本系統(tǒng)采用STM32單片機(jī)作為下位機(jī)外接RFID傳感器來實(shí)時讀取貨物的出入庫狀態(tài)。通過WiFi模塊接收遠(yuǎn)程嵌入式部分發(fā)送的交互數(shù)傳送給上位機(jī),使上位機(jī)采用Python語言結(jié)合Tkinter GUI框架,構(gòu)建一個C/S架構(gòu)上位機(jī)端的倉庫管理系統(tǒng)。系統(tǒng)整體架構(gòu)如下圖所示:
3 核心軟件設(shè)計(jì)
創(chuàng)建RFID任務(wù)后,將其添加到任務(wù)就緒表,并等待任務(wù)有效的信號量。當(dāng)任務(wù)接收到信號量時,RFID任務(wù)將添加到任務(wù)就緒表中,等待運(yùn)行。當(dāng)任務(wù)獲得正確的CPU使用情況時,任務(wù)開始,RFID傳感器將讀取IC卡數(shù)據(jù)信息,單片機(jī)將通過WiFi模塊把RFID傳感器讀取到的數(shù)據(jù)信息上傳到上位機(jī)系統(tǒng),RFID進(jìn)行數(shù)據(jù)讀取是將與數(shù)據(jù)庫中的標(biāo)簽信息相比,如果有一個新標(biāo)簽,則標(biāo)簽信息將顯示在TFTLCD屏幕上并上傳到上位機(jī)系統(tǒng),顯示出/入庫信息及時間信息,否則上位機(jī)系統(tǒng)將顯示卡號不存在。
RFID模塊部分關(guān)鍵代碼如下所示:
主函數(shù)部分:
#if (CODE_TYPE==7)
#include "rc522_function.h"
#include "rc522_config.h"
#endif
int main(void)
{
delay_init(); //延時函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
uart_init(115200); //串口初始化為9600
USART2_Init(115200); //初始化串口2波特率為115200
SPI2_Init(); //初始化SPI
#elif(CODE_TYPE==7)
RC522_Init ();
PcdReset();
M500PcdConfigISOType ( 'A' );//設(shè)置工作方式
#endif
}
TFTLCD使用流程如圖
該模塊部分關(guān)鍵代碼如下所示:
//LCD地址結(jié)構(gòu)體
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;
//寫寄存器函數(shù)
//regval:寄存器值
void LCD_WR_REG(u16 regval)
{
SPILCD_CS_RESET; //LCD_CS=0
SPILCD_RS_RESET;
SPI_WriteByte(SPI2,regval&0x00FF);
SPILCD_CS_SET; //LCD_CS=1
}
//寫LCD數(shù)據(jù)
//data:要寫入的值
void LCD_WR_DATA(u16 data)
{
SPILCD_CS_RESET; //LCD_CS=0
SPILCD_RS_SET;
SPI_WriteByte(SPI2,data>>8);
SPI_WriteByte(SPI2,data);
SPILCD_CS_SET; //LCD_CS=1
}
void LCD_WR_DATA8(u8 da) //寫8位數(shù)據(jù)
{
SPILCD_CS_RESET; //LCD_CS=0
SPILCD_RS_SET;
SPI_WriteByte(SPI2,da);
SPILCD_CS_SET; //LCD_CS=1
}
//寫寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要寫入的數(shù)據(jù)
void LCD_WR_REG_DATA(u8 LCD_Reg, u16 LCD_RegValue)
{
LCD_WR_REG(LCD_Reg);
LCD_WR_DATA(LCD_RegValue);
}
//開始寫GRAM
void LCD_WriteRAM_Prepare(void)
{
LCD_WR_REG(0x2c);
}
//當(dāng)mdk -O1時間優(yōu)化時需要設(shè)置
//延時i
主函數(shù)部分:
int main(void)
{
delay_init(); //延時函數(shù)初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
uart_init(115200); //串口初始化為9600
USART2_Init(115200); //初始化串口2波特率為115200
SPI2_Init(); //初始化SPI
LCD_Init(); //初始化液晶
KEY_Init(); //按鍵初始化
Lcd_Clear(WHITE);
LCD_ShowString(5,20,128,16,16,"System Success!");
printf("System Success!\r\n");
delay_ms(1500);
Lcd_Clear(WHITE);//清屏
}
其他部分的設(shè)計(jì)細(xì)節(jié)分享在論文里,博客篇幅有限不在復(fù)述。。。。。
4 實(shí)現(xiàn)效果
運(yùn)行效果視頻
畢業(yè)設(shè)計(jì) stm32 RFID智能倉庫管理系統(tǒng) - 單片機(jī) 物聯(lián)網(wǎng) 嵌入式
5 最后
包含內(nèi)容
詳細(xì)實(shí)現(xiàn)論文文章來源:http://www.zghlxwxcb.cn/news/detail-828918.html
?? 項(xiàng)目分享:見文末!
到了這里,關(guān)于嵌入式畢設(shè)分享 stm32 RFID智能倉庫管理系統(tǒng)(源碼+硬件+論文)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!