版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计〔论文〕题目基于物联网技术的室内LED照明控制系统姓名专业学号指导教师二O一五年六月
目录中文摘要I英文摘要II前言III1智能照明系统关键技术分析11.1物联网技术简介11.2照明系统现状分析21.3物联网下的智能照明22总体方案设计52.1系统的需求分析52.2系统架构设计52.3通信协议设计62.3.1协议数据帧格式62.3.2控制协议的具体实现73硬件设计83.1电源模块83.2单片机最小系统103.3WIFI模块103.3.1ESP8266模块电路设计103.3.2ESP8266模块特性113.3.3ESP8266模块功耗113.4按键输入模块电路的设计123.5RGB灯驱动电路设计123.5.1WS2811主要特点133.5.2WS2811概述133.5.3WS2811管脚说明144wifi模块使用164.1工作模式164.2AT指令集164.2.1根底AT指令174.2.2WiFi功能AT指令174.3.3TCP/IP工具箱AT指令195软件设计265.1软件总流程图265.2RGB灯驱动程序编写275.3WIFI驱动编写315.4数据帧处理机制32总结40致谢42参考文献43附录一原理图44附录二实物图45附录三客户端操作界面截图46基于物联网技术的室内LED照明控制系统摘要WIFI是短距离、低本钱无线通讯技术之一。它可以用于替代移动设备之间的通讯电缆,从而形成个人无线网络。它不仅使计算机和通信的融合成为可能,而且随着它的不断进步,还可以把家电、娱乐电子产品与计算机、通信系统的终端融为一体,使人们在家里、办公室或者公共场所就能实现统一的操作和控制,为办公室的自动化和家庭通信的实施创造了良好的条件。随着电子科学技术的迅速开展,特别是随着大规模集成电路的出现,给人类生活带来了根本性的改变。尤其是单片机技术的开发应用开展,现在产品几乎已经走进了千家万户。基于WIFI的控制多彩台灯设计正是响应当前无线控制开展浪潮设计的作品,其中涉及的WIFI无线通讯技术就是WIFI的典型应用,它的开发为后期研究奠定了根底。本文从通过WIFI进行PWM控制的角度来进行设计的。本文介绍了一个WIFI控制的PWM调光RGB灯的系统结构及工作原理。具体阐述了PWM控制下的三基色混光原理;及利用先进WIFI技术控制下的工作原理,从而确定整个设计的方案和调试步骤。关键词:WIFI;三基色混光;PWM控制;TCP/IPTHINGSTECHNOLOGYINDOORLEDLIGHTINGCONTROLSYSTEMAbstractWIFIisashortdistance,onelow-costwirelesscommunicationtechnology.Itcanbeusedtoreplacethecommunicationcablebetweenthemobiledevice,therebyformingapersonalwirelessnetwork.Itnotonlymakestheintegrationofcomputersandcommunicationsbecomepossible,butasitcontinuestoprogress,butalsointegratedterminalappliances,entertainmentelectronicsandcomputers,communicationsystems,right,sothatpeopleinthehome,officeorpublicplacecanbeachievedunifiedoperationandcontrolfortheimplementationofofficeautomationandhomecommunicationshascreatedgoodconditions.Withtherapiddevelopmentofelectronicscienceandtechnology,especiallywiththelarge-scaleintegratedcircuits,tohumanlifebroughtfundamentalchange.EspeciallythedevelopmentandapplicationofSCMtechnologydevelopment,productnowalmostintothehousehold.ControlBasedWIFIphonecolorfullampdesignisresponsivetocurrentwaveofdevelopmentofwirelesscontroldesignwork,whichinvolvedatypicalapplicationWIFIwirelesscommunicationtechnologyisWIFI,whichdevelopedthefoundationforthelaterstudy.Inthispaper,byphoneWIFIPWMcontrolanglefordesign.ThisarticledescribesthesystemstructureandworkingprincipleofaWIFIcontrolPWMdimmingRGBlights.SpecificallyaddressedthethreeprimarycolorsmixedlightunderPWMcontrolprinciple;andtheuseofadvancedWIFItechnologyworksundercontrolinordertodeterminetheoveralldesignoftheprogramanddebugprocedures.Keywords:WIFI;tricolormixedlight;PWMcontrol;TCP/IP前言使用智能照明控制系统相比传统的照明控制具有很大的优越性。首先,它具有良好的节能效果。智能照明控制系统能够借助各种不同的用户根据自身喜好预先设置的控制方式和控制元件,对不同时间、不同环境的光照度和范围进行精确设置和合理管理,这样在保证使用的前提下实现节能。这种自动调节的方式,能够充分利用室外的自然采光,只有必需时才把灯点亮或点到要求的亮度,它和自然光配合共同照明,利用最少的能源保证所要求的照度水平,节电效果很明显,一般可到达30%以上。智能照明控制系统的另一大成效是改善工作环境,提高工作效率。良好的工作环境是提高工作效率的一个必要条件,这也能间接的带来巨大的经济效益。良好的设计灯具布局,合理地选用光源灯具,营造舒适的照明环境,配合优良的照明控制系统,都能很好的提高照明质量。智能照明控制系统用调光模块控制面板代替传统的开关控制灯具,可以将灯具的开关和照度预先设置为不同的模式,用户可以简单的通过界面来选择最适合的照明模式,不仅更加舒适,还能有效地控制各房间内整体的照度值,从而提高照度均匀性。智能照明控制系统还实现了多种照明效果。多种照明控制方式,可以使同一建筑空间具备多种照明效果,以适应不同的需求。现代建筑物中,照明不仅单纯地为满足人们视觉上的明暗需求,更应具备多种的控制方案,使建筑物功能更加多样化,也能给人丰富的视觉效果和美感。1智能照明系统关键技术分析物联网是当下一种新的思维方式,物联网的开展将带来更多新的业务和应用。物联网并没有很多全新的技术,应用创新与用户体验才是物联网开展的核心。在物联网开展的同时,另一个和物联网看似毫无关系的方面也在和物联网越来越有关,那就是智能照明系统。智能照明不仅仅是一种简单的照明控制课题,它在带来舒适性的同时也能大量的节约能源,传统的智能照明技术已经能够很大幅度的节能,但是它的各局部控制仍然是割裂开的。如果能将物联网和智能照明结合,将更大程度的提高智能照明的节能效果和照明的智能度与舒适度。本文基于目前对于物联网和智能照明的各项研究,分析了二者结合的根本情况和开展前景,并对于其中的一些关键技术和功能进行了简单的概述。1.1物联网技术简介物联网被定义为:射频识别〔RFID〕,红外传感器,全球定位系统,激光扫描器等信息传感设备,按约定的协议,以连接到因特网的任何物品,是信息交换和通讯,以实现智能化识别,定位,跟踪,网络的监控和管理。物联网概念提出于1999年含义就是“物物相连的互联网〞。这有两层意思:第一,核心和根底的东西仍然是互联网,是基于互联网扩展网络和扩展;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通讯。下列图1.1所示为物联网拓扑图。图1.1物联网拓扑图就其本身来说,物联网代表了下一代信息开展技术,但是就它的某些应用领域和应用方式来说,中国公众也不算太生疏。它是对现有信息技术的统一聚合应用和升华,物联网将现代网络技术、感知技术、人工智能和自动化技术结合起来,进行一定的集成并应用到了更广阔的范围,实现了人与物、物与物之间的对话,创造出了一个更加智慧的世界。物联网技术与信息技术有着千丝万缕的联系,它们在各个层次和方面都有着不可或缺的关系,物联网具有很强的系统性和集成性,也有着广阔的创新和开展前景,因此物联网又被称作信息技术的第三次革命性创新。1.2照明系统现状分析由于当今世界能源的紧缺,节约能源成为了目前各用能领域的趋势。而现代建筑物的能耗相当大,跟据有关统计资料,建筑的能耗占整个国家能耗总量的30%,建筑物的能耗通常表达在建筑设备的能耗上。由于建筑布局的原因,许多建筑在白天也需要进行人工照明,照明用电已成为建筑的主要能耗之一。根据能耗分析说明,建筑照明能耗占根本能耗的12%以上。建筑照明因而成为节能的重要环节。另外照明负荷占大楼冷负荷的16%,降低照明的功耗和从而降低照明系统的发热量也十分重要。因此,照明系统的节能改造显得特别的重要。随着目前灯具科技的开展,LED灯具逐渐成为节能的主力军。LED灯具被称为第四代照明灯具,光源具有节能、环保、寿命长、体积小等优点,随着LED发光效率的不断提高,以及价格逐步下降,LED光源在通用照明方面具有很大的优势。LED光源最大的特点就是同等照度条件下的功率比传统灯具低很多,因此,采用LED灯具能够很大程度的节能。节能除了设备上的更新,控制系统的优化也能起到很大的作用。因此,除了将原先老式的照明灯具改造为新的高效灯具,还可以通过更加智能的照明控制,帮助建筑节能和实现更好的控制。1.3物联网下的智能照明显然,独立的照明控制已经开展的很成熟,但是很多时候使用者无法准确的根据情况设置参数。而且外界情况多变,仅仅靠非专业的使用者来控制无法到达最正确的效果。而且,任何的控制几乎都要在现场进行。在物联网环境下,使用者可以利用远程计算机和通信设备通过互联网对室内照明设施进行监控和控制,室内照明发生故障时能自动发送电子邮件或短信进行报警,同时室内照明制造商可以通过网络在线指导用户排除故障或对产品进行售后跟踪效劳。物联网赋予照明控制的另一大优势是:室内照明能够记录使用者的习惯和生活方式,利用情景感知技术提供人与家电、环境的自然交互,不仅如此,它还可以预测使用者的需求和使用,在物联网这一广阔平台上,室内照明系统必将为用户带来全新的生活方式。室内照明系统系统结构如下列图1.2所示:图1.2智能照明系统结构图物联网的智能照明系统之所以“聪明能干〞的首要原因在于其自适应的特征。物联网所提供的大量的传感技术、无线通信技术以及射频识别等技术,通过传感器及微处理控制系统,使物联网的智能照明系统能够“感知〞环境,根据外界情况的变化作出相应的解决方案,为用户提供最适宜、最自然的效劳。图1.3智能照明控制框图上图1.3所示即为智能照明系统控制原理,物联网的智能照明系统内置的传感器感知外部环境变化后,根据自身条件、不同的情况做出不同的工作方案,以适应不同的需求、时刻保持最正确状态。物联网的智能照明系统还可通过对用户习惯的学习,替用户省去大量状态设定的操作,使用起来更加轻松便捷人性化,而且一旦用户习惯改变,物联网的智能照明系统也能随之产生新的设定。物联网技术在智能照明行业的应用开展迅速,但是这种技术的初期投入高,而且只有在成熟的社会物联网网络下才能发挥最大的效用,因此需要全社会各行各业的支持和参与,并且需要国家相关政策的大力扶持。先进的智能照明系统不但节约能源,还可以提升城市的形象、美化居室环境,给人们提供更加平安和舒适的照明环境。随着社会的开展和人们对于照明要求的不断提高,智能照明系统也在朝着结构多样化、应用扩大化的方向快速开展。智能照明系统的设计和应用将会有更多的创意和创新,也将会有更多的物联网技术被结合到智能照明系统中。相信通过物联网的帮助,一个智能化的照明新时代正在向我们走来,人类的照明生活将会更加智能和舒适。2总体方案设计总体方案设计是关系到产品定位,器件选型和技术路线的关键行设计,它主要包括以下内容:2.1系统的需求分析基于物联网技术的室内LED照明控制系统设计目的是为了实现安卓/PAD通过安装APP来控制彩色LED灯的颜色、亮度。整个系统主要包含通信系统和控制系统两大局部,其中通信系统使用WIFI模块通过UDP协议来完成单片机和/PAD之间的数据传输,控制系统使用增强型51单片机产生四路PWM信号实现对彩灯的颜色、亮度调整,为了保证脱离网络和也能控制灯光,本系统还可以设计几组按键来调整灯光颜色和开关。系统具体实现功能如下:〔1〕整个系统网络由灯控终端建立一个wifi热点无需外网接入,数据传输层采用的是UDP协议通信机制。对LED灯能够实现开、关、调光功能。〔2〕由于整个系统是建立在WIFI网络根底上的,对WIFI模块建立的热点默认SSID是“MY_RGB〞,密码是“0123456789〞为了保证保证通信平安,网络采用了WPA2加密方式。〔3〕客户端和灯控终端通信使用的是UDP通信方式,灯控终端处于server模式监听7136端口,客户端会将控制数据帧发送到这个端口经单片机解析数据后实现对灯光的控制。〔4〕灯控终端在正常使用时要求在同一时间内单盏灯只能接受一个客户端的请求,以防止命令信息的错乱现象。2.2系统架构设计本系统主要实现以下几个功能:一是用按键对彩色LED灯的控制包括开关、调光、调色等;二是能够通过安卓客户端来对LED灯控制。室内LED智能照明系统主体框架由客户端、灯控终端两个局部组成,其中系统终端局部是本文研究的重点,由WIFI终端AP节点、STC15F408AD单片机、RGB灯、RGB灯构成驱动电路构成。LED智能照明系统整体架构如图2.1所示:图2.1 室内LED智能照明系统总体架构图过上图可以看出,室内LED智能照明系统主体框架由客户端、及系灯光控制终端两个局部组成,各局部具体功能分析如下:〔1〕/PAD客户端:本系统客户端局部是基于Android操作系统来实现的,通过搭建eclipse软件开发环境来实现用户对系统的界面功能。〔2〕灯光控制终端:该局部主要由WIFI模块、STC15F408AD单片机及RGB灯PWM驱动电路,电源模块。AP作为终端的无线通信设备,主要用来实现同客户端之间的数据有效传输功能,数据的具体交换过程可通过系统内部协议来完成。STC15F408AD单片机作为系统终端的控制备,主要实现的功能有串口数据交换、PWM调光脉冲的产生、按键处理以及灯光控制终端数据的存储等。2.3通信协议设计通信协议是是室内LED智能照明控制系统至关重要的局部,它是连接/PAD客户端和灯光控制终端的桥梁,对于本系统来说需要设计一套通过wifi传输控制彩色LED灯的颜色,亮度以及开关控制。2.3.1协议数据帧格式完整的一帧数据包括:帧头、命令、数据、校验及帧尾。帧头:也叫起始符,是数据开始接收的标志,为了防止数据帧的长度过大,本系统起始符仅采用1个字节,设置帧头的实际作用为当一帧数据过来以后,只有碰到帧头数据位时单片机才才开始存储数据并等到帧结束调用相应函数执行命令。命令:命令数据段的作用是让终端知道客户端发过来的数据包是为了执行什么操作,单片机就是通过识别这一字段来回调函数执行相应操作。数据:数据位是协议的核心组成局部,终端功能的具体实现过程都是由数据位来保障的,不同的功能对数据位的要求也各不相同。校验:校验的方式有奇偶校验、CRC校验、BCC校验及代码和检验等,本文采用的是代码和校验方式,校验和为命令和帧头的求和。帧尾:其作用为标识一帧数据的结束,当单片机检测到帧尾数据到来时将关闭其后数据的接收。2.3.2控制协议的具体实现由于本系统使用TCP/IP协议栈的UDP通信来实现数据传输,UDP协议已经具有数据校验功能防止物理层传输错误,因此在实际制作中并不需要自己去做一套数据校验机制,对于一个彩灯来说,为了实现对其颜色,亮度控制只需要控制RGB三个通道PWM值即可,在本系统中PWM均使用8位分辨率,可以合成16777216种色彩〔通常所说的16万色〕,所以协议只需要实现对这三个颜色通道PWM值控制即可满足要求。在客户端与灯控终端通信过程中每一个数据帧均以字符“s〞开头,接下来是命令帧,为了让命令更直观,这里直接使用了字符串“red〞,“blue〞,“green〞来表示相应通道命令关键字,由于这几个关键字长度不定,为了区分数据和命令需要用分隔符隔开命令关键字和数据区,这里用的是字符“=〞隔开数据和命令。紧跟着“=〞是PWM值,这里为了直观和方便安卓编程直接使用了该数值的十进制ASCII来表示,例如数据帧“sred=000〞表示关闭红色通道输出〔置R通道PWM值为0〕,数据帧“sbule=255〞表示置B通道PWM值为OXFF〔最大占空比〕。3硬件设计基于物联网的室内LED智能照明控制系统由RGB灯驱动模块电路、WiFi模块、单片机最小系统、按键输入模块、电源模块组成。系统硬件结构如图3.1所示:RGB灯驱动电路RGB灯驱动电路电源模块单片机(MCU)电源模块单片机(MCU)WiFi模块WiFi模块按键输入模块按键输入模块图3.1系统硬件结构图各个电路模块设计图,共有以下五局部组成,分别是WiFi模块电路、单片机最小系统电路、按键输入电路、RGB灯驱动电路模块电路设计、电源电路模块。3.1电源模块对于硬件设计来说,首先要解决的就是整个系统的供电问题,电源模块的稳定可靠是系统平稳运行的前提和根底。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。本系统包含多个模块,他们所需的供电电压也不同,总体来说需要3.3V和5V两路供电,3.3V为wifi模块供电,单片机和LED使用5V供电。通过在图书馆对相关资料的查询和指导老师的指点,本设计的电源模块的设计电路图如下列图3.2所示:图3.2电源模块图3.2所示是物联网室内LED智能照明控制系统中的电源电路模块局部,5V到3.3V电压的转换采用ASM1117直流低压差线性稳压器。AMS1117是一款正电压输出低压差的三端线性稳压电路,在输出1A电流时,输入输出的电压差典型值为1.8V。AMS1117分为两个版本,固定电压输出版本和可调电压输出版本,固定输出版本的输出电压可以为:1.8V,3.3V和5.0V,可调电压输出版本能提供的输出电压范围为:1.8V~5.5V。AMS1117内部集成过热保护和限流电路,确保芯片和电源系统的稳定性。AMS1117特性:能提供包括固定电压输出版本〔固定电压包括1.8V,3.3V,5V〕跟三端可调电压输出版本最高输出电流可达A输出电压精度高达2%;稳定工作电压范围为高达12V;内部集成限流功能;具有过热切断保护;工作温度范围:-20℃-120℃;3.2单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。而本系统采用STC15F408AD单片机内部集成了复位电路,及内部RC振荡器所以省去了大局部外部电路。最小系统只需提供必要的ISP下载调试接口,提供稳定的电源滤波即可。单片机最小系电路图如下列图3.3所示:图3.3最小单片机系统3.3WIFI模块本系统使用ESP8266串口WiFi模块作为网络接入设备。ESP8266是一款超低功耗的UART-WiFi透传模块,专为移动设备和物联网应用设计。模块内置TCP/IP协议栈,可将用户的物理设备连接到Wi-Fi无线网络上,进行互联网或局域网通信,实现联网功能。3.3.1ESP8266模块电路设计通过ESP8266模块,单片机只需要通过串口发送AT指令即可完成嵌入式设备与Internet和局域网设备之间的数据收发。在使用过程中模块与单片机之间的连接仅需要占用一个UART端口,下列图3.4是wifi模块与单片机之间的连接原理图。图3.4WIFI电路模块3.3.2ESP8266模块特性支持无线802.11b/g/n标准支持STA/AP/STA+AP三种工作模式内置TCP/IP协议栈,支持多路TCPClient连接支持丰富的SocketAT指令支持UART/GPIO数据通信接口支持SmartLink智能联网功能内置32位MCU,可兼作应用处理器超低能耗,适合电池供电应用3.3V单电源供电3.3.3ESP8266模块功耗由于wifi处于2.4G频段,虽然高频保证了信号带宽,但是高频信号穿墙能力差而且衰减很快,而且这个频段属于免执照开放频段干扰较大,所以市售的wifi产品一般功耗较大,对电压稳定性要求也很苛刻,为了保证系统的稳定性,有必要对ESP8266模块进行一个功耗测试,下表3.1所示功耗数据是基于3.3V的电源、25°的环境温度下测得。表3.1ESP8266功耗测试模式测试结果单位传送802.11b,CCK1Mbps,Pout=+19.5dBm215mA传送802.11b,CCK11Mbps,Pout=+18.5dBm197mA传送802.11g,OFDM54Mbps,Pout=+16dBm145mA传送802.11n,MCS7,Pout=+14dBm135mA接收802.11b,包长1024字节,-80dBm100mA接收802.11g,包长1024字节,-70dBm100mA接收802.11n,包长1024字节,-65dBm102mA系统待机模式70mA关机0.5μA3.4按键输入模块电路的设计常用的按键驱动有矩阵键盘和IO直接驱动,由于本系统按键数量少,直接使用了IO直接驱动方式,图3.5为本设计所使用的按键电路。图3.5按键电路原理3.5RGB灯驱动电路设计RGB灯采用三原色混光原理,通过控制R、G、B三原色亮度比例调节发光颜色,本系统采用PWM调光技术,需要较高的开关速度、较大的瞬间电流。普通三极管和继电器不能满足系统要求。所以本系统采用LED专用驱动芯片WS2811来驱动RGB灯。图3.6是电路原理图。图3.6RGB灯驱动电路模块3.5.1WS2811主要特点输出端口耐压15V。芯片内置稳压管,24V以下电源端只需串电阻到ICVDD脚,无需外加 稳压管。灰度调节电路〔256级灰度可调〕。内置信号整形电路,任何一个IC收到信号后经过其他各种LED灯饰产 品.波形整形再输出,保证线路波形畸变不会累加。内置上电复位和掉电复位电路.PWM控制端能够实现256级调节,扫描频率不低于400Hz/s.串行接口级联接口,能通过一根信号线完成数据的接收与解码.任意两点传传输距离超过10米而无需增加任何电路.当刷新速率30帧/秒时,低速模式级联数不小于512点,高速模式不小 于1024点.数据发送速度可达400Kbps与800Kbps两种模式.3.5.2WS2811概述WS2811是三通道LED驱动控制专用电路,芯片内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和15V高压可编程定电流输出驱动器。同时,为了降低电源纹波,3个通道有一定的延时导通功能,这样在帧刷新时,可降低电路纹波。芯片采用单线归零码的通讯方式,芯片在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个芯片提取后,送到芯片内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的芯片,每经过一个芯片的传输,信号减少24bit。芯片采用自动整形转发技术,使得该芯片的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。芯片内部的数据锁存器根据接受到的24bit数据,在OUTR、OUTG、OUTB控制端产生不同的占空比控制信号,等待DIN端输入RESET信号时,所有芯片同步将接收到的数据送到各个段,芯片将在该信号结束后重新接受新的数据,在接受完开始的24bit数据后,通过DO口转发数据口,芯片在没有接受到RESET码前,OUTR、OUTG、OUTB管脚原输出保持不变,当接受到50μs以上低电平RESET码后,芯片将刚刚接收到的24bitPWM数据脉宽输出到OUTR、OUTG、OUTB引脚上。3.5.3WS2811管脚说明图3.7WS2811引脚图3.7为WS2811RGB灯驱动芯片管脚排列和名称,为了更详细的说名WS2811的使用方式,下面列出每个管脚的详细说明,如下表3.2所示:表3.2WS2811引脚说明4wifi模块使用4.1工作模式ESP8266模块支持STA/AP/STA+AP三种工作模式:〔1〕STA模式:ESP8266模块通过路由器连接互联网,或电脑通过互联网实现对设备的远程控制。〔2〕AP模式:ESP8266模块作为热点,实现或电脑直接与模块通信,实现局域网无线控制。〔3〕STA+AP模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。4.2AT指令集ESP8266模块与单片机之间采用UART通过AT指令集通信,指令又分为根底AT指令、WiFi功能AT指令、TCP/IP工具箱AT命令等。每条指令可以有细分四种命令,如下表4.1所示:表4.1AT指令类别测试命令AT+<x>=?该命令用于查询设置命令或内部程序设置的参数以及其取值范围。查询命令AT+<x>?该命令用于返回参数的当前值。设置命令AT+<x>=<…>该命令用于设置用户自定义的参数值。执行命令AT+<x>该命令用于执行受模块内部程序控制的变参数不可变的功能。ESP8266模块默认通信波特率115200,每条AT指令以换行符“\r\n〞结束。由于模块本身AT指令数量较多,此处只对本系统使用到的AT指令和常用的指令作介绍。4.2.1根底AT指令测试AT:表4.2为命令语法说明。表4.2测试AT语法规那么命令类型语法返回和说明执行命令ATOK重启模块:表4.3是重启命令使用规那么。表4.3重启模块语法规那么命令类型语法返回和说明执行命令AT+RSTOK4.2.2WiFi功能AT指令选择WiFi应用模式:表4.4为命令语法,4.5是命令参数。表4.4选择wifi应用模式语法规那么命令类型语法返回和说明设置命令AT+CWMODE=<mode>OK此指令需重启后生效(AT+RST)查询命令AT+CWMODE?+CWMODE:<mode>OK当前处于哪种模式?测试命令AT+CWMODE?+CWMODE:(<mode>取值列表)OK当前可支持哪些模式?表4.5选择wifi应用模式参数定义参数定义取值对取值的说明<mode>WiFi应用模式1Station模式2AP模式3AP+Station模式设置AP模式下的参数:表4.6为命令语法,4.7是命令参数。表4.6设置AP模式语法规那么命令类型语法返回和说明设置命令AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>OK设置参数成功查询命令AT+CWSAP?OK查询当前AP参数表4.7设置AP模式参数定义参数定义取值对取值的说明<ecn>加密方式0OPEN1WEP2WPA_PSK3WPA2_PSK4WPA_WPA2_PSK<ssid>接入点名称字符串参数<pwd>密码字符串型,最长64字节,ASCII编码<chl>通道号4.3.3TCP/IP工具箱AT指令〔1〕建立TCP/UDP连接:表4.8为命令语法,4.9是命令参数。表4.8建立TCP/UDP连接语法规那么命令类型语法返回和说明设置命令单路连接(+CIPMUX=0)时:AT+CIPSTART=<type>,<addr>,<port>多路连接(+CIPMUX=1)时:AT+CIPSTART=<id>,<type>,<addr>,<port>如果格式正确,返回:OK否那么返回:+CMEERROR:invalidinputvalue连接成功,返回:CONNECTOK(CPIMUX=0)<id>,CONNECTOK(CIPMUX=1)如果连接已经存在,返回:ALREADYCONNECT连接失败返回:CONNECTFAIL(CIPMUX=0)<id>,CONNECTFAIL(CIPMUX=1)表4.9建立TCP/UDP连接参数定义参数定义取值对取值的说明<id>LinkNo.0~4表示链接序号:0号连接可client或server连接,其他id只能用于连接远程server<type>连接类型“TCP〞/〞UDP〞<addr>远程效劳器IP地址字符串型<port>远程效劳器端口号〔2〕获得TCP/UDP连接状态:表4.10为命令语法,4.11是命令参数。表4.10获得TCP/UDP连接状态语法规那么命令类型语法返回和说明执行命令AT+CIPSTATUS如果是单路连接(AT+CIPMUX=0),返回:OKSTATE:<sl_state>如果是多路连接(AT+CIPMUX=1),返回:OKSTATE:<ml_state>如果配置为效劳器:STATE:IPSTATUSS:<sid>,<port>,<serverstate>C:<cid>,<TCP/UDP>,<IPaddress>,<port>,<clientstate>测试命令AT+CIPSTATUS=?返回:OK表4.11获得TCP/UDP连接状态参数定义参数定义取值对取值的说明<sl_state>单连接状态IPINITIAL初始化IPSTATUS获得本地IP状态TCPCONNECTING/UDPCONNECTINGTCP连接中/UDP端口注册中CONNECTOK连接建立成功TCPCLOSING/UDPCLOSING正在关闭TCP连接,正在注销UDP端口<ml_state>多链接状态IPINITIAL初始化IPSTATUS获得本地IP状态<sid>效劳器id0~1取值为0和1<serverstate>效劳器状态OPENING正在翻开LISTENING正在监听CLOSING正在关闭<cid>客户端id0~4取值为0,1,2,3,4<IPaddress>IP地址-字符串参数(字符串需要加引号)<port>效劳器监听端口号-整数型<clientstate>客户端状态CONNECTED已连接CLOSED已关闭〔1〕启动连接:表4.12为命令语法,4.13是命令参数。表4.12启动连接语法规那么命令类型语法返回和说明设置命令AT+CIPMUX=<mode>OK如果已经处于多连接模式,那么返回Linkisbuilded启动多连接成功查询命令AT+CIPMUX?+CIPMUX:<mode>OK查询当前是否处在多连接模式表4.13启动连接参数定义参数定义取值对取值的说明<mode>是否处在多连接模式0单连接模式1多连接模式〔2〕发送数据:表4.14为命令语法,4.15是命令参数。表4.14发送数据语法规那么命令类型语法返回和说明设置命令单路连接(+CIPMUX=0)时:AT+CIPSEND=<length>多路连接(+CIPMUX=1)时:AT+CIPSEND=<id>,<length>响应模块收到指令后先换行返回〞>〞,然后开始接收串口数据,当数据长度满length时发送数据如果未建立连接或连接被断开,返回ERROR如果数据发送成功,返回SENDOK说明发送指定长度的数据测试指令AT+CIPSEND?响应单路连接(AT+CIPMUX=0)返回:+CIPSEND:<length>OK多路连接(AT+CIPMUX=1)返回:+CIPSEND:<0-7>,<length>OK执行命令AT+CIPSEND说明AT+CIPMODE=1并且作为客户端模式下,进入透传模式(需要支持硬件流控,否那么大量数据情况下会丢数据)模块收到指令后先换行返回〞>〞,然后会发送串口接收到的数据。表4.15发送数据参数定义参数定义取值对取值的说明<length>数据长度单位:字节<id>LinkNo.0~4连接序号〔3〕关闭TCP/UDP连接:表4.16为命令语法,4.17是命令参数。表4.16关闭TCP/UDP连接语法规那么命令类型语法返回和说明设置命令单路连接时AT+CIPCLOSE=<id>返回:CLOSEOK多路连接时AT+CIPCLOSE=<n>[,<id>]返回:<n>,CLOSEOK执行命令AT+CIPCLOSE如果关闭成功,返回:CLOSEOK如果关闭失败,返回:ERROR测试命令AT+CIPCLOSE?返回:OK考前须知执行命令只对单链接有效,多链接模式下返回ERROR执行命令AT+CIPCLOSE只有在TCP/UDPCONNECTING或CONNECTOK状态下才会关闭连接,否那么会认为关闭失败返回ERROR单路连接模式下,关闭后的状态为IPCLOSE表4.17关闭TCP/UDP连接参数定义参数定义取值对取值的说明<id>关闭模式0慢关〔缺省值〕1快关<n>LinkNo.0~7整数型,表示连接序号获取本地IP地址:表4.18为命令语法,4.19是命令参数。表4.18获取本地IP地址语法规那么命令类型语法响应和说明执行命令AT+CIFSR响应+CIFSR:<IPaddress>OK或者ERROR测试命令AT+CIFSR=?响应OK表4.19获取本地IP地址参数定义参数定义取值对取值的说明<IPaddress>本机目前的IP地址(station)5软件设计5.1软件总流程图灯控终端核心是STC15F408AD单片机,单片机系统开发使用KEILC51编译器,源程序采用C语言编写。真个程序使用面向对象编程方式,事件均为消息驱动方式。程序主要有主函数和串口中断处理两大局部,他们之间的消息传递通过全局缓冲区和标志位进行消息传递,整个软件流程图如图5.1所示:图5.1软件流程图5.2RGB灯驱动程序编写由于本系统RGB灯驱动采用了WS2811专用驱动芯片,故需要写底层驱动函数来实现PWM调光,WS2811采用单线归零码的通讯方式,芯片在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个芯片提取后,送到芯片内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的芯片,每经过一个芯片的传输,信号减少24bit。芯片的的驱动时序如图5.2所示,表5.1为高速模式时间。图5.2WS2811时序波形图表5.1WS2811高速模式时间由上图可以看出WS2811对时序要求十分严格,精确到了ns级别,本系统使用的STC15F408AD是1T机器周期单片机,当时钟设置为20MHZ时,机器周期是50ns,为了符合时序要求,驱动程序采用了—_nop()单周期延时指令来精确延时。用单片机模拟‘0’、‘1’和‘REST’码,下面的程序是经过示波器调试后的WS2811底层驱动。/***************************************************WS2811:“0码〞T0H:500nsT0L:2000ns“1码〞T1H:2000nsT1L:500nsRES:>50usSTC15W408ASCLOCK:20MHZ时钟周期50ns机器周期200ns****************************************************/#definespeed5//刷新数据时间变量#defineRGB_size1//数据显示个数变量uintt;ucharbdataLED_DAT;//可位操作的数据发送暂存变量声明sbitbit0=LED_DAT^0;//被发送的数据各位定义sbitbit1=LED_DAT^1;sbitbit2=LED_DAT^2;sbitbit3=LED_DAT^3;sbitbit4=LED_DAT^4;sbitbit5=LED_DAT^5;sbitbit6=LED_DAT^6;sbitbit7=LED_DAT^7;ucharRR,GG,BB;//RGB灰度值全局变量声明//低速模式数码BIT0〔高电平时间:500ns低电平时间2000ns〕voidh_dat0(){DIO=1;nop;nop;nop;nop;nop;nop;nop;nop;DIO=0;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;}//低速模式数码BIT1〔高电平时间:2000ns低电平时间:500ns〕voidh_dat1(){DIO=1;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;DIO=0;}//RGB显示控制程序voidReset(void){ DIO=1; nop;DIO=0;delay_nms(1);}//===================发送RGB灰度数据===================voidsend_single_data()//数据格式:G7~G0~R7~R0~B7~B0{LED_DAT=GG;if(bit7)h_dat1();elseh_dat0();if(bit6)h_dat1();elseh_dat0();if(bit5)h_dat1();elseh_dat0();if(bit4)h_dat1();elseh_dat0();if(bit3)h_dat1();elseh_dat0();if(bit2)h_dat1();elseh_dat0();if(bit1)h_dat1();elseh_dat0();if(bit0)h_dat1();elseh_dat0();LED_DAT=RR;if(bit7)h_dat1();elseh_dat0();if(bit6)h_dat1();elseh_dat0();if(bit5)h_dat1();elseh_dat0();if(bit4)h_dat1();elseh_dat0();if(bit3)h_dat1();elseh_dat0();if(bit2)h_dat1();elseh_dat0();if(bit1)h_dat1();elseh_dat0();if(bit0)h_dat1();elseh_dat0();LED_DAT=BB;if(bit7)h_dat1();elseh_dat0();if(bit6)h_dat1();elseh_dat0();if(bit5)h_dat1();elseh_dat0();if(bit4)h_dat1();elseh_dat0();if(bit3)h_dat1();elseh_dat0();if(bit2)h_dat1();elseh_dat0();if(bit1)h_dat1();elseh_dat0();if(bit0)h_dat1();elseh_dat0();}5.3WIFI驱动编写ESP8266WIFI模块具有透传功能,在初始化设置好网络参数建立链路连接后即可通过命令进入透传模式,透传模式下Host通过uart将数据发给ESP8266,ESP8266再通过无线网络将数据传出去;ESP8266通过无线网络接收到的数据,同理通过uart传到Host。ESP8266只负责将数据传到目标地址,不对数据进行处理,发送方和接收方的数据内容、长度完全一致,传输过程就好似透明一样。本系统就是采用了这种方式来实现的网络数据包收发,在串口透传模式下,ESP8266模块拥有数据包自动打包机制,ESP8266判断UART传来的数据时间间隔,假设时间间隔大于20ms,那么认为一帧结束;否那么,一直接收数据到上限值2KB,认为一帧结束。ESP8266模块判断UART来的数据一帧结束后,通过WIFI接口将数据转发出去。成帧时间间隔为20ms,一帧上限值为2KB。基于物联网的室内LED照明控制系统在上电后会把WIFI模块配置为AP模式,然后配置好相应网络参数,随即进入透传模式,下面附上ESP8266模块初始化代码。UART_Init();delay_nms(4000);//ESP8266网络初始化UART_Send_Str("AT+CWMODE=2\r\n"); //设置成路由模式delay_nms(1000);UART_Send_Str("AT+CWSAP=\"My_RGB\",\"0123456789\",11,4\r\n"); //设置路由SSID和密码delay_nms(1000);UART_Send_Str("AT+RST\r\n"); //复位重启delay_nms(4000);UART_Send_Str("AT+CIPMUX=0\r\n"); //设置成单连接delay_nms(1000); UART_Send_Str("AT+CIPSTART=\"UDP\",\"192.168.4.2\",7136,7671\r\n"); //连接UDP客户端 delay_nms(1000);UART_Send_Str("AT+CIPMODE=1\r\n"); //进入透传模式 delay_nms(1000);5.4数据帧处理机制通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的TCPIP协议一般,比拟可靠的通信协议往往包含有以下几个组成局部:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配时机,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的时机最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的防止匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比拟可靠。下位机接收数据有两种方式,一、等待接收,处理器一直查询串口状态,来判断是否接收到数据。二、中断接收。本系统采用中断接收的方法,选择中断接收法效率比拟高而且不会丧失数据,数据包的解析过程可以设置到不同的位置。如果协议比拟简单,整个系统只是处理一些简单的命令,那么可以直接把数据包的解析过程放入到中断处理函数中,当收到正确的数据包的时候,置位相应的标志,在主程序中再对命令进行处理。如果协议稍微复杂,比拟好的方式是将接收的数据存放于缓冲区中,主程序读取数据后进行解析。也有两种方式交叉使用的,比方一对多的系统中,首先在接收中断中解析“连接〞命令,连接命令接收到后主程序进入设置状态,采用查询的方式来解析其余的协议。在这个系统中,数据帧结构并不复杂。所有的协议全部在串口中断中进行。数据包的解析代码如下:/****************************************CMD指令解析引擎at_scan函数用于监测s开头,并存储一条数据,此例放到串口接收中断at_cmp函数用于解析存储的AT数组,并执行相应命令结构体局部位AT指令描述以及函数的对应关系******************************************/#include "CMD.H"#include"uart.h"#include"WS2811.H"unsignedintuart_timer=0;code unsignedchar at_head[AT_HEAD_LEN]={'s'}; //指令开头unsignedchar addr_cmp=0; //AT指令开头校验位置unsignedchar at_addr=0; //AT缓冲区最后一个数据位置bit at_head_flag=0; //检测AT指令开头标志位unsignedcharat_buf[AT_BUF_MAX]={0};code AT_STRUCT at_array[AT_CMD_COUNT]={ {"red=",4,1,&cmd_red}, {"green=",6,1,&cmd_green}, {"blue=",5,1,&cmd_blue}};//监测AT开头并将AT命令存储到缓冲区void at_scan(void){ if(at_head_flag) if(at_addr<AT_BUF_MAX) at_buf[at_addr++]=SBUF; if(SBUF==at_head[addr_cmp]) addr_cmp++; else addr_cmp=0; if(addr_cmp==AT_HEAD_LEN) { at_head_flag=1; addr_cmp=0; at_addr=0; } uart_timer=0;}//比拟两个字符串cont字节,相同为1,否那么返回0 unsignedcharat_cmp(unsignedchar*s,unsignedcharcount){unsignedcharres;for(res=0;res<count;res++) { if(*(s+res) != at_buf[res]) return 0; } return 1;}//AT指令解析后并执行相应函数void CMD(void){ unsignedchar i; uart_timer++; if(at_head_flag) { for(i=0;i<AT_CMD_COUNT;i++) { if(at_addr >= (at_array[i]d_len+at_array[i].data_len)) { if((uart_timer>1000)&&at_cmp(at_array[i].s,at_array[i]d_len)) { at_head_flag=0; (*at_array[i].Subs)(); } } } }}voidcmd_green(void){ unsignedchar i; GG=0; for(i=at_array[1]d_len;i<at_addr;i++) { GG*=10; GG+=(at_buf[i]-0x30); } send_string_data();}voidcmd_red(void){ unsignedchar i; RR=0; for(i=at_array[0]d_len;i<at_addr;i++) { RR*=10; RR+=(at_buf[i]-0x30); } send_string_data();}voidcmd_blue(void){ unsignedchar i; BB=0;// UART_Send_Str("blue\r\n"); for(i=at_array[2]d_len;i<at_addr;i++) {// UART_Send_Byte(at_buf[i]); BB*=10; BB+=(at_buf[i]-0x30); } send_string_data();}6基于物联网的智能照明系统的调试〔1〕ESP8266模块连接方法:模块跟电脑连:TTL电平转成RS232。模块供电3.3V。TX与RX接RX与TX接。模块跟各种TTL电平MCU设备连:TX与RX接,RX与TX接模块供电3.3V。关于四个引脚〔GPIO2,、GPIO0、CH_PO和CPIO16〔RST〕〕的定义如下:GPIO0:当为高电平时代表从FLASH启动,为低电平时进入系统升级状态;GPIO16:可以作为外部硬件复位〔RST〕;CH_PD:用来选择AT指令模式;其中需要主要的是UTXD接单片机的RX,VCC接3.3V其他引脚都通过10K电阻接VCC〔默认进入AT指令模式〕〔2〕AT指令的使用方法:模块供电3.3V。翻开超级终端或其他串口调试工具。翻开超级终端或其他串口调试工具设置波特率〔默认115200〕,数据位8位,停止位1位,无校验位,无流控制。TTL电平转成RS232与电脑串口连接。发送指令为AT加上回车换行,返回OK表示模块正常连接。这就说明你的模块是可以正常工作的需要注意的是确保你的模块供电要足,不然会出现一些问题。关于电源方面的最好的解决方案是在VCC和GND之间多加几个电解电容。因为虽然模块的电流只有70-80ma,但是这个只是平均电流而已。搞过GPRS的人应该了解,像这类射频模块的瞬间电流是很大的一般都会到达几十安培,所以需要几个电容储存电荷给模块用。ESP8266可以配置成station、AP、station+AP三种模式,就是说模块可以当成一个设备〔client〕连接区域网内的路由,也可以设置成是一个路由〔sever〕,也可以既作为局域网里面的client同时又是其他client的sever,具体配置如下:1、AP模式〔本系统用的就是AP模式〕:第一步发送命令:AT+RST(执行指令)指令:AT+RST响应:OK第二步:发送命令:AT+CWMODE=2(设置指令)指令:AT+CWMODE=<mode>说明:<mode>:1-Station模式,2-AP模式,3-AP兼Station模式响应:OK说明:需重启后生效(AT+RST)第三步:发送命令:AT+CWSAP="MY_RGB","0123456789",11,0指令:AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>说明:指令只有在AP模式开启后有效<ssid>:字符串参数,接入点名称<pwd>:字符串参数,密码最长64字节,ASCII<chl>:通道号<ecn>:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK响应:OK然后就可以在你的或者是电脑通过无线网卡连接到刚刚创立的热点MY_RGB上了。最后一步是开启效劳器模式:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年盐城市建湖县部分事业单位公开招聘工作人员16人备考题库及一套参考答案详解
- 2026年黑龙江交通职业技术学院单招职业倾向性考试题库附参考答案详解(基础题)
- 2026年陕西省安康地区单招职业倾向性考试题库附答案详解(综合卷)
- 2026年陕西青年职业学院单招职业倾向性考试题库附答案详解
- 2026年青海交通职业技术学院单招职业适应性测试题库完整参考答案详解
- 2025年十五冶金建设集团有限公司招聘备考题库及答案详解参考
- 2026年长沙环境保护职业技术学院单招职业倾向性考试题库带答案详解(完整版)
- 2026年青海高等职业技术学院单招职业适应性测试题库附答案详解(能力提升)
- 2026年长沙民政职业技术学院单招职业技能测试题库及答案详解一套
- 2025年陕西邮政校园招聘(含榆林岗)备考题库及答案详解(易错题)
- AI在人力资源招聘中的应用【课件文档】
- 2026年郑州市检验检测有限公司公开招聘19人笔试模拟试题及答案解析
- 妇科恶性肿瘤研究进展2026
- 以梦为马 不负韶华2026新年高中开学第一课
- 2025北京市东城区卫生健康委所属事业单位第一次公开招聘396人笔试历年典型考题及考点剖析附带答案详解试卷2套
- 2026年春季第二学期学校德育主题活动工作安排表
- 市域产教联合体绩效考核体系制度
- 2026年1月浙江省高考(首考)化学试题(含标准答案)
- 深度解析(2026)《JTT 761-2022航标灯通 用技术条件》
- 2026届新高考语文三轮冲刺复习:名句名篇默写汇编(课前每日五分钟一练)
- DB37T5336-2025 房屋市政工程安全文明工地建设标准 第1部分:房屋建筑工程
评论
0/150
提交评论