单片机交流
直播中

李丽华

7年用户 1361经验值
私信 关注
[问答]

怎样去设计一种基于51单片机的WIFI遥控防盗电子密码锁APP?

基于51单片机的WIFI遥控防盗电子密码锁APP的原理是什么?
怎样去设计一种基于51单片机的WIFI遥控防盗电子密码锁APP?

回帖(1)

姬盼希

2021-7-16 16:39:31
系统的功能分析
本系统具体框图:

原理图

5V电源电路设计
本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。

ESP8266WIFI模块电路设计电路设计
串口WIFI模块是新一代嵌入式WiFi模块,体积小,功耗低。采用UART接口。串口wifi模块是基于通用串行接口特性,符合IEEE802.11 协议栈网络标准,内置TCP/IP协议栈,使传统串口设备更好的加入无线网络。
ESP8266是一款超低功耗的模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和互联网的应用设计,可将用户的物理设备连接到WIFI无线网络上,进行互联网或局域网通信,实现联网功能。
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。WiFi模块电路图如下图所示。

蜂鸣器报警电路(低电平有效)设计
有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。本系统所采用的报警模块为5V有源蜂鸣器模块,电路中采用三极管9012来驱动,只要单片机控制引脚为低电平,蜂鸣器就会鸣叫报警,反之则不鸣叫,可以通过控制单片机引脚方波输出形式控制蜂鸣器的鸣叫方式。电阻为限流电阻,保护作用。

5V继电器控制电路(低电平有效)设计
继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、
通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一故在电路中起着自动调节、安全保护、转换电路等作用。继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。在本系统中,通过三极管驱动继电器,当单片机的控制引脚为低电平时,三极管导通,此时继电器供电闭合,同时指示灯LED亮,与LED灯串联的电阻为限流作用保护LED灯,与三极管基集相连的电阻也是限流作用,保护三极管。继电器控制电路的原理图如下图所示。

系统软件设计

#include 《reg52.h》#include“delay.h”***it relay =P1^0; //接口定义***it buzzer =P1^1;unsigned long times_20ms=0; //定时计数unsigned char firstin =0; //首次接收到标志unsigned char tab[7]; //串口数据暂存unsigned char Count=0; //串口接收计数unsigned char uartbusy =0; //串口判忙unsigned char reportFlag = 0; //数据上报标志unsigned char tabMima[3]={‘0’,‘0’,‘0’}; //默认密码unsigned char i;unsigned char timeNum =0; //延时计数void Init_Timer0(void);//函数命令void UART_Init(void);void SendByte(unsigned char dat);void SendStr(unsigned char *s,unsigned char length);void main (void){ Init_Timer0(); //定时器0初始化 UART_Init(); //串口初始化 buzzer =0; //上电蜂鸣器响一下 relay = 0; timeNum =10; //延时计数 DelayMs(250); buzzer =1; for(i=0;i《40;i++) //延时 待wifi稳定 {DelayMs(100);} SendStr(“AT+CIPMUX=1rn”,13); //打开多连接 for(i=0;i《10;i++) {DelayMs(100);} SendStr(“AT+CIPSERVER=1,8080rn”,21); //建立服务 端口号为8080 for(i=0;i《10;i++) {DelayMs(100);} while(1) //主循环 { if(reportFlag == 1) //上报数据标志置位 { SendStr(“AT+CIPSEND=0,4rn”,16); //发送4位数据 for(i=0;i《2;i++) //短暂延时 {DelayMs(100);} SendStr(“ok!n”,4); //回应发送数据 for(i=0;i《2;i++) //延时 {DelayMs(100);} reportFlag =0; } }}void Init_Timer0(void){ TMOD |= 0x01; //使用模式1,16位定时器,使用“|”符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; //重新赋值 20ms TL0=(65536-20000)%256; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开}void UART_Init(void){ SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz TL1 = TH1; TR1 = 1; // TR1: timer 1 打开 EA = 1; //打开总中断 ES = 1; //打开串口中断} 。
.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分