版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机控制的智能家居系统的软件设计案例目录TOC\o"1-3"\h\u10947单片机控制的智能家居系统的软件设计案例 12671.1软件系统设计 1138021.1.1主控模块 2251771.1.2温湿度采集模块 5259441.2PE端软件系统模块 618212第2章系统调试 857182.1系统单元测试 8276932.1.1液晶显示测试 10319552.1.2ESP8266传送信息测试 11161432.1.3PE终端接收数据实现 11234862.1.4PE终端新阈值设置 12234842.2硬件仿真测试 1464222.3系统实现 15本系统的软件设计包括单片机软件系统设计和PE端APP的设计开发两个部分。其中单片机软件系统基于KeilC开发实现,PE端软件选择Androidstudio为开发平台,编程语言选择C++。软件系统设计本部分使用KeiluVision软件编程实现,以下简称Keil。系统中硬件部分的各个模块的运行程序的设计思路均基于Keil。Keil的语言环境为C语言,由于在前面几学期中有涉及此种语言环境,所以在编程中应该相对比较简单、好上手。在经过编辑程序、编译、连接、调试的流程之后。将生成的.hex文件通过stc-isp-15xx-v6.82E软件烧录进所选择的单片机,就可以实现程序到具体功能的控制。具体的系统调试还需要将整体的功能实现与所编写的程序的预想结果比较调整来不断改正。如REF_Ref73506120\h图3.1为Keil软件编译界面。图3.SEQ_图\*ARABIC\s11编译界面软件设计包括主控模块、温湿度采集、PE端软件系统模块共3个模块。主控模块图3.SEQ_图\*ARABIC\s12主程序流程图本模块要实现的功能主要有:(1)各个模块的初始化:温湿度采集模块初始化、LCD1602液晶显示模块初始化、蜂鸣器报警初始化,ESP8266传输初始化,终端APP初始化。(2)温湿度采集:扫描周围的环境,根据环境中的物理量,利用热力工程学理论计算出温度,此外依照气体内包含的水蒸气量和空气内相似条件下饱和水蒸气量的比值计算出湿度。(3)液晶显示:将采集的温湿度显示在液晶上(4)蜂鸣器报警:发现异常情况,即刻发出蜂鸣声,进行报警。(5)ESP8266传输:将采集的温湿度转化为字符串和TA指令,经过处理解析,以及包装在进行传送。(6)APP接收,设置:接收传来的温湿度,并可以根据需要随时更改报警阈值。(7)摄像头:查看环境的实际情况。其中各个模块的初始化,键盘扫描对周期要求不高,把他们按照模块化设计的思想放在main函数中,剩下的温湿度采集需要周期不停运行,把他们归到中断子函数中。插上电源,打开开关,程序进入main函数,最先开展DHT11、LCD1602、ESP8266的初始化,即让他们处于准备工作的状态下,当初始化完成后,立即进入主循环中。在主循环中,始终对周围的环境进行检测,且把信息传送到LCD1602液晶上,立即呈现出来,通过蜂鸣器时,将所测数值与阈值进行比较,超出阈值则立刻报警,然后,通过ESP8266将数据字符进行处理、包装,用WIFI,将数据发送到连接的PE终端。到此,单片机部分的功能基本结束。REF_Ref73505789\h图3.4为LCD1602液晶显示模块的初始化过程。图3.4复位过程在以上描述的工作中,都是有关于main函数下的,与此同时,中断这部分程序也在紧锣密鼓地运行着,本系统用到的是单片机的串口终端,串口中断是此单片机五个中断当中的一个。中断调用过程如REF_Ref73385598\h图4.3所示:图3.SEQ_图\*ARABIC\s13中断调用在ESP8266接收数据功能出现异常时,接收信号到即进入中断,调用ATCOM程序使接收信号归零,复位后,刷新,以此再重新接收数据这样不仅可以减少程序运行中的CPU使用率,还可以使程序在执行中不会出错、不会一直在一个地方等待,方便后期的程序优化与调试,其程序如下所示。温湿度采集模块图3.SEQ_图\*ARABIC\s14DHT11温湿度数据采集图3-3为DHT11模块的温湿度数据采集流程,在串行的接口中,此处DATA通常是使用在单片机和DHT11间的同步和通信,一般使用单总线数据的格式,此处要求格式是:8bit温度的整数数据+8bit温度的小数数据+8bit湿度的整数数据+8bit湿度的小数数据+8bit校验和,其中在传输前,判断是一次正确的传输依据为:8bit校验和是否等于其他四位数据之和。单次通讯时间是4ms,要进行一次数据传输需要40bit,此外传输时期高位优先输出。在main函数中的定时器0的中断中,DHT11会每隔一段时间进行温湿度采集,对数据进行更新,在得到开始指令之后,DHT11就可以从低损耗性状态转变成高速状态,在静待主机开始信号结束以后,其也会马上反馈相应的指令信号,之后随之出现40bit的数据内容,此外也触发一次信息筹集,进而可利用上述选择性的读取少数信息,在DHT11得到开始信号之后,就触发温湿度信息的筹集,然而假如并未出现主机发送的开始信息,DHT11也无法自主筹集温湿度信息采集,在筹集到信息之后会随之变成低速模式。在总线闲置状态为高电平时,主机需要将总线拉低进而等待DHT11响应,然而上述拉低需要超过18毫秒,进而确保DHT11可以测试起始性指令。在DHT11得到主机发放开始指令之后,在等待上述开始指令完结后,随之发送80us的低电平响应信号。在开始指令完结之后,会延时20-40us,读取DHT11回馈信号,之后主机发送开始指令之后,随之转换到输入模式,或者输出高电平,最终总线提高上拉电阻。在总线为低电平时,此时表示DHT11发送响应信号,在DHT11发送响应指令之后,将总线提高80us,进而准备发放数据内容,每个bit信息全部是以50us的低电平时隙开始,其中高电平长短影响数据位是1或0.假如读取响应指令为高电平,此刻代表DHT11并未响应,要充电查看检查线路连接是否出现问题,在这儿曾经就出过问题。在最终bit数据信息传播结束之后,DHT11随之拉低总线50us,然后让其进入上拉电阻的拉高状态进而转入空闲局面,其程序如下图所示。PE端软件系统模块PE终端软件部分的编撰在AndroidStudio环境中开展。AndroidStudio是当前技术中,相对便利的开发环境,本系统设计中运用到的语言为JAVA,与前面所掌握的C语言有很大的相通之处,比较容易上手,编程逻辑易于理解,非常便于开发和调试。在PE上的运行过程是先打开终端APP,之后系统会初始化屏幕,如果初始化过程完成则会显示初始化的列表选择框,若初始化未完成则会重复初始化过程,直到初始化屏幕完成。在初始化列表选择框中可以选中需要点击的列表,列表包涵了之前收集到的数据。此时屏幕会感应选择框是否被点击,感应到被点击则会触发连接程序检测连接是否成功,如果未成功则回到初始化的列表选择框。通常情况下初始化和选项的连接过程在Android
studio部署时多次测试,确保正式应用时不会出现反复循环问题。当选项连接成功时系统会启动计时器同时判断计时器是否溢出,当计时器溢出时则会初始化报警提示框,同时检测温湿度数据是否超过设定的阈值,若超过阈值则触发蜂鸣器报警,未超过阈值则会重新检测计时器是否溢出从而决定是否触发蜂鸣器报警。整个过程通过屏幕感知、选择列表框初始化和报警框初始化、以及计时器程序来完成在PE上的运行。如图3.5PE端软件流程图。图3.5PE端软件流程图PE终端系统设有三大功能,首先是串口通信,收取硬件部分发送过来的温湿度数据,其次为设置温湿度阈值,最后为反馈回单片机,设定新阈值,以此达到随时监测好环境的温湿度状况,其程序如图所示。系统调试系统单元测试首先进行的是系统硬件部分的信息搜集与选定,将所需的硬件部分的器件购买回来,检查分类后,按照系统原理图进行各个器件的连接,REF_Ref73385679\h图4.1为系统的原理图。在连接中要注意串口的分类,管脚的具体作用以及实现的功能.图4.SEQ_图\*ARABIC\s11系统原理图在系统设计好后,按照系统原理图中的器件连接方式将硬件连接好,硬件部分的整体实物图如REF_Ref73385772\h图4.2所示:图4.SEQ_图\*ARABIC\s12实物连接图在DHT11模块运行起来后,会接收到周围环境的温湿度情况。为DHT11模块在采集温湿度过程中,通过串口调试得到的一些原始的样例数据。如REF_Ref73505949\h图3.8所示:图STYLEREF1\s3.SEQ_图\*ARABIC\s18温湿度采集样例数据液晶显示测试在温湿度数据读取出来后,即刻送给液晶显示。LCD1602显示原理主要使用液晶具备的物理属性,利用电压对其显示区域实施管控,有电就会出现显示,显然在本人使用的液晶模块内部的字符发生存储器(CGROM)之前储存160个点阵字符图形,包括阿拉伯数字等,上述字符都存在固定代码,在得到代码之后,会马上呈现所筹集的信息。如REF_Ref73385794\h图4.3所示:图STYLEREF1\s5.SEQ_图\*ARABIC\s13液晶屏幕显示样式在显示中运用不断更新的温湿度来动态刷新屏幕,使得数据不断更新,由于人眼的视觉会有一定的视觉暂留现象,所以只要屏幕的刷新频率大于人体的视觉残留情况,那么人们看到的就是静止显示跳动数字的温湿度。图4-4为实际操作中液晶屏幕上显示的温湿度格式样式。ESP8266传送信息测试在整个通信过程中,esp8266是WIFI热点,AT指令在互联互通中充当快递员,过程时期遵循TCP/IP协议,手机作为客户端,在之前通过电脑,设置好申请端口即IP地址,打开电源后,执行TA指令,在此之前选好了WIFI的应用模式是AP模式,在单片机采集好温湿度后,便给ESP8266信号,ESP8266便对数据用TA指令进行处理,包装传送给手机APP。PE终端接收数据实现基于intelliJIDEA语言,在Linux,MacOSX,Windows软件工具上,读取JAVA语言程序,通过WLAN的连接,打开APP,接受TA指令,数据进行解析,将BCD二进制码转化为我们所熟知的十进制码,然后在系统框体中显示,显示实时的温湿度,同时在第一次连接时,会自动回馈预设温湿度阈值,温度40,湿度80.其中新接收来的数据不断更新代替原来的数据。如REF_Ref73385889\h图4.4所示:图4.SEQ_图\*ARABIC\s14获取时间PE终端新阈值设置通过ESP8266这个热点使单片机和手机进行通信,通过手机APP可以设置新的温湿度阈值,把阈值信息转化为TA指令,利用热点ESP8266传送给单片机,在将其转化为数据代码则会使得LCD1602显示新阈值,在温湿度过高时,随之出现警报,APP所显示的实际温度会显示红色进行提示。如REF_Ref73386003\h图4.5所示:图4.SEQ_图\*ARABIC\s15变化图然后是硬件部分的编程,将各个器件、模块的功能提前统一设计好,进行逐个功能模块的编程,最后再结合手机APP,看整体系统的实现情况。理论与现实总是拥有一定差距的,设想的部分可能在实现中会有所变化,这就需要进行系统测试。如图4.8软件界面调试,在在完成软件的编写之后要进行测试,需要将程序下载到单片机上。在WIFI串口调试助手的帮助下,将通信接口进行合理设置,同时也要对服务器IP与协议类型等进行合理设置。这时在WIF串口调试助手的应用下,将温度信息进行发送、显示。当温度与LCD液晶显示器上的值一样时,说明在该系统能够正常运行,温度传感器上的数据能够正常显示。通过测试,对相关数据信息的分析发现,本文的设计符合相关要求,在对温度进行采集过程中,能保持良好的稳定性与精准度。图4.SEQ_图\*ARABIC\s18软件界面调试截图硬件仿真测试系统通过DHT11温湿度传感器感应周围的环境的温度和湿度,通过单片机对采集到的数据进行读取处理,经过LCD1602显示模块实时显示温湿度数据,同时可以通过按键模块对温湿度报警上、下限值进行设定。当DHT11读取的温湿度值不再设定范围内时,报警模块LED灯指示故障信息,同时蜂鸣器报警;当温湿度读取数据正常后,LED灯熄灭,蜂鸣器关闭。如REF_Ref73506220\h图4.6所示。图4.SEQ_图\*ARABIC\s16电路仿真图系统实现在连接后,需要对一些关键器件进行提前调试,避免接触不良导致短路或器件坏掉等情况。对传感器,蜂鸣器、变压器,ESP8266进提前检查,对液晶、单片机,APP进行调试,检测是否可以正常运行。然后在程序编写中,对逐个器件的功能进行编程时,一个一个功能进行调试,在编好一个功能的程序后就先烧录进单片机进行检查,可以借用万用表进行电压的检测,也可以用串口助手接收字节检查发送、接收功能是否正常。在调试APP与单片机的通信是最为重要的,是本毕设中顺利进行的重点,仅仅用android开发平台上面的模拟器来测试,运行速度经过测试太缓慢,同时容易出现数据丢失,因此我直接选择在真实的手机上进行所有程序的调试,第一设定本人android手机是USB调试的模式,然后用USB连接好手机和计算机,当然在这一步就要安装手机得出驱动程序,在确定了连接成功即检测到达手机设备,此后设定应用程序是对应的调试状态,再执行真机的调试操作,在调试时,我们可以通过计算机Androidstudio的DDMS,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆轮船(集团)有限公司交运游轮分公司招聘3人笔试历年常考点试题专练附带答案详解
- 2025江苏无锡市江阴临港经济开发区国资公司招聘拟聘用笔试历年典型考点题库附带答案详解
- 2025山东省国有资产投资控股有限公司招聘12人笔试历年典型考点题库附带答案详解
- 第四课 准确把握概念教学设计高中思想政治选择性必修3 逻辑与思维统编版(部编版)
- 第四单元第17课《陋室铭》教学设计-2023-2024学年统编版语文七年级下册
- 2026内蒙古地质矿产集团有限公司竞争性比选财务管理部部长1人备考题库带答案详解(巩固)
- 冀教版七年级下册Lesson 8 Marco Polo and the Silk Road教学设计
- 2026广西河池大化瑶族自治县实验中学德育工作辅助人员招聘1人备考题库附参考答案详解(预热题)
- 2026四川绵阳市长虹缤纷时代商业管理有限公司招聘招商营运主管岗位1人备考题库往年题考附答案详解
- 2026河南平顶山发展投资控股集团校园招聘备考题库附完整答案详解(夺冠系列)
- 芽苗菜知识培训课件
- 测绘成果安全保密培训
- 2025年贵州省公务员《行测》真题及答案
- 2025年故宫文化考试题及答案
- 走进俄罗斯课件
- 小针刀课件教学课件
- 四川省医疗服务价格项目汇编(2022版)
- 商务礼仪之服装搭配
- 电梯机房钻孔协议书范本
- 腰椎疑难病例讨论
- 少儿航空科普教育
评论
0/150
提交评论