版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
---文档均为word文档,下载后可直接编辑使用亦可打印---ⅠTOC\o"1-5"\h\zABSTRACT Ⅱ\o"CurrentDocument"前言 1\o"CurrentDocument"概述 2\o"CurrentDocument"设计背景 2\o"CurrentDocument"应用前景 2\o"CurrentDocument"灯光控制器总体设计方案 2\o"CurrentDocument"总体设计概述 2\o"CurrentDocument"总体设计的需求分析 2\o"CurrentDocument"系统整体架构的设计 3\o"CurrentDocument"网络通信技术方案的选择 3\o"CurrentDocument"控制终端操作系统的选择 4\o"CurrentDocument"无线通信协议的选择 5\o"CurrentDocument"硬件控制器的设计与实现 5控制器的主要芯片和模块 5主控芯片STM32F103 5\o"CurrentDocument"ESP8266模块 7LED灯的控制电路 8\o"CurrentDocument"继电器控制电路 8电源供电电路 9控制器的程序的设计与实现 10\o"CurrentDocument"控制器程序流程图 10\o"CurrentDocument"Wi-Fi模块的程序设计 10灯光控制模块控制设计 12\o"CurrentDocument"服务器的设计与实现 12服务器数据库的设计 13\o"CurrentDocument"登陆注册数据表格的设计 13\o"CurrentDocument"灯光状态数据表格的设计 13服务器程序设计 14\o"CurrentDocument"用户登陆注册编辑的设计 14\o"CurrentDocument"灯光控制与搜索的设计 15\o"CurrentDocument"ESP8266访问服务器设计 15\o"CurrentDocument"手机应用的设计与实现 16\o"CurrentDocument"Android系统平台简介 16\o"CurrentDocument"程序流程框图 17\o"CurrentDocument"应用程序设计与实现 17\o"CurrentDocument"手机应用界面的设计 17\o"CurrentDocument"手机应用后台运行程序的设计 19\o"CurrentDocument"系统测试 21\o"CurrentDocument"功能测试 21\o"CurrentDocument"硬件控制端部分测试 21\o"CurrentDocument"手机应用部分测试 22\o"CurrentDocument"总体测试 22\o"CurrentDocument"性能测试 22\o"CurrentDocument"系统稳定性测试 22\o"CurrentDocument"硬件断电恢复测试 22\o"CurrentDocument"总结与展望 23\o"CurrentDocument"总结 23\o"CurrentDocument"展望 23参考文献 24附录 25致谢 28前言现如今网络无线通信技术发展很迅速,网络技术是可以将电脑、手机、平板等终端通过无线接入互联网。Wi-Fi已经是网络接入的主流标准。Wi-Fi热点覆盖范围越来越广,Wi-Fi技术已经被运用在各种便携式智能设备上。对Wi-Fi技术应用产品,人们生活中运用到的越来越多,人们也希望能够通过Wi-Fi技术来控制生产和生活,使工作和生活更加便捷。基于此目的,本文设计了一种基于Android平台和Wi-Fi技术的灯光控制系统。该系统在硬件方面,采用STM32F103作为控制核心,通过ESP8266Wi-Fi模块进行联网。这两款芯片成本低,功耗小,开发方便且具有较高的处理速度。采用Keil5软件对单片机进行开发。在电脑安装Tomcat作为本次系统设计的服务器。使用AndroidStudio进行手机App开发可利用手机App进行灯光控制。本设计的目的是满足社会的现实需求,给人们提供更多的便利在家中随时可以用手机控制家里的照明灯。1概述设计背景放眼全球,物联网优势愈加明显,现如今人们置身于网络环境中,各种智能设备通过网络进行各种数据和信息的交换。Wi-Fi为智能家居领域带来了新的发展机遇。我国物联网相对落后,还处于发展初期,智能家居在日常生活中被广泛应用,在工业应用领域发展较快。中国的智能家居领域进入整合期。其存在的主要问题是:缺乏标准;产业核心技术不达标;产业链不够完整,合作体系不完善;产业间的合作困难。应用前景基于安卓和ESP8266的室内灯光控器设计是基于物联网开发的,属于智能家居照明部分。以物联网为基础智能家居市场非常有潜力。能够使传统产业的发展模式在一定程度上改变,能够使经济发展、资源、环境之间的矛盾得到改善,物联网的应用,有利于资源进行更高效的利用。具有极大的包容性和开放性,促进了信息的传输和交流,推动开放和合作。智能家居在未来前景广阔。灯光控制器总体设计方案总体设计概述基于安卓和ESP8266的室内灯光控制器的设计,目的是让人们的生活更加舒适方便。为普通家用的照明灯添加功能,使灯光控制器更加贴合实际需求,更人性化的服务。本次设计可分为手机应用的设计和硬件控制端的设计。本设计应避免在短时间内被市场所淘汰,并且保证性价比高。使产品大众化让人们都可以体会到舒适便捷的生活。在本系统的设计过程中,还应充分考虑现阶段人们对家居和生活的进一步需求,提供全新生活方式。系统设计中的各个部分有预留下接口方便升级和扩展新功能。总体设计的需求分析本设计将分成硬件部分灯光控制器部分、Android平台设计部分和服务器部分进行介绍。本控制器的设计采用ESP8266模块无线传输,实现服务器到模块串口的数据传输,通过手机发送控制灯光的指令到服务器。同时将灯光的状态通过Wi-Fi模块传输到服务器,手机实时访问服务器将灯光状态反馈到手机上。Android系统普及度最高,相比电脑系统更加的灵活。实现用户可以使用装有Android系统的手机可以对灯光控制器进行监控。系统整体架构的设计在灯光控制器的设计中,ESP8266模块和手机都是通过Wi-Fi无线网络连接到服务器获取数据和修改数据。控制端接收到服务器发送来的操控信息后完成指定操作,并将灯光状态及时反馈到服务器。图2-1为灯光控制器的整体架构示意图。图2-1灯光控制器的整体架构示意图网络通信技术方案的选择现如今,主流的无线技术主要有Wi-Fi、ZigBee、Bluetooth、UWB、NFC、RFID等方案。无线技术几乎无需布线,调试简单,在智能家居领域优势明显。表3-1列出了各个无线技术的相关指标数据。表3-1几种无线通信技术的比较名称Wi-FiZigBeeBluetoothUWBNFCRFTD
传输速度54Mbps250kbps723.2kbps100Mbps424kbps1kbps通信距离100m75m10m10m20cm1m频段2.4GHz2.4GHz2.4GHz3.1-10.5GHz13.56MHz868-915MHz安全性低中等高高极高低国际标准IEEE802.11bIEEE802.11gIEEE802.15.4IEEE802.15.1x未制定ISO/IEC18092为统一功耗10-50mA5mA20mA10-50mA10mA10mA由表3-1可以得知,通过几种无线技术的比较Wi-Fi技术被运用的最为普及,给用户带来更好的上网体验。Wi-Fi技术的传输速度比较快。结合实际需求本选用Wi-Fi技术作为无线通信技术传输数据。控制终端操作系统的选择手机操作系统的选择需要实用性强并且非常普及的嵌入式操作系统,同时还要考虑操作系统的开发语言的简单易上手、易扩展,好移植等。目前常见的嵌入式操作系统有Android、iOS、WindowsPhone、Symbian、Linux和PalmOS。对这些嵌入式操作系统的各项指标列表来进行比较。如表3-2所示。表3-2几种嵌入式操作系统的比较名称AndroidIOSWindowPhoneSymbianLinuxPalmOS开发语言Java、C、C++ObjC、C、C++C++、C#Java、C、C++C、C++Java、C、C++、VB市场占有率很高高高低低低是否开源是否否否是否扩展性好一般较好一般好差功耗高高高较低中低可移植性很强弱较弱弱很强一般选择操作系统应用户站在用户的角度,人机交互界面要流畅,数据处理速度快。通过对各种操作系统各个方面的特点进行分析和比较之后,本次设计选择有Android系统的手机作为基础进行开发。无线通信协议的选择为保证本设计在无线传输中数据的稳定和传输速度,在目前网络传输协议中用的是TCP/IP协议。TCP/IP协议包括应用层、传输层、网络层、网络接口。如图2-2所示,在传输层主要有TCP协议和UDP协议两种。应用层传输层网络层应用层传输层网络层网络接口TCP在协议集图2-2网络传输协议层TCP即传输控制协议,提供面向连接的字节流服务。UDP即用户数据报协议,是面向数据报的传输层协议。TCP与UDP的区别于有连接和无连接,UDP程序结构较简单,TCP保证数据正确。故UDP传输速度快占用带宽小却不稳定,UDP传输稳定性没有被解决,所以本设计选择了稳定性较高的TCP协议传输数据。硬件控制器的设计与实现单片机是集成电路芯片,构成的了完善的微型计算机系统。ESP8266模块具有设计紧凑、功耗低、稳定性高等特点,具有较完整的Wi-Fi网络功能,既可以独立应用,也可以作为从机搭载到单片机或嵌入式上运行。单片机与ESP8266组成控制系统。ESP8266负责无线传输数据,单片机处理数据并控制灯光。控制器的主要芯片和模块主控芯片STM32F103本次硬件部分的设计采用单片机STM32F103系列作控制芯片,该芯片是32位的Cortex-M3的处理器,性能稳定,成本低廉,处理速度快,有丰富的内部资源。能够满足灯光控制器硬件控制端的需求。STM32的引脚如图3-1所示:要保证STM32F103能够正常工作,需要几个简单电路组成最小系统,最小系统主要包括:外部晶振电路、复位电路、电源供电电路等,STM32的系统电路如图3-2所示。gfdπEmdn击dπS^π£^π卜mdgfdπEmdn击dπS^π£^π卜mdπOloOaπ建π.sft-πCgg>πmOonVBATPC13-TAMPER-RTCPC14-OSC32^INPCI5QSC32.O□TPDOOSCINPDIOSJOUTNRSTVSSAVDOAPΛO-WKUPPA1/4S474«454443424140303837λi* M3 MLGFP4a17lβ19^21VDD.2VSWr2PA13P!A12PA11RAlaPA5RA8PB15P^B14P-B13PB12UUUUUUUULJ□□□H工sα图3-1单片机STM32F103引脚图手一£8ffl匡d⅛C1U2mG2FlC3CtT6SMHZOSCOVTSKIOPCI4PClj_^^_O¾COUΓKRSΓICUKPC14.O5C32JNPC15.'O⅛C32,<X.ΓΓOSUNOSOOurNRSTVSSA手一£8ffl匡d⅛C1U2mG2FlC3CtT6SMHZOSCOVTSKIOPCI4PClj_^^_O¾COUΓKRSΓICUKPC14.O5C32JNPC15.'O⅛C32,<X.ΓΓOSUNOSOOurNRSTVSSAVDD2VSS.2SWTOPAllPAllEXDΦA10TTOTADPAI(IP3:4图3-2单片机最小系统原理图本设计主要使用到了STM32F103中的定时器、串口通信、I/O口输出PWM和I/O口
输出高低电平。定时器定时一秒用于访问服务器获取控制数据,串口通信用于ESP8266模
块的通信,I/O口控制照明灯亮灭。ESP8266模块ESP8266可以应用于大部分微控制器的设计中。ESP8266具有快速切换模式、配合低功耗操作、故障排除等特点。ESP8266更加适用于移动设备、可穿戴电子设备。PQrTXDADCRXDCHPDGPI0O5GPIOl6GPIO04GPI014PQrTXDADCRXDCHPDGPI0O5GPIOl6GPIO04GPI014GPlOOGPlCH2GPIoO2GPIO13GP1015VCCGND悬空为工作模式下拉接地进入烧录模式OS-NDl口
串
ILTGUS-SoWI≤I()IΞID60Ln)DN图3-3ESP8266接线原理图表3-1常用AT指令AT+CWMODE=x设置模式1:STATION2:AP3:STATION+APAT+RST复位AT+CIPMUX=x开启mux多路连接设置为服务器时,必须开启AT+GMR查看固件版本AT+CIPSEND=x,y发送tcp信息x为连接IPD值y为信息长度AT+CWDHCP=x,y开启DHCP,y=0关1开,x为设置模式AT+CWSMARTSTART=1ESP能连接方式(手机软件连接)AT+CIPSEND透传模式AT+CWLAP列出当前可用AP如图3-3所示为ESP8266的接线原理图而ESP8266与微控制器之间的通信方式是串口通信。MCU通过串口发送AT指令对ESP8266进行设置和数据传递。使用串口工具发送AT指令对ESP8266进行复位、查看版本信息、连接Wi-Fi、设置模式等操作。表3-1为常
AT指令。LED使用LED灯作为照明灯的方案,LED灯珠电流很大,单片机无法点亮,需要一个驱动电路,此设计中选择ULN2003作为驱动芯片。ULN2003是一款高耐压、大电流复合晶体管阵列的芯片。多用于智能仪表、单片机、PLC等控制电路中。可直接驱动继电器、步进电机、较大功率的LED灯珠等负载。本设计的灯光控制部分利用了ULN2003的电流增益高和带负载能力强的特性。设计了如图3-4所示的电路,使用到了NPN复合晶体管。可以控制灯不同状态,通过单片机控制输出PWM的占空比不同LED灯可呈现不同的亮暗程度。添加电容可以进行滤波同时增加电源的稳定性。单片*怪口INlIN2单片*怪口INlIN2IN3IN4IN5IN6IN7GNDOUTlOUTJOUT30UΓ40UT50UT6OUT?VCCLlLEDULN2OO3CSCapSsmiIOOaF图3-4LED灯电路设计原理图继电器控制电路目前家中使用的都是220V供电的照明灯,本次设计了另一个方案就是使用继电器控制家用照明灯开闭。灯光控制器的设计采用了电磁继电器。当电磁线圈通电导通衔铁被吸下常开端导通有。所以此种方案的灯光照明只有开关两种状态。本设计灯光控制部分的继电器电路如图3-5所示,照明灯接继电器常开端,添加二极管保护电路避免电磁线圈回流,损坏电路,驱动继电器的电流很大需要三极管放大电流。这样即可保护芯片还可以保护其他电路。这样就可以利用I/O口直接控制照明灯的开关。
VCCSVC2?M-Ill—IHIOTnFVCCSVC2?M-Ill—IHIOTnFPC14连接控制器3-5继电器电路原理图3.1.5本设计采用220V转5V模块供电,普通家庭用电都为220V,直接使用220V电源供电可以增加本设计的通用性,但是STM32F103芯片和ESP8266模块都需要3.3V供电,如图3-6所示电源电路。本设计采用ME6211降压芯片。本设计中ESP8266模块对电流需求较高,所以ME6211是符合设计的需求的。电路中采用了很多电容进行滤波和稳压,稳定的电压可以保证芯片和模块的正常工作。图3-6电源电路原路图图3-6电源电路原路图控制器程序流程图STM32为控制芯片,通过编程,要实现的各种功能,实现灯光控制程序和无线通信程序并建立联系控制完成控制器的设计。程序流程如图3-7所示。图3-7主程序流程图Wi-Fi模块的程序设计ESP8266与STM32F103之间的通信是通过串口向Wi-Fi模块发送AT指令。ESP8266的工作流程如图3-8所示。3-8ESP8266工作流程图在程序中把每一个AT指令以函数的形式表现出来,这样主程序中调用指令的函数以达到控制ESP8266的目的。调用函数可以使主函数更加简洁易懂。以测试指令“AT”为例。如图3-9所示。在程序中直接调用函数ESP8266_AT_Test函数即可以向模块发送指令并可以检测到模块反馈回的信息。判断反馈信息中是否含有“OK”字符,若含有OK则说明测试成功。可以继续执行下面的程序。若数据中没有“OK”则说明ESP8266还没有准备好需要等待。voidEΞP8Ξ66-AT,Test(void)ESP8266_RST_HIGH_LEVELO:Delay_n.3tIQOO):while(!EΞP8Ξ66-C∏ltif"AT","QK、NULL,200))EΞP8Ξ66-Rst0:图3-9测试指令函数ESP8266测试成功后已经完成启动为模块进行配置,设置工作模式为Station模式,STM32F103通过串口给ESP8266发送Wi-Fi搜索指令“AT+CWLAP”得到当前所在范围内的Wi-Fi信号。在程序中我们将连接Wi-Fi的指令写入独立的函数里,函数中使用scanf函数将热点的SSID和密码通过串口发到STM32F103上经过处理后发送到ESP8266连接Wi-FiTCP连接方式。Wi-Fi在连接服务器成功后ESP8266设置成透传模式更加方便数据传输,TCP/IP连接后将数据封装成HTTP的数据格式,在程序中编写了访问服务器的函数,如图3-16所示,ESP8266_contro函l数将已封装好的HTTP的数据通过ESP8266访问服务器数据库,发送和接收数据以达到控制灯的目的。通过定时器定时访问服务器。//ESPHΞ16_Unvarniwh£endO;strEspE∣266_Frajn_R已Cord.IntBit.Fr:imLengt.h=0:strEspE∣266_Frajn_Record.InfBLt.Fr:ariFmislιFlag=0:sprintf∣⅛∣Str「'GET∕ρhρt∣iι√∏LC∙.ιled.Ph□?1BdnamE=chusng^ledstat.?=%ξ⅛.Ledco∣ie=lfc∣ifeledt∙imab1e=γeξHTTPF1.1∖二⅛",:F£_UMart("i⅛ξ∖pStr);ESP826S_SendStrins(EI-MLE,PSth NULLSiitsle.ID);TOC\o"1-5"\h\zESFE26Ei一SendStrl口工(EI-MLE7 λ'Hu≡-:192.16S.137.1:E:00l\r\nA,, NULL, Siitsle.ID );ESP8266_SendString( El-MLE7 λ'TJξPr-Agent: Kozιll√4.L∣∖r∖n∖, NULL, Single,ID );ESP8266_SendStrins( EMABLE, λ匚口口正Ct工口n: Keep-Alive','.1r,,'.1n',■,? NULL, Single_ID );ESPE!2661SendStrιng( EMABLE, λ''∖iAiΛ NuLL SingleZlD );PC_Usart("45");图3-16服务器访问程序片段灯光控制模块分两部分,一部分控制LED灯使用PWM输出调节LED灯的亮暗程度改变灯的状态。另一部分使用继电器控制220V照明灯供电只有灯亮和灯灭两种状态。LED灯程序设计,初始化引脚PA6口并设置成PWM输出。PWM(脉冲宽度调制)同一频率下高低电平得时长不同并可以调节。在STM32中设置PWM输出要占用一个定时器首先要初始化定时器时钟、预分频值、自动重装值、计数模式等。设定其次配置PWM的模式并设定跳变值并使能该通道达到输出可变方波的目的。PWM的值决定灯的亮度。照明灯的程序设计,初始化引脚PC14后将该引脚清零变成低电平继电器断开控制关灯,将引脚置一则控制开灯。两种方案都是通过判段ESP8266模块接收到的数据进行提取分析判断是否可以存在字符串opena、openb、openc、close收到不同的字符串LED灯的呈现亮暗不同。服务器的设计与实现在本设计中用到的是Tomcat软件作为服务器,使用MySQL作为数据存储,PHP语言编写服务器后台程序。组成完整的服务器系统架构。登陆注册数据表格的设计id,账号名称和密码用户名和年龄放在一个table_user_password表中,能够快速的验证用户的身份。表4-1即为table_user_password表。用户的登录密码存健在密码字段中,为了保证用户的密码安全性,不被泄露。userPassword字段应对其先加密后存储。密码的加密方式是md_5,之后再将其存储到数据库中。表4-1table_user_password表table_user_password字段数据类型数据长度userIdint10userAccountchar50userPasswordchar30usernamechar50userAgechar20灯光状态数据表格的设计table_led表格用于存储灯光控制器的相关信息,如表4-2所示。table_led表含有灯光节点_id、灯光名称ledname可以在手机端直接更改。Ledcode唯一码是识别每个控制器的识别标准,是控制器芯片的唯一编码是独一无二。通过改变ledkey的值控制灯的开关。Ledstate表示控制器的反馈回的状态。Ledtunable反馈灯是否可调。表4-2table_led表table_led字段数据类型数据长度_idint20Lednamechar50Ledstatechar30Ledkeychar30Ledcodechar50Ledtunablechar204.24.2服务器程序设计用户登陆注册编辑的设计此数据表的设计是将用户时注册的信息保存到数据库中,登陆时查找数据表里的信息通过对比账号和密码,当账号和密码与数据表里的一致判定登陆成功。密码不一致显示“密码错误”,账号搜索不到表示该账号没有被注册,显示“查无此人”。编辑是将用户已注册的信息进行修改。如图4-1所示为登陆和注册的流程。图4-1登陆注册流程图首先服务器连接MySQL,用PHP语言编写的是服务器连接数据库的语句与MySQL里的数据库连接。通过PHP语言编写程序访问服务器的控制终端将用户信息向用户表添加数据。主要利用的是服务器通PHP语言对MySQL进行数据的增删改查。在注册成功后同时为用户创建新表以用户账号命名记录用户登陆时间,如图4-2所示。Eaccouπt1311105424@Frst_rnysqI_test(Test]-表文件第辑"商匚帮助匹等人国寻O寻出向导『毓选司辱 曲网梧亘君U_idregdate2017-12-1411:15:3222017-12-1411:15:5332017121611:27:4442017-12-1611:33:4352017-12-1611:56:23■62017-12-1712:00:3673317-12-1712:02:2482017-12-2ftOa:41i14图4-2用户登陆时间记录图修改用户信息同样是利用的是PHP语言对MySQL进行增删改查。在登陆、注册、修改成功或失败后都会反馈出信息以供手机端判断。灯光控制与搜索的设计手机应用控制灯是访问服务器中PHP语言的程序是对MySQL中的table_led表里数据的增删改查。“ledstate”项的值是表示的是当前的灯的状态,“ledkey”项的值是手机控制灯光将要改变成的状态。在编写程序中用到了JSON数据解析,LED1的数据格式表示为:在手机接收到此条数据后可以查看灯的状态、灯的名字、控制器的唯一编码等,该控制器是否可调的数据需要一次传输方便手机端去解析。手机接收到数据后将分配到各个部分。反馈到手机界面可以让用户看到。ESP8266访问服务器设计控制器端使用ESP8266的透传模式打包成HTTP格式访问服务器同样是对MySQL中的table_led表里数据的增删改查。主要是接收ledkey项里的值,并将状态值发送给服务器并写入ledstate项中。如图4-3所示ESP8266⅛送请求数据图4-3图4-3硬件控制端访问流程图5手机应用的设计与实现5.15.1Android系统平台简介M用程序层应用乔序根柴/Artiviryl,.MarIeEer.zWindow∖Miindggr,ViewSystem应用乔序根柴/Artiviryl,.MarIeEer.zWindow∖Miindggr,ViewSystemPκk⅛≡e",,∣
Manager√Tdephony
Manager『RC5Q∣UΓCIE)「•、Manofer/\、IoartlQn、Manager/NotlficaKlon
Monager函数库UnUX核心层图5-1为Android系统的体系结构Android是一种基于Linux内核的操作系统,一般运用于移动平台,并且源代码是开放
的。Android系统的构建如图5-1所示。程序流程框图本设计使用手机作控制终端。编写手机应用程序,赋予手机应用应有的功能完成手机端的设计。如图5-2为手机应用流程图。图5-2手机应用流程图应用程序设计与实现手机应用界面的设计在控制和查看灯光控制端之前,用户首先需要进行登录验证,验证成功进入灯控界面。系统软件的开始界面使登录界面,用户要输入账号和密码,经过服务器系统验证是否存在该用户,密码是否正确,验证成功界面跳转,第一次使用还需要进行注册。然后点击登录键,手机将用户名与密码通过局域网Wi-Fi网络发送到服务器,等待反馈,验证成功后即进入到操作界面初始界面。如图5-3为登陆界面,图5-4为注册界面。
OKAsCQ^"IlTrfl13⅜(Ξ>20:57Led∞ntrol!⅛⅛:1311105424 密码: 登陆 UWa≡□O<]字图5-4用户注册界面图5-3用户登录界面开灯1开灯2拜灯3 关灯3^£J»田27K∕mCU岸%∣*∣∣OKAsCQ^"IlTrfl13⅜(Ξ>20:57Led∞ntrol!⅛⅛:1311105424 密码: 登陆 UWa≡□O<]字图5-4用户注册界面图5-3用户登录界面开灯1开灯2拜灯3 关灯3^£J»田27K∕mCU岸%∣*∣∣11¼CΞD7042686460131LedcontrolzzkhhιιιnιιnQ0Iedmm222222222Ied7可调123456789添DDLED用尸信息修改图5-5灯控主界面开灯1 开灯2 升灯3 关灯氨溜月灯2开灯3关灯ftttChuang可调640582115chuang640582115Ied7123456789living686460131图5-6灯搜索界面用户登录成功后会进入灯控界面,如图5-5所示,进入界面后界面为空需要点击“添加灯”按钮进入搜索灯界面,如图5-6所示。点击条目添加灯重新跳转到灯的界面,这两个界面都是遵循规定的布局文件显示出的这些界面,即为灯光控制和搜索界面。在手机应用中使用用户注册的信息有时需要修改,信息修改界面如图5-7所示,在灯的主控界面点击“用户信息修改”按钮。即可跳转至该页面,遵循在Androidstudio中的
布局文件显示出的这些界面。用户在添加成功某一个灯后要修改灯名,点击Item条目里的编辑按钮跳转至编辑界面如图5-8,用户不想控制此灯时可以点击“删除此灯”按钮,即可在等主控界面删除该灯。图5-7用户信息修改界面图图5-7用户信息修改界面图5-8灯编辑界面手机应用后台运行程序的设计手机应用进行登陆注册的流程如图5-9所示,进入手机应用后会进入登陆主界面在主界面的Activity中先连接已经设置完成的布局文件,初始化各个控件的id,对“登陆”和“注册”按钮进行监听。点击“注册”的按钮会跳转到注册页面。点击“登陆”程序会执行监听内的程序,首先是判断EditText里的字符串是否为空,若为空会给出提示,若不为空则继续执行。要访问服务器需要创建子线程,只有在子线程中去访问网址这样主程序才不会报错,手机应用才不会卡死。Android手机访问服务器时用到HttpURLConnection协议。程序中使用的是GET的请求方式,访问完成后得到的反馈信息,程序中对HTTP状态码进行判断,当HTTP状态码为200时说明访问成功并将数据存放到字符串中。在Handler中进行数据解析和对比判断,是否登陆或注册成功。Handler是异步消息处理机制。服务器请求的时间较长并且又具有不确定性,所以要在子线程执行数据访问并且在Handler中处理数据。
灯光控制界面和灯光搜索界面的程序的实现,界面的布局文件主要使用是ListView显示状态并控制灯。在开发软件中自定义ListView的布局如图5-11所示,设计实现左侧图片显示灯光状态,TextView分别显示灯名、是否为可调灯、灯的唯一码。Button分别控制三种灯的状态、关灯和编辑灯。程序主要在新建类LedAdapter中实现的。使用子线程处理接收到的JSON数据,分析数据判断照明灯的状态以图片不同亮度表现出来。点击“编辑”按钮跳转界面用于修改照明灯的名称或者把该灯移除灯控主界面。使用“开灯1”、“开灯2”、“开灯3”、“关灯”监听按钮发出数据请求改变灯的状态。搜索界面的程序在启动Activity直接进行服务器访问获取数据,使用控件显示全部的照明灯,以供用户选择并可以实现点击Item即可添加灯到主界面。使用到了对于Item的监听,跳转界面并传输数据。并将添加的数据进行保存到文件中和字符串数组中,以方便下次使用能够继续显示在主界面,避免重复添加。LedEbntlGlQLEDIIedqode,.一LedEbntlGlQLEDIIedqode,.一ff∏1开灯Z开灯3美灯m»QLEDnameLEDCODE图5-11控制界面Item的布局图5-12搜索界面Item的布局Ledcohtrol系统测试在灯光控制器的硬件部分完成,服务器程序编写和调试结束,手机应用软件编程和调试结束后,需要本次设计进行一个全面的测试,来验证系统的功能的实现和稳定性。系统测试分为功能测试和性能测试。性能测试主要检验系统的稳定性。功能测试检测系统功能是否完整,是否符合本次设计中的设定功能。每个模块之间能否正常通信,每个模块的功能是否实现。本次测试是对其主要功能进行测试。硬件控制端部分测试将单片机处于复位状态,并与外部电路连接,焊接好的硬件实物图如图6-1所示。图6-1图6-1硬件实物图将服务器与灯光控制器连接到同一局域网下。通过测试,通过改变服务器数据库的值改变灯的状态,进行相应的修改操作,即可实现对灯光控制器控制并开关50次。测试出控制器可以实时做出反应,可见设备开关反应灵敏,时间延迟也较小。手机应用部分测试打开手机App并保证手机和服务器在同一局域网内。通过测试,开始对手机注册登陆进行测试,注册登录成功后可以在服务器端数据库中看到注册信息,多次测试都能上传到服务器并在下次可以继续登陆,同时还可以更改用户信息。实现搜索灯点击添加不能重复添加测试,多次点击同一个灯都不能同时加。控制灯测试点击开关灯可以看到数据库中有关灯的表里的值在改变。多次进行测试数据库都可以接收到接收数据稳定。总体测试测试手机App控制照明灯并保证灯光控制器和手机App在同一局域网内。开启服务器,使用手机测试灯光控制器的功能,使用手机多次控制灯光控制器,控制器都可以及时的做出反应,并把灯的状态信息反馈到手机上。多次测试系统稳定,灯光控制器有1秒左右的反应时间,时间延迟小,但手机端的灯光状态反馈速度稍慢在4秒左右。性能测试性能测试中包括系统稳定性测试和硬件断电恢复测试,通过模拟特殊情况和正常情况的模拟测试,测试每项功能与设计要求是否相同。系统稳定性测试本次测试对系统进行了24小时的连续开机,检验系统能否继续正常工作。测试结果表明,在连续24小时的工作状态下,系统可以执行,并未出现异常状况。硬件断电恢复测试断电测试是为了验证本次设计可靠性,在多次断电通电的状态下,系统设计的软硬件都没有损坏,并能够继续正常的工作,功能完好。将系统正常打开并运行,然后切断电源,系统重新启动,系统能够正常运行。重复多次实验,系统仍然运行稳定。对系统的断电恢复测试一共进行20次,测试过程中,在上电后,系统都能够自动恢复,并且恢复后各项功能均可以正常运行。总结与展望总结人们生活变化日新月异是科技快速的发展的表现,物联网的出现更是给家居生活带来了更多的便利。本设计是基于Android平台和Wi-Fi技术的,实现了对家中照明灯的实时控制和监测。本次设计的优势有:.使用Wi-Fi技术作为无线通信技术。成本低并且减少布线,使用ESP8266模块安装简单操作方便,大多数人都可以使用本次设计产品。.基于Android平台设计开发手机应用。Android系统的源代码公开,迁移性好,日后方便对软件升级,各种新功能不断出现越来越强大,并且Android系统中也在不断的融入智能家居的相关功能。.关于灯光控制器的设计是符合市场发展的,结合了Android系统和Wi-Fi技术,人们都很容易接受。在这两者的结合下做了本次设计,也是为了更好迎合消费者的需求。展望由于各种客观原因,本设计仍然不够完善,不能满足所有的用户需求。现如今只实现基础功能,可以说只表现出了智能家居的部分功能,还有很多问题需要解决。.控制系统延迟。本次设计搭建的物联网系统只在局域网中实现还需要扩展到广域网中,因为网速、带宽和设备等原因导致对灯的控制还存在延时。尽可能缩短延时优化各部分的程序。.功能的拓展。本设计还可以利用在家居的其他设备上,例如:控制家中的窗帘,控制空调,检测烟雾进行报警等。实现较完整的智能家居系统,这些功能还要更多时间的进行研究。.系统的安全性问题。本设计会用到用户的资料,人们在选择智能家居产品时一定会考虑其对个人信息的保护,因此需要对数据进行非常严苛的加密处理。为了使系统的安全性更高,这部分仍需要投入更多时间精力。PC机及单片机数据通信技术[M].北京航空航天大学出版社,2000.胡汉才.单片机原理及其接口技术[M].清华大学出版社,1996.David.M.Buchla,GarySnyderMultisimExperimentsforDC/ACDigitalandDevicesCourses[J].PrenticeHall,2010,8.彭伟.单片机C语言程序设计实例100例[M].西安:电子工业出版社,1999:23-45.万福君.单片机微机原理系统设计与应用[M].中国科技大学出版社,2004.赵光宙.信号分析与处理(第二版)[M].机械工业出版社,2010.张国雄.测控电路(第四版)[M].机械工业出版社,2011.谭浩强.C语言程序设计(第三版)[M].清华大学出版社,2005.M.Morris.Mano,MichaelCilettiDigitalDesignElectronicIndustryPress[J].PrenticeHall,2005.刘爱军.物联网技术现状及应用前景展望[J].物联网技术,2012(01).陈煜.基于Android系统的手机文件管理器的设计与实现[C].成都:西南交通大学,2012(9):47-5.1JamesW.Nilsson,SusanA.Riedel,ElecticCircuits,NinthEdition[J].PubilishingHouseofElectronicsIndustry,2012.赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2001,2:100-200.刘志红.单片机原理及应用[M].重庆:重庆大学出版社,2011.白家旺,雷腾跃,屈琦凯.浅谈嵌入式系统对智能家居的影响[J].广东科技,2015(10):59-6.0[16]本刊讯.如何选择适用的智能家居系统[J].中国公共安全:学术版,2012(12):56-57.[17]魏宏飞,黄宗建,吴会敏.基于物联网的智能家居系统探究[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度车库租赁及智能停车设备安装合同3篇
- 二零二五年度雏鸡养殖场与动物疫病防控中心合作合同4篇
- 科技赋能下的宠物医疗行业发展前景
- 科技创新助力创新药物研发的市场突破
- 二零二五年度车间承包与新能源应用合作协议4篇
- 二零二五年度GPS技术在智能穿戴设备中的应用合同3篇
- 网络时代下家庭教育的新视角-家庭网络安全教育的重要性及实践路径
- 教育、医疗、办公多领域下的农业科技发展探讨
- 二零二五年度橱柜行业展会参展与采购合同4篇
- 二零二五年度文化产业发展艺人合作合同2篇
- 冷库制冷负荷计算表
- 肩袖损伤护理查房
- 设备运维管理安全规范标准
- 办文办会办事实务课件
- 大学宿舍人际关系
- 2023光明小升初(语文)试卷
- GB/T 14600-2009电子工业用气体氧化亚氮
- GB/T 13234-2018用能单位节能量计算方法
- 申请使用物业专项维修资金征求业主意见表
- 房屋买卖合同简单范本 房屋买卖合同简易范本
- 无抽搐电休克治疗规范
评论
0/150
提交评论