单片机毕设 基于单片机的智能快递柜设计与实现

这篇具有很好参考价值的文章主要介绍了单片机毕设 基于单片机的智能快递柜设计与实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目

基于单片机的智能快递柜设计与实现

大家可用于 课程设计 或 毕业设计

🧿 毕设项目分享:见文末!

2 绪论

2.1 课题背景与目的

一般来说,传统快递服务方式是人对人,即快递员进行揽件派送,与签收人进行面对面签收,确认无误后服务终止。这种传统快递方式虽然保证了包裹的一定安全,但效率低下,花费了双方大量的时间成本。而智能快递箱的诞生使得快递服务变得高效,它不再是门对门,或者是人对人的服务方式,智能快递箱就好比是中介,使得配送方和接收方的时间成本大大减少,更加自由。现在智能快递箱的应用在国内逐渐广泛。

智能快递箱是基于GSM与单片机系统下的一款全天24小时自助服务的服务设备。智能快递箱以单片机STC89C52作为最小控制系统,GSM模块能够插入手机卡,快递人员输入密码进行解锁放柜处理,然后通过矩阵键盘输入手机号进行短信发送,完成将物品投递入柜的功能。取件人通过手机收到的短信,输入对应验证码能够解锁快递箱门,拿取对应快递,完成取件功能。

3 系统设计

智能快递箱设计是以单片机作为最小的控制系统,由GSM模块插入的手机移动通信卡辅助实现整个系统运行。在矩阵键盘上输入手机号发送短信,输入对应验证码可以解锁对应柜子编号,成功取得快递。

该设计的技术难点有以下几个:

(1)矩阵键盘是否能够完成对11位手机号码和6位验证码的正确输入。
(2)取件人的手机号码输入完成后,GSM模块是否能够自动向取件人对应的手机发送取件码。
(3)输入正确的取件码后,单片机需要对电控锁进行正确打开。成功的依据是显示屏能够显示之前的编号。
(4)二次开发时,设计能力有限可能无法发挥产品的全部功能。

3.1 系统架构

(1) 该项目主要分为硬件系统与软件系统两个部分组成。 硬件系统由控制平台、 显示模块、 GSM 模块等组成。 软件系统则有 KEIL 软件上编译 C 程序以及刻录软件构成。

(2) 在掌握单片机工作原理的基础上, 还需要雄厚的 C 语言编译技术作为知识基底, 利用 KEIL 程序, 在其上面编写 C 语言, 以实现本次设计所需要的功能。

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.2 硬件部分

3.2.1 GMS模块

GSM 模块是将 GSM 射频芯片、 基带处理芯片、 存储器、 功放器件等集成在一块线路板上, 具有独立的操作系统、 GSM 射频处理、 基带处理并提供标准接口的功能模块, 包括发送短信, 语音通话以及数据传输的基本通信功能。

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.2.2 按键模块

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.2.3 显示模块

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.2.4 继电器模块

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.2.5 蜂鸣器模块

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.3 软件部分

3.3.1 主程序设计

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

主程序主要要解决两部分问题, 一是快递员存储快递, 二是取件人拿去快递。

快递员存储快递后需输入命令, 即输入用户11 位手机号码。 GSM 模块接收到 AT 指令后, 生成验证码并将指令转化成信号发送至单片机上。

单片机接收到信号, 生成信息发送至取件人的手机上。 取件人可以依据收到的短信中的验证码进行取件步骤, 如若输入正确的验证码, 快递箱门将会成功打开, 继续等下一个指令; 否则, LED 显示灯将会显示警告并且蜂鸣器电路会工作进行报警。

3.3.2 GMS程序设计

GSM 程序设计主要解决的问题就是收到 AT 指令时, 能够成功生成验证码及发送验证码到对应收件人的手机上。 在设置短息的号码时, 因为手机号码为11 位, 所以我在编写程序时, 将两位数字位置颠倒, 确保了取件人可以接收到消息。

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.4 实现效果

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计
毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

毕业设计单片机智能快递储物柜,单片机,毕设,毕业设计

3.5 部分相关代码


/************************************************
************************************************/

// 键盘部分代码
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(); //获取随机数
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(); //获取随机数
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) //显示第一行数据
{
unsigned char y;
for(y=0;y<16;y++)
{
PuZh_1[y]=*str;
str++;
}
}
void two_data(uchar *str)//显示第一行数据
{
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; //设置为工作方式 1
TMOD=0X20; //设置计数器工作方式 2
TH1=0XFd; //计数器初始值设置, 注意波特率是 9600 的
TL1=0XFd; //11.0592 晶振
// PCON=0X80; //波特率加倍
// TH1=0XF3; //计数器初始值设置, 注意波特率是 4800 的
// TL1=0XF3; //12.0000 晶振
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
//串行口连续发送 char 型数组, 遇到终止号/0 将停止
void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1) 出现
TI=0;
str++;
}
}
void Uart1Send(uchar c)
{
SBUF=c;
while(!TI);//等待发送完成信号(TI=1) 出现
TI=0;
}
void pass_word()
{
char i;
for(i=0;i<6;i++)
{
SBUF=0x30;
while(!TI);//等待发送完成信号(TI=1) 出现
TI=0;
SBUF=0x30;
while(!TI);//等待发送完成信号(TI=1) 出现
TI=0;
SBUF=0x33;
while(!TI);//等待发送完成信号(TI=1) 出现
TI=0;
SBUF=0x30+user_pass[i];
while(!TI);//等待发送完成信号(TI=1) 出现
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");//修改短信内容
// Uart1Sends("00310033003300330033003300330039003200340033");//修改短信内容
Delay10ms(200);//延时 2 秒
Uart1Send(0x1a);
Delay10ms(200);//延时 2 秒
}
void main(void)
{
unsigned char j=0,z=0,x=0;
UsartConfiguration();
// TMOD = 0X01; //设置定时器 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();
}
}
}




/*******************************************************************
篇幅有限,只展示部分代码
********************************************************************/



🧿 毕设项目分享:见文末!

4 最后

**项目分享: ** https://blog.csdn.net/m0_984093文章来源地址https://www.toymoban.com/news/detail-845744.html

到了这里,关于单片机毕设 基于单片机的智能快递柜设计与实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32毕设分享 - 基于单片机的智能鱼缸系统设计与实现 - 嵌入式 物联网 stm32 51单片机 智能鱼缸

    Hi,大家好,今天向大家介绍一个 单片机项目, 大家可用于 课程设计 或 毕业设计 基于单片机的智能鱼缸系统设计与实现 🔥 项目分享与指导: https://gitee.com/sinonfin/sharing 近年以来,随着我国综合实力飞速飙升,人们对物质和精神生活质量的要求也不断提升,各式各样的智能

    2024年04月11日
    浏览(62)
  • 毕业设计 基于单片机的GSM智能快递柜设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月23日
    浏览(76)
  • 基于单片机快递柜的设计与实现

       功能介绍 以51单片机作为主控系统; 液晶显示当前信息,最多可存储几十个; 按下存储按键液晶显示当前快递柜剩余数量; 继电器打开,表示用来放物品; 正次按下存储按键将取消存快递,继电器关闭快递柜可用数量减一; 按下设置按键用来设置取件人号码; 按下确

    2024年02月13日
    浏览(34)
  • 嵌入式毕设分享 基于单片机的智能音响设计与实现 -物联网 嵌入式 stm32

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(60)
  • 基于单片机的智能窗帘设计(可以写进毕设与简历)

    自动控制技术是20世纪发展最快、影响最大的技术之一。针对家居环境采光及避光问题,自动窗帘控制系统将取代手动控制,如下图所示基于单片机的智能窗帘设计实物图展示:自动窗帘控制系统核心是采用单片机STC89C52控制,其次采用感光检测电路,时钟电路,电机控制电路

    2024年01月21日
    浏览(40)
  • 单片机毕设 基于单片机的火灾报警系统设计与实现

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于单片机的火灾报警系统设计与实现 大家可用于 课程设计 或 毕业设计 火灾是指在时间或空间上失去控制的燃烧所造成的灾害。在各种灾害中,火灾是最经常、最普遍地威胁公众安全和社会发展的主要灾害之一。人类能够

    2024年02月02日
    浏览(59)
  • 基于单片机STM32的智能衣柜设计(可以写进毕设与简历的项目)

    从智能家居服务生活的理念出发,针对目前传统衣柜在潮湿环境下不易贮存衣物的缺点,设计一款智能语音衣柜;如下图所示为基于stm32的智能衣柜设计,这个项目中有紫外线杀菌+除湿风扇+加温+语音助手+wifi模块+人体感应模块等,属于一个综合性项目,如果想从事嵌入式开

    2024年02月08日
    浏览(51)
  • 单片机设计基于51单片机的智能风扇控制系统设计与实现

      我们常见的电风扇一般只有四、五个风速档,用的是人工开关,而且并不是每个人家里都会有空调,或者在一些小型的工厂或者一些小型加工厂,这些地方都可能没有配备大型的中央空调系统这些东西,所以这些东西往往都会采用风扇这种小成本的东西来代替,但是不清楚

    2024年02月03日
    浏览(69)
  • 基于STM32单片机的智能家居毕设

    1、硬件清单 序号 名称 型号/作用 数量 1 STM32单片机 正点原子精英板(STM32F103ZET6) 1 2 温湿度传感器 DHT11 1 3 光敏传感器 3针制光敏传感器模块 1 4 空气质量传感器 MQ135 1 5 人体红外传感器 微型人体红外感应模块 1 6 语音识别模块/播报模块 LD3320/JQ8900 MP3(可插SD/TF卡) 1 7 喇叭

    2024年02月03日
    浏览(92)
  • 仿真毕设分享 单片机智能吹风机的设计–实物设计

    本设计是基于单片机的智能吹风机的设计,主要实现以下功能: 可实现通过按键控制加热是低温、高温模式 可实现通过按键控制风扇是低速、高速模式,使用PWM调速 可实现通过按键设置吹风机工作时间 可实现通过DS18B20测得吹风机表面温度,防止出现火灾等情况 实现通过

    2024年02月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包