0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于51单片机的智能自助快递机柜-GSM-震动-(电路图+程序源码)

基于51单片机的智能自助快递机柜-GSM-震动-(电路图+程序源码)

来源: 电路城
2021-11-12
类别:工业控制
eye 33
文章创建人 拍明芯城

原标题:基于51单片机的智能自助快递机柜-GSM-震动-(电路图+程序源码)

基于51单片机的智能自助快递机柜设计:GSM通信与震动检测的硬件电路与程序实现

一、系统设计背景与功能需求

随着电商行业的快速发展,智能快递柜作为末端物流配送的重要基础设施,其需求量持续攀升。传统快递柜依赖本地存储和人工管理,存在信息传递延迟、设备安全性不足等问题。本设计以STC89C52单片机为核心,集成GSM通信模块与震动传感器,实现快递存取的远程短信通知、动态验证码验证及设备异常报警功能。系统通过GSM网络实时推送存取验证码至用户手机,同时利用震动传感器监测柜体非法开启行为,确保快递安全。

image.png

1.1 系统功能概述

  1. 快递员存件流程:输入收件人手机号→系统分配柜号→生成6位随机验证码→通过GSM模块发送短信至用户手机→柜门电磁锁开启→指示灯亮起。

  2. 用户取件流程:输入柜号→输入验证码→验证通过后电磁锁开启→15秒后自动关闭柜门→验证码失效。

  3. 异常报警功能:震动传感器检测到非法开启时,触发蜂鸣器报警并发送短信至管理员手机。

  4. 管理功能:支持管理员密码修改、柜体状态查询及手动开柜。

1.2 技术指标

  • 通信方式:GSM短信协议(AT指令集)。

  • 验证码规则:6位随机数字,单次有效。

  • 震动检测阈值:可调(默认500mV,对应剧烈撞击)。

  • 电源供电:DC 12V输入,5V稳压输出。

二、硬件系统设计

系统硬件由核心控制模块、通信模块、输入输出模块及电源模块构成,各模块通过I/O接口与单片机连接。

2.1 核心控制模块:STC89C52单片机

元器件型号:STC89C52RC(宏晶科技)。
选择理由

  1. 性价比优势:价格仅为AT89C52的60%,且集成8KB Flash存储器,支持ISP在线编程。

  2. 执行效率:指令周期较AT系列缩短3-30倍,适合实时性要求高的短信发送与震动检测。

  3. 抗干扰能力:工作电压范围3.3V-5.5V,在低电压环境下仍可稳定运行。

功能实现

  • 通过P0口连接LCD1602液晶屏,实时显示柜体状态(空闲/占用/异常)。

  • P1口连接4×4矩阵键盘,用于输入手机号、验证码及管理密码。

  • P2口控制继电器驱动电磁锁,P3口连接GSM模块与震动传感器。

2.2 通信模块:SIM800C GSM模块

元器件型号:SIM800C(SIMCOM)。
选择理由

  1. 兼容性:支持GSM/GPRS双模,覆盖全球主流运营商频段(850/900/1800/1900MHz)。

  2. 低功耗:待机电流仅1.2mA,适合长期运行场景。

  3. AT指令集:提供标准化短信控制接口(如AT+CMGS发送短信)。

功能实现

  • 通过串口(TXD/RXD)与单片机通信,波特率设置为9600bps。

  • 短信内容格式:"柜号:A01 验证码:123456",采用PDU编码确保兼容性。

2.3 输入模块:4×4矩阵键盘

元器件型号:薄膜按键矩阵(4行×4列)。
选择理由

  1. 成本低:单个按键成本0.2元,适合大规模部署。

  2. 防误触设计:通过软件消抖(延时20ms)避免按键抖动。

功能实现

  • 数字键(0-9)输入手机号与验证码。

  • 功能键(*/#)切换存件/取件/管理模式。

2.4 输出模块:LCD1602液晶屏

元器件型号:LCD1602(带背光)。
选择理由

  1. 显示清晰:支持16×2字符,可同时显示柜号、状态及操作提示。

  2. 驱动简单:通过4位数据总线(DB4-DB7)与单片机连接,节省I/O资源。

功能实现

  • 第一行显示当前模式(如"Store Mode")。

  • 第二行显示动态信息(如"Code:123456 Sent")。

2.5 震动检测模块:SW-420震动传感器

元器件型号:SW-420(常开型)。
选择理由

  1. 灵敏度高:检测阈值可调(通过电位器分压),适应不同安装环境。

  2. 输出稳定:模拟量输出(0-5V),直接连接单片机ADC接口。

功能实现

  • 当检测到震动幅度超过阈值时,输出高电平触发中断。

  • 中断服务程序中启动蜂鸣器报警并发送短信。

2.6 电磁锁控制模块:JQC-3FF-S-Z继电器

元器件型号:JQC-3FF-S-Z(12V直流继电器)。
选择理由

  1. 负载能力强:可驱动5A/250VAC电磁锁,满足柜门锁止需求。

  2. 响应速度快:吸合时间≤10ms,确保开柜延迟小于0.5秒。

功能实现

  • 单片机通过P2.0口输出高电平驱动三极管(S8050),控制继电器线圈通断。

  • 继电器触点连接电磁锁,实现柜门机械锁定。

2.7 电源模块:LM7805稳压电路

元器件型号:LM7805(三端稳压器)。
选择理由

  1. 输出稳定:在输入电压9-15V范围内,输出5V±0.2V。

  2. 过热保护:内置限流电路,防止短路损坏。

功能实现

  • 12V直流电源经滤波电容(100μF/0.1μF)输入LM7805。

  • 输出端连接单片机及外围电路,提供稳定工作电压。

三、电路原理图设计

系统电路分为电源、控制、通信及检测四部分,各部分通过接口板连接。

3.1 主控电路

STC89C52单片机最小系统包括:

  • 晶振电路:11.0592MHz晶振与22pF电容构成时钟源,确保串口通信精度。

  • 复位电路:上电复位(10μF电容+10kΩ电阻)与手动复位(按键)并联。

3.2 GSM模块接口

SIM800C通过MAX232芯片实现TTL转RS232电平,连接单片机串口。

  • TXD:连接单片机P3.1(发送数据)。

  • RXD:连接单片机P3.0(接收数据)。

  • VCC:5V供电,需并联1000μF电容滤波。

3.3 震动检测电路

SW-420传感器输出端连接单片机P3.2(INT0)中断引脚,通过电位器分压调整阈值。

  • 分压电阻:10kΩ电位器与1kΩ固定电阻串联,分压比可调范围0-5V。

3.4 电磁锁驱动电路

继电器控制电路采用NPN三极管(S8050)驱动,基极串联1kΩ电阻限流。

  • 续流二极管:1N4007并联在继电器线圈两端,防止反电动势损坏三极管。

四、程序源码设计

程序采用C语言编写,模块化设计包括初始化、主循环、中断服务及功能子程序。

4.1 主程序框架

#include <reg52.h>
#include <string.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

// 引脚定义
sbit RELAY = P2^0;  // 继电器控制
sbit BEEP = P2^1;   // 蜂鸣器
sbit LED = P2^2;    // 状态指示灯

// 全局变量
uchar mode = 0;     // 0:待机 1:存件 2:取件 3:管理
uchar cabinet[6];   // 柜号存储
uchar code[6];      // 验证码存储

// 函数声明
void UART_Init();
void LCD_Init();
void GSM_SendSMS(char *phone, char *msg);
void KeyScan();
void Timer0_Init();

void main() {
UART_Init();
LCD_Init();
Timer0_Init();

while(1) {
KeyScan();
switch(mode) {
case 1: StoreMode(); break;  // 存件模式
case 2: FetchMode(); break; // 取件模式
case 3: AdminMode(); break; // 管理模式
}
}
}

4.2 GSM短信发送子程序

cvoid GSM_SendSMS(char *phone, char *msg) {UART_SendStr("AT+CMGF=1
");  
// 设置为文本模式DelayMs(100);UART_SendStr("AT+CSCS="GSM" ");  
// 设置字符集DelayMs(100);UART_SendStr("AT+CMGS="");UART_SendStr(phone);
UART_SendStr("" ");DelayMs(100);UART_SendStr(msg);UART_SendStr("x1A");  
// 发送Ctrl+Z结束DelayMs(500);}

4.3 震动检测中断服务程序

cvoid INT0_ISR() interrupt 0 {BEEP = 1;          
// 启动蜂鸣器LED = 0;          
// 红灯闪烁GSM_SendSMS("138****1234", "Dangerous! Cabinet A01 tampered!");DelayMs(3000);
BEEP = 0;LED = 1;}

4.4 验证码生成与验证子程序

c

void GenerateCode(uchar *buf) {
uint i;
for(i=0; i<6; i++) {
buf[i] = rand() % 10 + '0';  // 生成0-9随机数
}
}

bit VerifyCode(uchar *input) {
return strcmp((char*)code, (char*)input) == 0;
}

五、系统测试与优化

5.1 功能测试

  1. 存件测试:输入手机号138****1234,系统发送短信"柜号:A01 验证码:123456",柜门正常开启。

  2. 取件测试:输入错误验证码3次,系统锁死并报警10秒。

  3. 震动测试:用锤子敲击柜体,触发短信报警"Dangerous! Cabinet A01 tampered!"

5.2 优化方向

  1. 功耗优化:采用低功耗模式(IDLE),待机电流降至5mA。

  2. 安全性增强:增加AES加密算法,防止短信拦截攻击。

  3. 多柜扩展:通过I2C总线连接多个柜体控制器,支持32柜并行管理。

六、结论

本设计以STC89C52单片机为核心,集成GSM通信与震动检测功能,实现了智能快递柜的远程管理、动态验证及异常报警。硬件选型兼顾成本与性能,软件设计采用模块化结构,便于维护与扩展。测试结果表明,系统在存取效率、安全性及稳定性方面均达到预期指标,可广泛应用于社区、校园等场景。未来工作将聚焦于物联网集成(如NB-IoT)与AI视觉识别,进一步提升用户体验。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告