




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南商务职业技术学院毕业设计
目录
1产品功能分析....................................................1
2设计方案遴选....................................................1
2.1单片机的选择...............................................1
2.2通讯方式的选择.............................................1
2.3系统框图设计...............................................1
3产品硬件设计....................................................2
3.1STC89C52RC单片机核心电路设计..............................2
3.2按键电路设计...............................................2
3.3ESP8266WiFi模块电路设计...................................3
4产品软件设计....................................................4
4.1主程序流程图...............................................4
4.2ESP8266WiFi模块控制程序设计...............................5
4.3上位机APP程序设计.........................................6
4.4产品程序清单...............................................7
5产品使用说明....................................................8
5.1产品装配图.................................................8
5.2产品调试...................................................8
5.3产品使用说明...............................................8
6产品设计技术标准.................................................9
参考资料..........................................................10
附录..............................................................11
附录1元器件清单..............................................11
附录2电路原理图..............................................12
附录3PCB设计图...............................................13
附录4产品实物图..............................................14
附录5主程序代码..............................................16
湖南商务职业技术学院毕业设计
基于51单片机WiFi控制智能窗帘设计与制作
1产品功能分析
该设计具有窗帘控制系统的最基本的功能,可以通过微动开关控制窗帘开
合,在此基本功能的前提下,该智能窗帘还设计了可以通过光照强度控制窗帘
自动开合功能,考虑到使用更加方便,本设计还了采用WiFi模块连接手机APP,
可以用手机APP控制窗帘开合。
2设计方案遴选
2.1单片机的选择
采用STC89C52芯片,STC89C52是一种带8K字节闪烁可编程可擦除只读存
储器的低电压,高性能微处理器。
2.2通讯方式的选择
选择WiFi控制的通讯方式,采用ESP8266串口WiFi模块,该模块可以连
接WiFi热点,并与外部设备进行双向通讯。在此情况下ESP8266可以作为一个
WiFi接口,去连接外部设备,连接后就可以发送和接收数据来控制设备。
2.3系统框图设计
系统组成框图如图1所示。
图1系统组成框图
1
湖南商务职业技术学院毕业设计
3产品硬件设计
3.1STC89C52RC单片机核心电路设计
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片
机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、
晶振电路、复位电路。一个51单片机的最小系统如图2所示。
VCCU3VCCJ?
140
P1.0VCC1
24239
P1.1(AD0)P0.02
KS338
P1.2(AD1)P0.13
437
P1.3(AD2)P0.24
536
P1.4(AD3)P0.35
+C1635
P1.5(AD4)P0.46
10uFRESET734
P1.6(AD5)P0.57
3
1833
P1.7(AD6)P0.68
932
RST(AD7)P0.79
1031
P3.0(RXD)EA/VPP
1130CON9
P3.1(TXD)ALE/PROG
R271229
P3.2(INT0)PSEN
10K1328
P3.3(INT1)(A15)P2.7
1427
P3.4(T0)(A14)P2.6
1526
P3.5(T1)(A13)P2.5
C22301625
P3.6(WR)(A12)P2.4
1724
P3.7(RD)(A11)P2.3
1823
XTAL2(A10)P2.2
z1922
XTAL1(A9)P2.1
H2021
MGND(A8)P2.0
2
C2330189C51/C52
图2最小系统电路图
单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下
重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行
中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开
始执行。
一般的晶振振荡电路都是在一个反相放大器的两端接入晶振,再有两个电
容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量
值就应该等于负载电容,一般的晶振的负载电容为15pF或12.5pF如果再考虑
元件引脚的等效输入电容则两个22pF的电容构成晶振的振荡电路就是比较好
的选择。
3.2按键电路设计
本设计仅采用两个按键:作用是控制窗帘自动开合的启动与暂停,以及
电源开关。电路图如图3,图4所示。
2
湖南商务职业技术学院毕业设计
图3图4
3.3ESP8266WiFi模块电路设计
ESP8266是一个完整且自成体系的WiFi网络解决方案,能够独立运行,
也可以作为slave搭载于其他Host运行。
在搭载应用并作为设备中唯一的应用处理器时,能够直接从外接闪存中启
动。内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。另外一种
情况是,无线上网接入承担WiFi适配器的任务时,可以将其添加到任何基于
微控制器的设计中,连接简单易行,只需通过SPI/SDIO接口或中央处理器AHB
桥接口即可。
强大的片上处理和存储能力,使其可通过GPIO口集成传感器及其他应用的
特定设备,实现了最低前期的开发和运行中最少地占用系统资源。
高度片内集成,包括天线开关balun、电源管理转换器,因此仅需极少的外
部电路,且包括前端模块在内的整个解决方案在设计时将所占PCB空间降到最
低。
装有ESP8266的系统表现出来的领先特征有:节能VoIP在睡眠/唤醒模式
之间的快速切换、配合低功率操作的自适应无线电偏置、前端信号的处理功能、
故障排除和无线电系统共存特性为消除蜂窝/蓝牙/DDR/LVDS/LCD干扰。
ESP8266的三种工作模式
(1)AP模式(模块作为热点,可以发散出wifi信号,实现手机或电脑直接与模
块通讯,实现局域网无线控制)
(2)STA模式(模块通过路由器连接互联网,手机或电脑通过互联网实现对设
备的远程控制)
(3)STA+AP模式(两种模式的共存即可通过互联网控制可实现无缝对接切换)
本设计采用了第一种工作模式,电路原理图如图5所示。
3
湖南商务职业技术学院毕业设计
图5WIFI接口电路
4产品软件设计
4.1主程序流程图
主程序流程图如图6所示。
4
湖南商务职业技术学院毕业设计
图6主程序流程图
4.2ESP8266WiFi模块控制程序设计
使用软件keliuVsion5,C语言编写单片机程序通过esp8266实现单片机与
手机APP的数据通信。通过这个wifi模块进行局域网模拟控制窗帘。
原理:这里没有更改8266的at固件,所以编程让51单片机使用AT指令
一步一步设置wifi模块,让其开启AP模式,也就是热点,设置名字为esp8266
和密码,配置器开启服务器,8080端口,获取当前esp8266的IP地址显示出来,
此时手机打开wifi,连接wifi模块的,打开手机上网络调试助手,输入IP地
址和端口,点击开启客户端,就能够跟8266连接上了,此时可以互相发送数据,
这里就直接通过单片机的串口接收中断来解析对应的命令格式,根据命令来开
5
湖南商务职业技术学院毕业设计
闭窗帘。
4.3上位机APP程序设计
上位机APP开发使用Androidstudio编写代码。
UI界面设计流程:
采用RelativeLayout布局,在下方设计三个TextView和一个EditText,
TextView分别显示“WiFi智能窗帘控制系统”,“自动模式开关“,”手动开
关”,EditText用于使用者输入IP地址与端口号。
接下来设计五个Button,分别用于“关闭自动“,”打开自动“,”打
开”,”关闭”,”停止”。
设计Java代码:
需要Java控制监听五个button事件,对每一次按下次做出数据反馈,将
数据上反馈至单片机控制窗帘开闭。
6
湖南商务职业技术学院毕业设计
4.4产品程序清单
图7产品程序清单
7
湖南商务职业技术学院毕业设计
5产品使用说明
5.1产品装配图
图8产品装配图
5.2产品调试
将元器件电路焊接好,使用万用表检测是否出现短路情况。确保无误后接
通电源,用光源照射光敏电阻,测试自动测光开合功能是否正常。
调试ESP8266WiFi模块,使用AT命令配置WiFi模块,设置模块热点的账
户号密码。
测试APP是否正常运行,连接智能窗帘WiFi信号,控制窗帘开合即可。
5.3产品使用说明
(1)接通电源可使用自动模式:可感知光线强度,光强时控制窗帘关闭,
光弱时控制窗帘打开。
8
湖南商务职业技术学院毕业设计
(2)使用ESP8266串口WIFI模块连接WiFi控制APP,可实现:手动模式:
使用APP连接控制,可手动打开或关闭窗帘。
6产品设计技术标准
[1]J-STD-001E电气与电子组件的焊接要求
[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求
[3]IPC-7711/21电子组件和电路板的返工&返修
[4]GB/T11457-2006信息技术软件工程术语
[5]GB/T8566-2007信息技术软件生存周期过程标准
[6]GB/T8567-2006计算机软件文档编制规范
9
湖南商务职业技术学院毕业设计
参考资料
[1]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
[2]李广弟等单片机基础北京航空航天出版社,2001.7
10
湖南商务职业技术学院毕业设计
附录
附录1元器件清单
CommentDescriptionDesignatorFootprintLibRefQuantity
Header
Header4X2Header,4-Pin,Dualrow8266HDR2X41
4X2
Header5Header,5-PinbjjkHDR1X5Header51
CapCapacitorC1,C2HDR1X2Cap2
PolarizedCapacitor
CapPol1C3,lb1R.1/.2ACapPol12
(Radial)
Header4Header,4-Pinck1,gmHDR1X4Header42
L324D1LED2.5LED1
Header3Header,3-PindyzPOWER_P3Header31
DIPSwitch,2Position,
SWDIP-2f1SW-PB2.5SWDIP-21
SPST
Res2ResistorR3,xy1AXIAL-0.4Res22
MCUU1DIP40at89c511
DIPSwitch,8Position,ULN2003步
SWDIP-8DIP_SW_8WAY_SMDSWDIP-81
SPST进电机芯片
XTALCrystalOscillatorY1XTAL1_ARCXTAL1
DIPSwitch,2Position,
SWDIP-2使能按键DIP-4SWDIP-21
SPST
Diode1AmpGeneralPurposeDiode
降压二极管DO-411
1N4001Rectifier1N4001
11
湖南商务职业技术学院毕业设计
附录2电路原理图
12
湖南商务职业技术学院毕业设计
附录3PCB设计图
13
湖南商务职业技术学院毕业设计
附录4产品实物图
14
湖南商务职业技术学院毕业设计
15
湖南商务职业技术学院毕业设计
附录5主程序代码
单片机程序
#include"reg51.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitgm=P1^0;
sbitwd1=P1^1;
unsignedcharkongzhi=0;
unsignedcharcodeRUN1[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正转
unsignedcharcodeRUN2[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反转
voidchushihua()
{
IE=0x90;
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TCON=0x40;
TR1=1;
ES=1;
EA=1;
}
//串行口连续发送char型数组,遇到终止号/0将停止
voidfasongshuju(uchar*str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;
str++;
}
}
//延时函数
voidyanshi(uintttt)
{
while(ttt--);
}
16
湖南商务职业技术学院毕业设计
//ESP8266上电初始化
voidwifichushihua()
{
fasongshuju("AT+CIPMUX=1\r\n");
yanshi(50000);
fasongshuju("AT+CIPSERVER=1,8080\r\n");
}
/******延时函数****************/
voiddelay(unsignedintt)
{
unsignedintk;
while(t--)
{
for(k=0;k<60;k++)//用for的空循环延长程序的执行时间
{}
}
}
//步进电机驱动正转
voidzz()
{
unsignedchari;
for(i=0;i<8;i++)//一个周期转3.75*8=30度
{
P2=RUN1[i]&0x1f;//取数据
delay(2);//调节转速
}
}
//步进电机驱动反转
voidfz()
{
unsignedchari;
for(i=0;i<8;i++)//一个周期转3.75*8=30度
{
P2=RUN2[i]&0x1f;//取数据
delay(2);//调节转速
}
17
湖南商务职业技术学院毕业设计
}
//传感器自动控制的
voidzidong()
{
if(gm==0)//有光的时候
{
zz();
}
else//无光的时候
{
fz();
}
}
voidmain()
{
yanshi(50000);
yanshi(5000);
chushihua();
wifichushihua();
while(1)
{
if(kongzhi==1)
{
zz();
}
if(kongzhi==2)
{
fz();
}
if(kongzhi==3)
{
P2=0xff;
}
if(kongzhi==4)
18
湖南商务职业技术学院毕业设计
{
zidong();
}
if(wd1==0)
{
kongzhi=3;
}
}
}
/*
串口服务子函数
*/
voidtime()interrupt4
{
if(RI)
{
RI=0;
switch(SBUF)
{
case'a':kongzhi=1;break;//接收到安卓端的'a'字符
case'b':kongzhi=2;break;//接收到安卓端的'b'字符
case'c':kongzhi=3;break;//接收到安卓端的'b'字符
case'd':kongzhi=4;break;//接收到安卓端的'c'字符
/*
case'e':guangbiaozhiwei=1;P2=0xff;
break;//接收到安卓端的'd'字符
*/
}
}
}
19
湖南商务职业技术学院毕业设计
上位机APP程序代码
APP布局程序:
<RelativeLayoutxmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Main">
<Button
android:id="@+id/guanbizidongbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/dakaizidong"
android:layout_alignBottom="@+id/dakaizidong"
android:layout_alignParentRight="true"
android:text="关闭自动"
android:textSize="20sp"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="WiFi智能窗帘控制系统"
android:textSize="30sp"
/>
<EditText
android:id="@+id/iped"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_centerHorizontal="true"
android:ems="10"
android:text="12:8080"
android:textSize="25sp"/>
<Button
20
湖南商务职业技术学院毕业设计
android:id="@+id/dakaizidong"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/iped"
android:layout_marginTop="122dp"
android:text="打开自动"
android:textSize="20sp"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/guanbizidongbtn"
android:layout_centerHorizontal="true"
android:text="自动模式开关"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dakaizidong"
android:layout_centerHorizontal="true"
android:layout_marginTop="74dp"
android:text="手动开关"
android:textSize="30sp"
/>
<Button
android:id="@+id/dakaibtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:text="打开"
android:textSize="20sp"/>
<Button
android:id="@+id/guanbibtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/dakaibtn"
21
湖南商务职业技术学院毕业设计
android:layout_alignBottom="@+id/dakaibtn"
android:layout_alignParentRight="true"
android:text="关闭"
android:textSize="20sp"/>
<Button
android:id="@+id/tingzhibtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="停止"
android:textSize="20sp"/>
</RelativeLayout>
APPJava程序设计:
packagecom.example.wificontrol;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.PrintWriter;
import.Socket;
importjava.util.ArrayList;
importjava.util.Timer;
importjava.util.TimerTask;
importandroid.app.Activity;
importandroid.app.PendingIntent;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.SharedPreferences;
importandroid.content.SharedPreferences.Editor;
importandroid.content.pm.ActivityInfo;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.telephony.TelephonyManager;
importandroid.telephony.gsm.SmsManager;
importandroid.util.Log;
22
湖南商务职业技术学院毕业设计
importandroid.view.KeyEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.Window;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
EditTextIPText;
Buttondakaizidongbtn,guanbizidongbtn;
Buttondakaibtn,guanbibtn;
Buttontingzhibtn;
privateContextmContext;
privatebooleanisConnecting=false;
privatebooleanonflag=false;
privateThreadmThreadClient=null;
privateSocketmSocketClient=null;
staticBufferedReadermBufferedReaderServer=null;
staticPrintWritermPrintWriterServer=null;
staticInputStreammBufferedReaderClient=null;
staticPrintWritermPrintWriterClient=null;
privateStringrecvMessageClient="";
privateStringrecvMessageServer="";
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//Log.v(tag,"log---------->onCreate!");
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
mContext=this;
IPText=(EditText)findViewById(R.id.iped);
//按键获取
dakaizidongbtn=(Button)findViewById(R.id.dakaizidong);
guanbizidongbtn=(Button)findViewById(R.id.guanbizidongbtn);
dakaibtn=(Button)findViewById(R.id.dakaibtn);
guanbibtn=(Button)findViewById(R.id.guanbibtn);
23
湖南商务职业技术学院毕业设计
tingzhibtn=(Button)findViewById(R.id.tingzhibtn);
dakaibtn.setOnClickListener(newdakai());
guanbibtn.setOnClickListener(newguanbi());
dakaizidongbtn.setOnClickListener(newdakaizidong());
guanbizidongbtn.setOnClickListener(newguanbizidong());
tingzhibtn.setOnClickListener(newtingzhi());
IPText.setText("12:8080");
lianjie();
}
classdakaiimplementsOnClickListener
{
@Override
publicvoidonClick(Viewv){
if(isConnecting&&mSocketClient!=null){
newThread(){
publicvoidrun(){
Stringoutput="a";
try{
mPrintWriterClient.print(output);//?????????????
mPrintWriterClient.flush();
}
catch(Exceptione){
//TODO:handleexception
Toast.makeText(mContext,"通讯尚未",
Toast.LENGTH_SHORT).show();
24
湖南商务职业技术学院毕业设计
}
};
}.start();
}
if(mSocketClient==null){
Toast.makeText(mContext,"未连接,请退出之后先连接wifi再打
开APP",Toast.LENGTH_SHORT).show();
}
}
}
classguanbiimplementsOnClickListener
{
@Override
publicvoidonClick(Viewv){
if(isConnecting&&mSocketClient!=null){
newThread(){
publicvoidrun(){
Stringoutput="b";
try{
mPrintWriterClient.print(output);//?????????????
mPrintWriterClient.flush();
}
catch(Exceptione){
//TODO:handleexception
Toast.makeText(mContext,"手机通信权限未开放"+
e.getMessage(),
Toast.LENGTH_SHORT).show();
}
};
}.start();
25
湖南商务职业技术学院毕业设计
}
if(mSocketClient==null){
Toast.makeText(mContext,"未连接,请退出之后先连接wifi再打
开APP",Toast.LENGTH_SHORT).show();
}
}
}
classtingzhiimplementsOnClickListener
{
@Override
publicvoidonClick(Viewv){
if(isConnecting&&mSocketClient!=null){
newThread(){
publicvoidrun(){
Stringoutput="c";
try{
mPrintWriterClient.print(output);//?????????????
mPrintWriterClient.flush();
}
catch(Exceptione){
//TODO:handleexception
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年芳纶压光机合作协议书
- 植物激素与生长调节的关系试题及答案
- 中班防诈骗课件
- 2025脑卒中后视力障碍的研究进展
- 生态系统中的物质循环研究试题及答案
- CPSM考试技巧与例题试题及答案
- 国际物流师掌握物流信息流试题及答案
- 物流师网络资源试题及答案整合
- 考点23电解池金属的腐蚀与防护(核心考点精讲精练)-备战2025年高考化学一轮复习考点帮(新高考)(原卷版)
- 骨质疏松健康教育课件
- 四大穿刺技术操作规范
- 金合CAD操作说明
- 中英文课外阅读:黑骏马
- 第5课+古代非洲与美洲+高中历史统编版(2019)必修中外历史纲要下
- 土的承载比CBR试验JTG34302020
- Unit+4+Hetitage+in+Danger+Reading(1)课件 【 备课 精讲精研】 高中英语牛津译林版选择性必修第三册+
- 2022-2023学年四川省绵阳市绵阳中学高三1月月考语文试题(解析版)
- 学习雷锋精神争做新时代好少年主题教育PPT
- GB/T 32935-2016全球热带气旋等级
- 太平猴魁的独特猴韵
- GB/T 2518-2019连续热镀锌和锌合金镀层钢板及钢带
评论
0/150
提交评论