基于单片机远程控制系统的设计与实现_第1页
基于单片机远程控制系统的设计与实现_第2页
基于单片机远程控制系统的设计与实现_第3页
基于单片机远程控制系统的设计与实现_第4页
基于单片机远程控制系统的设计与实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机远程控制系统的设计与实现摘要本设计基于单片机和无线通信技术,利用手机APP实现远程设备的控制,系统包括手机APP端、无线通信模块。无线通信模块由单片机控制器、按键和无线发射器、显示器组成,其功能是通过接受来自手机APP不同的指令来实现不同设备的控制。手机APP通过WiFi或GPRS信号发送指令,具有较好的人机交互界面,可实现多机交互。系统的控制距离较远,应用方便,可用于对家庭电器远程控制,还可以对某些高危操作下的远程控制,以及户外远距离通信。本设计描述了系统的主要部件组成及功能特性、系统的模块组成及系统的工作原理,控制程序及设计调试与操作。关键词:51单片机;ESP8266无线设置;C语言;远程控制;手机APP

AbstractThisdesignisbasedonsingle-chipcomputerandwirelesscommunicationtechnology,usingmobilephoneAPPtoachieveremotedevicecontrol,thesystemincludesmobilephoneAPP,wirelesscommunicationmodule.Thewirelesscommunicationmoduleiscomposedofasingle-chipcontroller,buttons,awirelesstransmitter,andadisplay.ItsfunctionistorealizethecontrolofdifferentdevicesbyreceivingdifferentinstructionsfromthemobilephoneAPP.ThemobilephoneAPPsendscommandsthroughWiFiorGPRSsignals,andhasagoodhuman-computerinteractioninterface,whichcanrealizemulti-machineinteraction.Thecontroldistanceofthesystemisrelativelylongandtheapplicationisconvenient.Itcanbeusedforremotecontrolofhomeappliances,remotecontrolundercertainhigh-riskoperations,andoutdoorlong-distancecommunication.Thisdesigndescribesthemaincomponentsofthesystemandthefunctionalcharacteristicsofthesystem,thesystemcomponentsandtheworkingprincipleofthesystem,controlproceduresanddesigndebuggingandoperation.Keywords:51SCM;RemoteControl;ESP8266wirelesssettings;Clanguage;MobileAPP

目录1.课题研究意义 11.1课题研究背景 ..11.2课题研究的意义 11.3本文的研究内容 12.主要部件概述 22.1STC89c51单片机 22.1.1STC89C51简介 22.1.2主要功能特性 22.1.3引脚结构图 32.21602液晶显示器 …32.2.1液晶显示原理 42.2.2液晶显示器的分类 42.2.3液晶显示器的优点 52.3ESP8266概述 52.3.1Esp8266简介 52.3.2ESP8266特点 52.3.4ESP8266的应用 52.4供电方式 62.5DHT11温度采集模块 62.6手机安卓APP 73.设计原理 73.1总设计原理 73.2ESP8266无线通信设置 83.3DC电源 93.4自锁开关 103.5按键 103.6模块化设计 113.6.1用户人机交互界面 113.6.2红外遥控通信,无线通信 113.6.3解析无线数据信号,客户端和服务端的交互 123.6.4多机和界面操作 124设计调试与操作 134.1设计调试 134.1.1硬件调试 134.1.2软件调试 134.1.3整机调试 144.2案例设计操作过程 145.设计总结 15参考文献 17附录 18谢辞 281.课题研究意义1.1课题研究背景这是一个智能化蓬勃发展的时代,科学技术是第一生产力,科技的力量是人们的生活质量改善的决定因素。高效率,节省时间,操作方便不仅是我们这个时代的主题,更是科学发展所追求的方向。随着科技高速发展,我们对于智能化生活的追求也随之增长。电子计算机的出现极大地丰富了这个世界的物质性和精神性,同时也大大的简化了世界。当然MCU系统也随之出现,并大量应用在生产生活之中,利用MCU控制,操作一些事务,劳动时间相对减少,劳动效率和精度随之提高。MCU的出现极大的改变了我们生产与生活方式。人们的生活与网络和智能越来越紧密联系在一起。物联网大量的应用在各行各业之中,在智能时尚、智能工农业、智能交通运输、智能物流、智能教育教学、智能家居等方面都有着非凡意义。而WiFi无线网络技术的应用,可以实现手机端对WiFi模块设备的控制,而且,可以通过手机和电脑对智能设备远程控制,多种多样的设备控制方式,操作相对简单。应用软件采用安卓系统编程,数据信息可视化程度高,应用软件人机交互良好,改善人机对话技术,可实现多机和界面直接操作,操作方便简单。同时,远程控制技术也在现代生活生产中发挥着无可比拟的作用。大到航空航天,武器设备,小到电器家具,教学设备,都有着远程控制的身影。1.2课题研究的意义随着现代科学技术的快速发展,电子科技智能化和生活水平不断进步提高。人们对于生活质量和科技服务的要求与向往也日益提高,不仅在功能上,人们更多开始追求服务,安全,人性化等方面,而科技也在一步步满足人们的各式各样的需求。当我们出门在外,或者各种情况下不方便对被操作对象进行处理时,我们就会需要远程控制,比如出门在外监控家中情况,回家路上提前打开空调、照明;大棚温度采集并加热或者制冷,等等,都会需要运用远程控制技术。远程控制的优点主要在于不受时间和空间地点的约束,从而避免浪费必要资源。1.3本文的研究内容本设计是基于单片机的一套远程控制系统,它可以通过手机实现对温度进行采集显示并加以操作加热或制冷。因为手机几乎是现代人生活中不可缺少的电子产品,不像遥控一样专物专用。手机又有连接WIFI网络的功能,穿透能力比蓝牙要好,性能比红外稳定,又不必考虑直线传播。手机通过安装APP文件作为上位机控制软件,登陆服务器账号,连接主机(由STC89C51芯片组成)控制的ESP8266WIFI模块对其发送指令,进行连接。单片机接收到信号控制操作进行加热或者制冷。系统的主要设计框图如图1-1所示:DHT11温度采集EDHT11温度采集Esp8266无线模块STC89C51单片机STC89C51单片机手机APP模块手机APP模块LCD1602液晶显示模块LCD1602液晶显示模块USB充电模块USB充电模块图1-1设计框图图1-1设计框图2.主要部件概述2.1STC89c51单片机单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术将中央处理器CPU、只读存储器ROM、随机存储器RAM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的单个微型计算机系统,广泛应用于工业控制领域。8051单片机一般是对和MCS-51兼容的单片机的统称,题设要求使用8051开发平台,而在本设计中,采用8051系列中的STC89C51这一具体型号的单片机为开发平台,8951在我国单片机的教育教学,产品设计中使用更为普遍。2.1.1STC89C51简介STC89C51单片机是采用8051核的ISP在线可编程芯片。兼容MCS-51指令集和80C51的引脚结构、支持在线编程功能、串口编程、集成Flash存储芯片和通用8位中央处理器,是高速度/低功耗的新一代8051单片机。2.1.2主要功能特性 STC89C51的主要功能特性是:低成本,高性能;原有程序直接使用,硬件无需改动。如表2-1所示:主要功能特性兼容MCS51指令系统4K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM2个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能表2-1主要功能特性2.1.3引脚结构图STC引脚结构图如图2-2所示:图2-2引脚结构图2.21602液晶显示器在日常生活中,液晶显示器对于我们来说极为熟悉。液晶显示模块在智能手表、万年历、计算器,手机等电子设备中都发挥极其重要的作用,主要显示数字、专用符号和图形。在单片机的人机交互界面中,一般通过发光管、LED数码管、液晶显示器等方式对外输出。如图2-3所示:图2-31602液晶显示屏2.2.1液晶显示原理液晶显示屏的显示原理是利用它的物理特性,通过电压控制其显示区域,对其通电,从而显示出图形。液晶原理如2-2所示:其引脚简介:液晶1接GND,液晶2接VCC;3脚是液晶的灰度调整,通常3脚与GND(地)之间的之间的电阻数值为200Ω~1.5kΩ,3脚和电源之间的阻值大约为10kΩ。液晶的4~14与单片机的I/O口相接。15脚(A)和16脚(K)分别是为背光的电源和地。液晶显示原理如图2-2所示:图2-图2-2液晶原理2.2.2液晶显示器的分类液晶显示器主要按照显示方式、显示器色彩度、驱动方式进行分类。如表2-3所示:显示方式显示器色彩度驱动方式段式字符式点阵式黑白多灰度彩度静态驱动单纯矩阵驱动主动矩阵驱动表2-3液晶显示器的分类2.2.3液晶显示器的优点当液晶显示器作为对外显示器件应用在单片机系统中时,有下列优点:体积小,重量轻,功耗低;画质高且不会闪烁;数字式接口,简单可靠。2.3ESP8266概述2.3.1Esp8266简介ESP8266是一款高性能,低功耗的WiFi模块,是专为物联网应用和移动设备而设计,可将用户的设备连接到Wi-Fi网络上,实现联网功能。ESP8266如图2-4所示:图2-4ESP82662.3.2ESP8266特点(1)32位Tensilica处理器:ESP8266EX内置超低功耗TensilicaL10632位RISC处理器CPU时钟速度最高可达160MHz,支持实时操作系统(RTOS)和Wi-Fi协议栈,可将高达80%的处理能力留给应用编程和开发。(2)低功耗:ESP8266作为专门为可穿戴电子产品、移动设备和物联网应用而设计的产品,拥有多项专有技术,从而实现了超低功耗。(3)高度集成:ESP8266由32位Tensilica处理器、天线开关、功率放大器、射频balun、低噪放大器、标准数字外设接口、过滤器和电源管理模块等组成。只需少量的外围电路,就可降低所占的PCB空间。(4)性能稳定:ESP8266的工作温度范围大,性能保持相对稳定,可以在恶劣的操作环境中使用。2.3.4ESP8266的应用 ESP8266主要可以应用在以下设备装置中:智能电源插头,智能家居,婴儿监控器,网络摄像机,可穿戴电子设备产品,工业无线控制,无线位置感知设备。如图2-5所示的婴儿监控器,属于智能家居的一种,属于无线安全防护系统。通过ESP8266模块,家长可通过显示部分实时监视婴幼儿房间内的具体画面。图2-5婴儿监控器图2-5婴儿监控器2.4供电方式本设计供电方式选择USB插口模式。如图2-6所示:图2-6USB数据线图2-6USB数据线2.5DHT11温度采集模块DHT11模块是一种具有标定数字信号输出的温湿度复合传感器。该传感器由电阻湿度传感器和NTC温度传感器组成,与高性能8位微控制器连接。因此,该产品的优点体现品质卓越、性能稳定、可靠性高、反应速度快、抗干扰能力强、性价比高等等方面。每个DHT11传感器都必须在极其精准的校验室中进行测试修正。单线制串行接口,从而使系统集成变得方便简洁。产品封装模式为4针单排引脚,容易连接,而且可根据用户需求而提供特殊封装形式。如图2-7所示:图2-7DHT模块图2-7DHT模块2.6手机安卓APP通过网上相关论坛查询,下载了适合本设计作品的“WiFi数据传输”APP。此软件可显示实时温度数值,并有加热制冷按键。软件外观设计如图2-8所示:图2-8WiFi数据传输APP3.设计原理3.1总设计原理本设计基于单片机和无线通信技术,利用手机APP实现远程设备的控制,系统包括手机APP端、无线通信模块。无线通信模块由单片机控制器、按键和无线发射器、显示器组成,其功能是通过接受来自手机APP不同的指令来实现不同设备的控制。手机APP通过WiFi或GPRS信号发送指令,具有较好的人机交互界面,可实现多机交互。系统的控制距离较远,应用方便,可用于对家庭电器远程控制,还可以对某些高危操作下的远程控制,以及户外远距离通信。具体原理为:单片机板上的DHT11模块采集温度,并将温度数值发送到LCD液晶显示屏以及手机端APP界面加以显示。ESP8266发送WiFi无线数据,手机连上之后,APP自动获取IP地址,接收温度数值,手机APP端发送加热或者制冷指令,单片板上接收数据,进行对应操作,从而完成远程控制的应用。其原理图、微控制单元mcu、操作分别如图3-1、3-2、3-3所示:图3-1原理图图3-2微控制单元mcu图图3-3操作展示图3.2ESP8266无线通信设置本设计使用ESP8266WIFI模块实现单片机超声波测量数据向手机无线传输,让手机实时显示测量结果。ESP8266模块供电采用3.3V电压。将CH-PD引脚接VCC或者接上拉,其余三个引脚可选择悬空,模块便可从FLASH启动进入AT系统。不同的测试系统,接线方法也不尽相同,例如一种值得推荐的接法:CH-PD引脚接VCC后,将UTXD,GND,VCC,URXD与USB-TTL连接之后便可以进行测试。在本设计中,我们将单片机的串口中断的波特率设为9600,记得在将ESP8266模块与单片机硬件连接之前,先用USB模块与ESP8266模块连接好,再将ESP8266模块用AT命令改为9600的波特率。使用的命令: (1)AT+UART=9600,8,1,0,0,如图3-4所示:图3-4调试图(2)AT+CWSAP="wifi_yuan","123456789",11,4//设置模块SSID:WIFI,PWD:密码及安全类型加密模式(WPA2-PSK),如图3-5所示:图3-5调试图(3)完成上面两步后,就可以将ESP8266模块与单片机系统连接起来。手机连接“WiFi”,输入密码:“12345678”,成功连接。如图3-6所示:图3-6WiFi连接3.3DC电源DC电源插口的2、3引脚接GND,1脚实则是VCC,然而在电路中需要接蓝色的自锁开关元器件,之后另一个引脚再去接电源。电源插口原理和硬件分别如3-7,3-8所示:图3-7DC电源图图3-8DC电源原理图3.4自锁开关自锁开关元器件在电路中相当于电源开关,一组常开触点接电路的VCC(电源),另外一组常开触点接DC电源插口电源脚。硬件图如3-9,原理图如3-10所示:图3-9自锁开关实体图图3-10自锁开关原理图3.5按键按键解析如图3-11所示:图3-11按键解析图3.6模块化设计3.6.1用户人机交互界面下载好软件之后,连接WiFi,输入密码,打开WiFi数据传输APP,可以看到手机APP操作界面简单明了,没有过多复杂的显示。界面直接显示温度数值,加热按下左边按钮,制冷则按右边按钮,若退出,直接按“断开”即可。界面清楚,操作简单,老人孩子都可直接操作。WiFi数据传输APP页面如图3-12所示:图图3-12APP界面3.6.2红外遥控通信,无线通信在本设计中,使用的是无线通讯,设计中采用了ESP8266Wi-Fi模块,用手机连接名为“wifi”的无线网,密码是“12345678”,可实现无线通讯。本设计没有采用红外遥控,是因为设计要求对温度高度敏感,然而温度容易影响红外遥控,使其灵敏度和按测度下降。手机连接WiFi如图3-13所示:图3-13无线连接图3-13无线连接3.6.3解析无线数据信号,客户端和服务端的交互 单片机板上的ESP8266WiFi模块作为服务端,通过手机连接,APP作为客户端,服务端将采集到的温度数据传输到APP中并显示;而手机APP作为客户端,控制加热或者制冷,将数据发送到单片机上,加热或者制冷功能的警示灯发挥作用,给予提示。成功实现客户端与服务端交互。在单片机中植入相关代码:voidESP8266_SERVER(void)//建立服务器{ Send_Str("AT\r\n"); delayms(500); Send_Str("AT\r\n"); delayms(500); Send_Str("AT+CWMODE=2\r\n"); //服务器搭建在WIFI模块上 delayms(500); Send_Str("AT+CWSAP=\"wifi\",\"12345678\",5,3\r\n"); //设置显示名称:wifi,密码:12345678 delayms(500); Send_Str("AT+CIPMUX=1\r\n");//启动多连接,建立服务器都需要配置 delayms(500); Send_Str("AT+CIPSERVER=1,5000\r\n");//建立服务器 delayms(500); Send_Str("AT+CIPSTO=0\r\n");}3.6.4多机和界面操作此模块实现功能即一个操作界面可以直接操作多台客户机,客户机可同时进行操作。ESP8266无线网络可多个手机连接,而手机全部可以同时独立操作,成功实现多级和界面直接操作。多机操作原理如图3-14所示:图3-14多机操作原理图3-14多机操作原理4设计调试与操作硬件和软件部分完成后,为确保设计作品成功,实现要求功能,所以进行必备步骤:调试。最终,对调试成功的作品进行操作。4.1设计调试调试分为对硬件,软件,整体的调试三部分。4.1.1硬件调试在完成硬件制作后,根据设计要求对硬件部分进行了调试工作,首先是对器件进行检测,测试其能否正常工作,导线是否导通等等。接着是检查对各个引脚的信号,接通好电源,触摸元器件,发热的话,将电源关闭,再次进行检测;若没有发热,则测试所有芯片的VCC端电压,查看是否达到设计要求标准,接地端是否都已经接地,没有错误后,则开始利用信号波形测试电路中所用到的引脚。最后进行联机调试,采用部分调试。图图4-1元件图图图4-2充电线图4-3充电之后的元件图图4-3充电之后的元件图4.1.2软件调试 本设计系统的程序是采用C语言编程,通过KeiluVision3MCS-51编程软件对C语言软件部分进行了调试。在该软件的提示下,成功完成修改。所以只需着重检查头文件是否正确与单片机的端口地址是否匹配即可。软件调试如图4-4所示:图4-4测试图图4-4测试图4.1.3整机调试 整机调试主要是实体运行时对按键和接线进行测试等。通过测试各个功能模块,并对错误加以改进,使得本设计最终达到要求。4.2案例设计操作过程 (1)将USB端接入电脑,另一端与dc电源端连接,按下自锁开关,LCD显示屏显示温度,打开手机APP,如图4-5、4-6所示:图4-5手机APP界面图图4-6温度显示图(2)温度显示:连接WiFi,输入密码,手机和单片机板LCD液晶显示板同时呈现温度具体数值。输入密码,相关操作如图4-7、4-8所示:图4-7输入密码图4-8操作图(3)按下左边的开按钮,红灯亮,提示加热。操作如图4-9所示:图4-9加热操作(4)按下右边的开按钮,红灯亮,提示制冷。制冷操作如图4-10所示:图4-10制冷操作5.设计总结何为远程控制?即在网络上,由主控端Remote远距离控制被控端Host的技术。其中,主控端又称为客户端,被控端又称为服务端。远程控制系统应用在实际生活的方方面面,对于我们来说,极为熟悉。比如,远程监控,人在外地可以实时监控家中;QQ的远程桌面,可以实现控制对方电脑从而进行操作,手机APP远程遥控家电,实现智能化家居生活等等。而本文中的远程控制加热或制冷装置,可以广泛应用在蔬菜大棚,花房等需要根据要求改变温度的场所。设计过程中注重操作的直观性和操作性,采用了实时显示的交互界面,让操作结果一目了然。在设计过程中,遇到了一些棘手的问题,比如C语言的编写,esp8266模块的设置,LCD液晶显示屏的选择,各个小零件的型号,单片机的焊接等,最后这些问题,在经过查询图文资料,老师细心的指导和同学间的讨论之后成功解决,完成了设计,也熟悉了C语言的编写,keil软件的应用,电子元器件的的焊接等。总而言之,设计过程和论文的修改虽然经历很多的困难,但通过查询相关资料和指导老师的帮助下,最终完成作品。通过这次毕业设计,我感觉所学知识的重要性和融合性,也明白自己在专业学习上有很大的不足,但总体有所进步,将理论与操作结合,巩固了以往所学的知识,为以后的应用打下了一定的基础。

参考文献杨凡.浅谈单片机发展历程及其趋势[J].科技创造家,2016.王熔熔.基于单片机的温度采集报警系统的设计[J].计算机光盘软件与应用,2016.曹瑞.基于单片机的计算器的设计[J].科技视界,2017.梁强.字符型液晶模块1602快速应用[J].科技信息,2012.刘包利.浅谈单片机及其扩展应用[J].内蒙古科技与经济,2010,22:96-97凌玉华.单片机原理及应用系统设计[M].中南大学出版社,2006-5-1吕娓,刘雁开,房理想.家用电器远程控制系统的设计[J].电子世界,2015.乐鑫.ESP8266Overview[EB/OL]./zh-hans/products/hardware/esp8266ex/overview,2018.ESP8266数据手册和产品信息;ESP8266开发教程与资源[DB/OL]./wltx/article_2018031119679.html.2018年03月11日LiboYang.IntelligentHomeControlSystemBasedonSingleChipMicrocomputer[J].IOPConferenceSeries:MaterialsScienceandEngineering2017.NorainiAzmi.DesignandDevelopmentofMulti-TransceiverLorafiBoardconsistingLoRaandESP8266-WifiCommunicationModule[J].IOPConferenceSeries:MaterialsScienceandEngineering2018.HanhongTan.DesignofWaterTemperatureControlSystemBasedonSingleChipMicrocomputer[J].IOPConferenceSeries:MaterialsScienceandEngineering2017.

附录附录一:设计元件清单元件名称数量元件名称数量STC89C511LED3LCD16021精密电阻1DS18B201排阻10K1ESP82661晶振11.0592M1AMS11171继电器2按键1自锁按键185502USB线1电阻电容10K(1个)1K(5个)4.7K(1个)10uf(1个)30pf(2个)220uf(1个)附录二:相应代码#include<reg51.h>//头文件#include<intrins.h>#include<lcd1602.c>#defineuintunsignedint//定义#defineucharunsignedchar#definenops();{_nop_();_nop_();_nop_();_nop_();}ucharcodestr1[]={"TEMP:"};sbitDQ=P1^0;//温度传送数据IO口ucharflag=0; //显示状态位uintWendu;//用来存储采集实际使用的温度unsignedinttemp;sbitLED1=P2^0; //定义单片机I/O口p2.0伪名称为led1sbitLED2=P3^7; //定义单片机I/O口p3.7伪名称为led2unsignedcharidataRxbuff[50],Rxnum;//声明一个类型为无字符型的对象unsignedchar Recwifi_data[5],led[2]; //声明一个类型为无字符型的对象char*strx=0;charclinetid;//连接IDunsignedchargetflag;//获取标志/*************DS18B20温度读取模块*************/voiddelay_1ms(uintz) //传递延时1ms{uintx,y; //循环for(x=z;x>0;x--)for(y=110;y>0;y--);}voidtmpDelay(intnum)//延时函数{ while(num--);}voidInit_DS18B20()//初始化ds1820{ unsignedcharx=0; DQ=1;//DQ复位 tmpDelay(8);//稍做延时 DQ=0;//单片机将DQ拉低 tmpDelay(80);//精确延时大于480us DQ=1;//拉高总线 tmpDelay(14); x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败 tmpDelay(20);}unsignedcharReadOneChar()//读一个字节{ unsignedchari=0; unsignedchardat=0; for(i=8;i>0;i--) { DQ=0;//给脉冲信号 dat>>=1; DQ=1;//给脉冲信号 if(DQ) dat|=0x80; tmpDelay(4); } return(dat);//返回}voidWriteOneChar(unsignedchardat)//写一个字节{ unsignedchari=0; for(i=8;i>0;i--) //for循环 { DQ=0; DQ=dat&0x01; tmpDelay(5); DQ=1; dat>>=1; }}ucharReadtemp()//读取温度{ uchartmp[2]; Init_DS18B20(); WriteOneChar(0xCC);//跳过读序号列号的操作 WriteOneChar(0x44);//启动温度转换 delay_1ms(10); Init_DS18B20(); WriteOneChar(0xCC);//跳过读序号列号的操作 WriteOneChar(0xBE);//读取温度寄存器 tmp[0]=ReadOneChar();//连续读两个字节数据//读低8位 tmp[1]=ReadOneChar();//读高8位 temp=((tmp[1]<<4)&0xF0)|((tmp[0]>>4)&0x0F); //数返回数值 if(temp>127) //判断temp { temp=~temp+1; } return(temp); }voidInitUART(void) //这是串口的基本配置,配置他的波特率是9600.这些参数都是标准的。{TMOD=0x20;SCON=0x50;TH1=0xFD;TL1=TH1;PCON=0x00;EA=1;ES=1;TR1=1;}/******************************************************************************/voiddelayms(unsignedintx)//延时函数{ unsignedinti; while(x--) //while循环 for(i=125;i>0;i--);}/**UART发送一字节*/voidUART_send_byte(chardat) { SBUF=dat; //发送 while(TI==0); //等待发送完毕 TI=0; //清发送完毕中断请求标志位}/**UART发送字符串*/voidSend_Str(unsignedchar*buf){ while(*buf!='\0') { UART_send_byte(*buf++); }}voidESP8266_SERVER(void)//建立服务器{ Send_Str("AT\r\n"); delayms(500); Send_Str("AT\r\n"); delayms(500); Send_Str("AT+CWMODE=2\r\n"); //服务器搭建在WIFI模块上 delayms(500); Send_Str("AT+CWSAP=\"wifi\",\"12345678\",5,3\r\n"); //设置显示名称:wifi,密码:12345678 delayms(500); Send_Str("AT+CIPMUX=1\r\n");//启动多连接,建立服务器都需要配置 delayms(500); Send_Str("AT+CIPSERVER=1,5000\r\n");//建立服务器 delayms(500); Send_Str("AT+CIPSTO=0\r\n");}voidGet_Clinet(void)//判断是否获取到了客户端接入{ if((Rxbuff[0]=='0')&&(Rxbuff[1]==',')&&(Rxbuff[3]=='O'))//返回连接值 { getflag=1; } if((Rxbuff[0]=='0')&&(Rxbuff[1]==',')&&(Rxbuff[3]=='L'))//返回连接值 { getflag=0; }}voidSend_DATA(uchar*buffer)//发送数据{Send_Str("AT+CIPSEND=0,7\r\n"); delayms(100);Send_Str(buffer);//发送数据 delayms(200); if((Rxbuff[9]=='1')&&(Rxbuff[10]=='0'))//关灯 LED1=1; if((Rxbuff[9]=='1')&&(Rxbuff[10]=='1'))//开灯 LED1=0; if((Rxbuff[9]=='2')&&(Rxbuff[10]=='0')) //关灯 LED2=1; if((Rxbuff[9]=='2')&&(Rxbuff[10]=='1'))//开灯 LED2=0;}voidmain() //main函数{ unsignedcharTx_Buf[10]; unsignedcharLEDstatus;//灯的状态 InitUART(); ESP8266_SERVER();Init_1602();//1602初始化 Init_DS18B20(); //18B20初始化 LCD_write_str(1,4,str1); while(1) {if(flag==0) { Wendu=Readtemp(); //采集温度回来 Lcd_Display_2Date(1,9,Wendu); } /////////////////////////////////////////////// Get_Clinet(); if(getflag) { Lcd_Display_2Date(1,9,Wendu); //显示温度 Tx_Buf[0]='T'; //帧头Tx_Buf[1]=Wendu/10+0x30; //将温湿度数据送往发送数组,送给模块让手机APP显示 Tx_Buf[2]=Wendu%10+0x30; Tx_Buf[3]=0+0x30; Tx_Buf[4]=0+0x30; LEDstatus=LED1; Tx_Buf[5]=LEDstatus+0x30;//发送灯的状态 LEDstatus=LED2; Tx_Buf[6]=LEDstatus+0x30; Send_DATA(Tx_Buf);//发送数据 } }}/*****************串口接收中断函数,接收数据*********************/voidUARTInterrupt(void)interrupt4{ if(RI){ ES=0;RI=0; Rxbuff[Rxnum]=SBUF; if(Rxbuff[Rxnum]=='\n') //if循环语句 { Rxnum=0; } else { Rxnum++; if(Rxnum>22) Rxnum=0; } ES=1;} }//LCD1602.c//#include<reg51.h> //头文件#defineucharunsignedchar//定义#defineuintunsignedintsbitlcden=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论