国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[畢業(yè)設(shè)計] 基于單片機的智能快遞柜設(shè)計與實現(xiàn) - stm32 物聯(lián)網(wǎng)

這篇具有很好參考價值的文章主要介紹了[畢業(yè)設(shè)計] 基于單片機的智能快遞柜設(shè)計與實現(xiàn) - stm32 物聯(lián)網(wǎng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


1 簡介

Hi,大家好,這里是丹成學(xué)長,今天向大家介紹一個 單片機項目

基于單片機的智能快遞柜設(shè)計與實現(xiàn)

大家可用于 課程設(shè)計 或 畢業(yè)設(shè)計


單片機-嵌入式畢設(shè)選題大全及項目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052文章來源地址http://www.zghlxwxcb.cn/news/detail-794821.html


2 緒論

2.1 課題背景與目的

一般來說,傳統(tǒng)快遞服務(wù)方式是人對人,即快遞員進行攬件派送,與簽收人進行面對面簽收,確認(rèn)無誤后服務(wù)終止。這種傳統(tǒng)快遞方式雖然保證了包裹的一定安全,但效率低下,花費了雙方大量的時間成本。而智能快遞箱的誕生使得快遞服務(wù)變得高效,它不再是門對門,或者是人對人的服務(wù)方式,智能快遞箱就好比是中介,使得配送方和接收方的時間成本大大減少,更加自由?,F(xiàn)在智能快遞箱的應(yīng)用在國內(nèi)逐漸廣泛。

智能快遞箱是基于GSM與單片機系統(tǒng)下的一款全天24小時自助服務(wù)的服務(wù)設(shè)備。智能快遞箱以單片機STC89C52作為最小控制系統(tǒng),GSM模塊能夠插入手機卡,快遞人員輸入密碼進行解鎖放柜處理,然后通過矩陣鍵盤輸入手機號進行短信發(fā)送,完成將物品投遞入柜的功能。取件人通過手機收到的短信,輸入對應(yīng)驗證碼能夠解鎖快遞箱門,拿取對應(yīng)快遞,完成取件功能。

3 系統(tǒng)設(shè)計

智能快遞箱設(shè)計是以單片機作為最小的控制系統(tǒng),由GSM模塊插入的手機移動通信卡輔助實現(xiàn)整個系統(tǒng)運行。在矩陣鍵盤上輸入手機號發(fā)送短信,輸入對應(yīng)驗證碼可以解鎖對應(yīng)柜子編號,成功取得快遞。

該設(shè)計的技術(shù)難點有以下幾個:

(1)矩陣鍵盤是否能夠完成對11位手機號碼和6位驗證碼的正確輸入。
(2)取件人的手機號碼輸入完成后,GSM模塊是否能夠自動向取件人對應(yīng)的手機發(fā)送取件碼。
(3)輸入正確的取件碼后,單片機需要對電控鎖進行正確打開。成功的依據(jù)是顯示屏能夠顯示之前的編號。
(4)二次開發(fā)時,設(shè)計能力有限可能無法發(fā)揮產(chǎn)品的全部功能。

3.1 系統(tǒng)架構(gòu)

(1) 該項目主要分為硬件系統(tǒng)與軟件系統(tǒng)兩個部分組成。 硬件系統(tǒng)由控制平臺、 顯示模塊、 GSM 模塊等組成。 軟件系統(tǒng)則有 KEIL 軟件上編譯 C 程序以及刻錄軟件構(gòu)成。

(2) 在掌握單片機工作原理的基礎(chǔ)上, 還需要雄厚的 C 語言編譯技術(shù)作為知識基底, 利用 KEIL 程序, 在其上面編寫 C 語言, 以實現(xiàn)本次設(shè)計所需要的功能。

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.2 硬件部分

3.2.1 GMS模塊

GSM 模塊是將 GSM 射頻芯片、 基帶處理芯片、 存儲器、 功放器件等集成在一塊線路板上, 具有獨立的操作系統(tǒng)、 GSM 射頻處理、 基帶處理并提供標(biāo)準(zhǔn)接口的功能模塊, 包括發(fā)送短信, 語音通話以及數(shù)據(jù)傳輸?shù)幕就ㄐ殴δ堋?/p>

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.2.2 按鍵模塊

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.2.3 顯示模塊

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.2.4 繼電器模塊

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.2.5 蜂鳴器模塊

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.3 軟件部分

3.3.1 主程序設(shè)計

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

主程序主要要解決兩部分問題, 一是快遞員存儲快遞, 二是取件人拿去快遞。

快遞員存儲快遞后需輸入命令, 即輸入用戶11 位手機號碼。 GSM 模塊接收到 AT 指令后, 生成驗證碼并將指令轉(zhuǎn)化成信號發(fā)送至單片機上。

單片機接收到信號, 生成信息發(fā)送至取件人的手機上。 取件人可以依據(jù)收到的短信中的驗證碼進行取件步驟, 如若輸入正確的驗證碼, 快遞箱門將會成功打開, 繼續(xù)等下一個指令; 否則, LED 顯示燈將會顯示警告并且蜂鳴器電路會工作進行報警。

3.3.2 GMS程序設(shè)計

GSM 程序設(shè)計主要解決的問題就是收到 AT 指令時, 能夠成功生成驗證碼及發(fā)送驗證碼到對應(yīng)收件人的手機上。 在設(shè)置短息的號碼時, 因為手機號碼為11 位, 所以我在編寫程序時, 將兩位數(shù)字位置顛倒, 確保了取件人可以接收到消息。

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.4 實現(xiàn)效果

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計
智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

智能快遞柜畢業(yè)設(shè)計,物聯(lián)網(wǎng),單片機,畢業(yè)設(shè)計,單片機,stm32,物聯(lián)網(wǎng),智能快遞柜,畢業(yè)設(shè)計

3.5 部分相關(guān)代碼



// 鍵盤部分代碼
void KeyDown()
{
char a = 0;
GPIO_KEY=0x0f;
while(1)
{
if(GPIO_KEY!=0x0f)//讀取按鍵是否按下
{
Delay10ms(1);//延時 10ms 進行消抖
if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下
{
//測試列
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=4;break;
case(0X0d): KeyValue=8;break;
case(0X0e): KeyValue=12;break;
}
//測試行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue+3;break;
case(0Xb0): KeyValue=KeyValue+2;break;
case(0Xd0): KeyValue=KeyValue+1;break;
case(0Xe0):KeyValue=KeyValue;break;
}
……
顯示模塊部分源代碼
void get_rand(void)
{
bit_0 = rand(); //獲取隨機數(shù)
user_pass[0] = (bit_0 % 10000)/1000;
user_pass[1] = (bit_0 % 1000)/100;
user_pass[2] = (bit_0 % 100)/10;
user_pass[3] = bit_0 % 10;
bit_1 = rand(); //獲取隨機數(shù)
user_pass[4] = (bit_1 % 10000)/1000;
user_pass[5] = (bit_1 % 1000)/100;
// password[6] = (bit_1 % 100)/10;
// password[7] = bit_1 % 10;
/*
LcdWriteCom(0x01); //清屏
data_clean();
PuZh_2[0] = user_pass[0]+0x30;
PuZh_2[1] = user_pass[1]+0x30;
PuZh_2[2] = user_pass[2]+0x30;
PuZh_2[3] = user_pass[3]+0x30;
PuZh_2[4] = user_pass[4]+0x30;
PuZh_2[5] = user_pass[5]+0x30;
display(); //顯示
*/
}
void one_data(uchar *str) //顯示第一行數(shù)據(jù)
{
unsigned char y;
for(y=0;y<16;y++)
{
PuZh_1[y]=*str;
str++;
}
}
void two_data(uchar *str)//顯示第一行數(shù)據(jù)
{
unsigned char y;
for(y=0;y<16;y++)
{
PuZh_2[y]=*str;
str++;
}
}
void interface_dist()
{
one_data(" WELCOME ");
two_data(" ");
}
void input_pass()
{
unsigned char j=0,z=0,x=0,y=0;
LcdWriteCom(0x01); //清屏
one_data(" EMS INPUT ");
two_data(" ");
display(); //顯示
j=6;
z=0;
// x=0;
for(;;)
…
GSM 模塊部分源代碼
void UsartConfiguration()
{
SCON=0X50; //設(shè)置為工作方式 1
TMOD=0X20; //設(shè)置計數(shù)器工作方式 2
TH1=0XFd; //計數(shù)器初始值設(shè)置, 注意波特率是 9600 的
TL1=0XFd; //11.0592 晶振
// PCON=0X80; //波特率加倍
// TH1=0XF3; //計數(shù)器初始值設(shè)置, 注意波特率是 4800 的
// TL1=0XF3; //12.0000 晶振
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數(shù)器
}
//串行口連續(xù)發(fā)送 char 型數(shù)組, 遇到終止號/0 將停止
void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
str++;
}
}
void Uart1Send(uchar c)
{
SBUF=c;
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
}
void pass_word()
{
char i;
for(i=0;i<6;i++)
{
SBUF=0x30;
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
SBUF=0x30;
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
SBUF=0x33;
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
SBUF=0x30+user_pass[i];
while(!TI);//等待發(fā)送完成信號(TI=1) 出現(xiàn)
TI=0;
}
}
void send_code()
{
get_rand();
Uart1Sends("AT+CMGF=1\r\n");
Delay10ms(200);//延時 2 秒
Uart1Sends("AT+CSCS=\"UCS2\"\r\n");
Delay10ms(200);//延時 2 秒
Uart1Sends("AT+CSCA?\r\n");
Delay10ms(200);//延時 2 秒
Uart1Sends("AT+CSMP=\"17,167,0,24\"\r\n");
Delay10ms(200);//延時 2 秒
//15813366585
Uart1Sends("AT+CMGS=\"00310035003800310033003300360036003500380035\"\r\n");//
此處修改為對
Delay10ms(200);//延時 2 秒
Uart1Sends("8BF753D65FEB90129A8C8BC17801");
pass_word();
// Uart1Sends("9A8C8BC17801");//修改短信內(nèi)容
// Uart1Sends("00310033003300330033003300330039003200340033");//修改短信內(nèi)容
Delay10ms(200);//延時 2 秒
Uart1Send(0x1a);
Delay10ms(200);//延時 2 秒
}
void main(void)
{
unsigned char j=0,z=0,x=0;
UsartConfiguration();
// TMOD = 0X01; //設(shè)置定時器 T0 16 位
// EA = 1; //打開中斷
// ET0 = 1; //打開 TO 定時器
// TR0 = 1; //開啟中斷
// TH0 = (65536-5000)/256;
// TL0 = (65536-5000)%256;
time = 0;
BELL = 0;
power = 0;
LcdInit();
error = 0;
Delay10ms(50);
i=0;
LcdWriteCom(0x01); //清屏
interface_dist(); //友好界面顯示
Delay10ms(50);
display(); //顯示
while(1)
{
KeyDown();
if(num == 10)
{
input_pass(); //輸入密碼
if(error == 0)
{
LcdWriteCom(0x01); //清屏
one_data(" WELCOME ");
two_data(" SEND MESSAGE ");
display(); //顯示
send_code();
LcdWriteCom(0x01); //清屏
one_data(" WELCOME ");
two_data(" SEND SUCCESS ");
display(); //顯示
Delay10ms(200);
}
}
LcdWriteCom(0x01); //清屏
interface_dist(); //友好界面顯示
Delay10ms(50);
display(); //顯示
if(num==12)
{
user_input();
}
}
}



單片機-嵌入式畢設(shè)選題大全及項目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


4 最后

到了這里,關(guān)于[畢業(yè)設(shè)計] 基于單片機的智能快遞柜設(shè)計與實現(xiàn) - stm32 物聯(lián)網(wǎng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包