版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、绪论(一)本课题的研究背景和意义传统测量温度酒精温度计,由于酒精沸点的局限性从而不适于一些较高温度的测量,后面就演变为水银温度计,被广泛使用。但水银温度计在测温时需要时间的等待才会出现固定的温度,而且水银中还有有害物质汞,如果摔坏了水银进入人体,则会对人体造成危害。传统的温度获得和记录的方式比较消耗人力和时间且效率较低,现在最通常用的测量方式就是使用水银的温度计挂在一个地方进行测量,但是并不方便我们随时实地进行读取温度。虽然测温在日常生活中并不是特别多需要,但是在一些工厂或其他地方还是需要人工的去采集不同时间段里的温度数值,既需要很多人力也需要很多时间。而蓝牙温控系统则可以快速的测量出当下的温度,并发送到手机上并可以实时的看到当下的温度。从而节省人力到现场去查看记录温度,也节省了时间。手机App的开发可分为IOS开发和Android开发,开发环境、开发语言、应用模式都有很大方面的不同。IOS开发时使用到的开发语言是Objective-C,如果需要使用xcode的话需要准备一台mac电脑。如果没有mac电脑的话,PC的配置也需要相对好一些的电脑,成本会比较高一点,但至少要能可以用VMware虚拟机装苹果系统。而Android的开发则一定会用到java,总的来说无论是用IOS还是Android来开发app,对于一个没有学过软件编程的人来说,都是非常困难。蓝牙温控系统就是以Arduino为主体蓝牙通过串口获取温度再体现在手机。Arduino通过传感器来感知周围环境,再通过灯和其他装备对已感知的环境信息进行反馈。大多数的基于Arduino的项目,都是由Arduino和其他一些在PC上运行的软件,它们之间进行通信。而相对于基于51单片机为基础的温控相对于Arduino来说复杂了一点,Arduino易上手,设计中采用模块化的思想,设计方案原理简单、硬件稳定性高。因此,根据该项性能进行课题设计。手机APP是由AppInventor2软件编写,不需要撰写太多复杂的代码,相反的是简单易学。在手机APP中设计了选择蓝牙、连接蓝牙和测温的按钮。蓝牙模块HC-05相比较起来成本较为低一点。传感器选择了响应快、抗干扰能力好且性价比高的DHT11温湿度,使用的频率较高一点。本课题的主要功能就是将温度传感器测到的温度通过Arduino上的蓝牙模块连接到安卓手机,再将温度显示在手机上。(二)系统总体设计方案1、系统总体框图此课题设计了一款基于Arduino为基础的蓝牙温控系统。本系统由Arduino单片机、HC-05蓝牙模块、DHT11传感器和手机app组成。手机蓝牙与Arduino单片机上的蓝牙模块通过串口进行数据的读写,实现用手机获取温度的功能。从而实现Arduino自动进行测量温度。总系统结构框图如图1.1。手机APP手机APP蓝牙模块蓝牙模块Arduino单片机Arduino单片机DHT11DHT11图1.1总系统框图二、系统硬件设计(一)Arduino单片机简介Arduino单片机是一个较STM单片机而言容易掌握和使用的一个控制平台,其主要包含了硬件板和软件。早时在2005年是由意大利老师设计的Arduino电路板,使用起来会类似于JAVA和C语言的开发环境,但Arduino的开发环境和开发语言会更加的简单一点。之后国内使用的人数也在不断增加,所以Arduino越来越受到人们的欢迎。1、常用Arduino版本性能的比较目前Arduino已推出很多不同的型号,下面简单介绍入门者常用的几款型号,主要性能对比如下表1.2所示。刚开始学的时候推荐Arduino是UnoR3,它采用的是USB接口,处理器核心是ATmega328,含有14路数字输入/输出口。当我们设计的系统当中需要用到更多的IO口时,Arduino2560版本是不错的选择。而Arduinonano是ArduinoUSB接口的迷你版本,尺寸很小,小到可以直接面包板上用。Nano3.0处理器核心是ATmega328,具有14路数字输入/输出口,8路模拟输入。而我采用Arduino的原因是因为它相比较价格低一点一点,容易掌握,而且现在被运用的十分广泛,不仅仅是新手小白,校园的课堂上也在使用,被广大师生和学生所使用的。表1.2各版本Arduino性能比较UNONANO2560MUCATmega328ATmega168/328ATmega2560工作电压5V5V5V输入电压7-12V7-12V7-12V数字IO141454模拟输入IO直插版6个贴片版8个816PWM6615时钟频率16M16M16MFlash32K(其中bootloader占用2K)32K(其中bootloader占用2K)256K(其中bootloader占用8K)SRAM2k1/2k8kEEPROM1k0.5/1k4kUSB芯片ATmega8u2/16u2FT232RLATmega8u2/16u2特点目前使用人数最多的型号功能与Duemilanove完全一致最高配置的8位Arduino控制器2、ATmega328芯片介绍ATmega328的引脚功能如图1.3所示。图1.3ATmega328引脚由ATmega328构成的Arduino基本电路如图1.4所示。图1.4ATmega328构成的最小系统(二)蓝牙模块设计1、蓝牙模块简介HC-05串口蓝牙模块采用的是CSR的BC417芯片,支持AT模式,可以根据需要更改角色模式,主模式或者是从模式,使用较为灵活。它可以有两个工作模式:AT命令模式和通讯工作模式。在本课题中我是用的是AT命令工作模式,通过AT指令设置控制参数。2、蓝牙模块的连接和使用蓝牙模块使用的是HC-05蓝牙模块如下图1.5。其中GPIO11(图1.5中红框内的按钮)是能否进入到AT模式的关键,高电平时为AT命令模式,低电平或悬空蓝牙通讯模式不能进入AT命令模式。图1.5HC-05蓝牙模块接电后GPIO8的LED红灯就会闪烁,蓝牙模块进入到不同状态GPIO8的闪烁频率也会跟着有不同。原理图如图1.6.图1.6HC-05电路图引脚接入图如图1.7所示。HC-05的RXD和TXD接入单片机的9脚好10脚,GND接入GND,VCC接入5V,接入后则可进行通讯。图1.7引脚接入图PL2303为USB_TTL转换器如图1.8。电脑采用的都是USB电平,而所有的主控制芯片引脚都是TTL电平,所以我们需要进行电平间的转换。HC-05和PL2303引脚连接如表1.9。图1.8PL2303引脚3、蓝牙模块AT指令PL2303和HC-05蓝牙模块进行连接,接入电脑查看是否成功。具体连接引脚如图1.9。表1.9引脚连接HC-05GNDVCCRXTXPL2303GND5VTXRX引脚连接好之后如图2.1所示,再将PL2303的USB接口接入电脑,接入后HC-05模块,接入电源之前长按GPIO11,当LED灯从快闪变成慢闪,在这种模式下我们才能进行AT指令模式,之后就可以进行蓝牙设置。图2.1具体引脚连接打开串口调试工具,波特率设为38400并且要够回车加换行,输入AT测试是否连接成功,串口助手回复OK即是设置成功,一些串口助手是没有回车加换行的勾选项,所以我们就要手动的在输入完指令后回车换行,否则串口助手就不会有回复。表2.2罗列了一些本课题较为重要的AT指令表2.2AT指令AT测试是否连接AT+NAME=HC-05设置蓝牙名字AT+ROLE=0设置蓝牙为从模式AT+CMODE=1设置蓝牙为任意地址AT+PSED=1234设置蓝牙密码模块进入AT模式有两种方法:(1)模块直接上电,而模块本身的波特率为9600,要进入AT模式时需要将GPIO11置高,也就是按住按钮。(2)第二种就是未上电前将GPIO11置高(按住按钮),此时的串口波特率变为38400,上电后即为进入AT模式。一般我们使用的是第二种方法,既方便又直接。图2.3-2.7为设置过程。设置完成就直接断电,当我们再次接入Arduino单片机进行上电时就可以直接使用了。图2.3先进行AT测试图2.4设蓝牙模式为从模式图2.5设置蓝牙名字图2.6设蓝牙地址为任意地址图2.7设置蓝牙密码(三)DHT11温湿度传感器温湿度传感器如图2.8所示。它的好主要在于它是有校准数字信号输出的温湿度复合传感器,内部使用到了专业的数字模块采集技术和温湿度传感技术,所以他的性能很高。它的数据格式为:8bit湿度整数数据+8bit湿+8bit温度整数数据+8bit温度小数数据+8bit校验位。且它被使用到的范围较广,不仅局限在实验中,还被用在医疗方面、汽车、家电等。使用它的另一个原因就是DHT11稳定性较强,成本低,抗干扰能力强,精确校准。
图2.8温湿度传感器DHT11引脚中NC交是空脚,不需要连接任何脚;P2位任何单片机,DATA可以自己连接设置,VCC接5V、GNG接GND,上完电后电源LED灯就会亮,原理图如下图2.9。图3.1是引脚说明图2.9DHT11原理图图3.1引脚说明当DHT11开始工作时,开始发送信号后,DHT11就从低功耗模式转换到高速模式,信号结束后,DHT11发送响应信号,送出40bit的数据并开始信采集。信号发送如图3.2所示。图3.2时序图如果想要获得实时当下的温度就需要连续测两次,但不要太频繁测量,最好的是两次测量间隔时间长一点。三、软件设计本系统软件设计由Arduino程序和安卓手机端编程设计两部分组成。(一)Arduino程序设计1、Arduino单片机编程介绍(1)Arduino的开发工具介绍Arduino的开发也可以叫集成开发环境,主要用于提供程序的开发,之所以较为集成开发环境是因为它里面包含了编辑器,编译器等。Arduino语言肯定是要有一定的C++语言基础的,但是它有和C语言不同。Arduino只不过是把单片机相关的一些参数都函数化,因此,不需要我们去太过多的去了解它,对于新上手或者不是太懂的AVR的初学者也是可以的。Arduino程序构架声明和很多代码编程差不多,就是要将头文件和全局变量放在代码的最上面,不同的是Arduino之后是初始化变量Setup,Setup只执行一次,Setup()主要功能是用来初始化变量,管脚设置,波特率设置等,之后是voidloop,里面为主要执行代码,这一点类似于C语言中的主函数。(2)Arduino总体流程图Arduino编程思路如下说明,流程图3.3如下,串口打开后,蓝牙串口开始接收串口信号,DHT11传感器进行温度的测量,串口缓存区有数据时,蓝牙串口就开始获取串口缓存区的数据时,之后将测量到的数据显示到手机上。开始开始设置参数设置参数初始化初始化温度获取温度获取串口获得信号串口获得信号 否是蓝牙串口获得数据蓝牙串口获得数据 否是打印温度打印温度图3.3程序流程图(二)安卓手机端程序设计1、APPInventor2编程软件简介AppInventor2是一款专门为安卓手机定制图形化编程的工具,采用了积木式的方法开发Android移动终端应用,通过代码块的拖拽实现程序编写,简单易懂。Android的编程界面可分为组件设计和逻辑设计两部分。2、组件设计蓝牙温控的手机App的组件如图3.4所示。在组件设计的视图中放了一个“蓝牙设置”的按钮,当我们点击该按钮时,就能够扫描到附近的蓝牙装置。找到需要连接的蓝牙地址,再点击“连接装置”按钮,就可以连接到该蓝牙设备了。在该APP中我设置了测量温度的按钮,通过测量温度的按钮,可以通过蓝牙的接收到的温度的信号显示在测温下面的白色显示框里。从而看到测到的具体的实时的温度数。图3.4组件设计3、APPInventor逻辑设计APPInventor的整体的程序设计如图3.5所示,表3.6逻辑设计解说。图3.5逻辑设计图表3.6逻辑设计解析当打开APP时的界面时,断开按钮不可用,屏幕标题为无监控。当蓝牙选择按钮被点击时会获取并显示一些蓝牙的地址和名称选择需要连接的蓝牙时蓝牙显示框里就会显示所显示的蓝牙名称,此时点击蓝牙连接,蓝牙地址屏幕标题为连接成功。测温按钮点进开始测量温度时,蓝牙模块就会获取串口信号,获取信号后就会显示在温度显示框内。当点击断开蓝牙时,蓝牙自动断开,此时蓝牙断开按钮不能使用,且屏幕上方显示蓝牙断开。点击退出,蓝牙温控的APP界面就会直接退出。四、整体运行(一)实物调试1、手机App的下载和安装首先需要登录AppInventor的服务地址MITAppInventor(),登陆界面如图3.7所示。一般情况下可以通过邮箱进行注册,QQ直接进入的话,如果登入界面出现问题的话QQ登录的方法就失效,无法使用,只有通过邮箱加密码的方式才能继续使用。用已经注册好的账户登陆后,进入图3.8所示画面打开自己命好名字的项目,就会出现如图3.9所示程序界面。然后打包APK程序,如图4.1所示。打包可以有两种方式,可以是打包显示二维码,再通过手机来扫描二维码下载到手机里使用如图4.2所示,下载安装后就可以在手机上看到相应的APP图标。也可以是直接打包下载到电脑里。图3.7登录界面图3.8登入后界面图3.9设计APP工作界面图4.1打包APK图4.2生成二维码2、调试整Arduino接线图如图4.7。打开蓝牙温控APP界面如图4.3,找到我们设置好的蓝牙如图4.4,并和蓝牙模块连接成功如图4.5。图4.3打开界面图4.4蓝牙选择图4.5蓝牙连接然后进行蓝牙获取温度的代码上传,如图4.6为主要HC-05读取温度的代码上传。当蓝牙处于通讯状态是默认串口波特率为9600,所以代码这里要改成9600。当蓝牙接入Arduino单片机时,HC-05模块的RX接入单片机的0脚,TX接入单片机的1脚。当蓝牙接收到串口的数据时,就会再传到手机上和显示在显示屏上。图4.6HC-05读取温度上传完成后,蓝牙模块就开始获取串口信号,连接成功后我们可以点击APP测温按钮,当蓝牙模块获得串口信号后,手机屏幕就会显示出此时温度并与显示屏上的数据相同如图5.7。图4.7完整接线图4.8数据获得测量完毕后点击断开蓝牙屏幕标题则会显示蓝牙断开如4.9所示,点击退出则直接退出APP界面。图4.9断开蓝牙界面总结本课题设计的是一个以Arduino为基础的用蓝牙进行测温的系统设计,主要实现了通过蓝牙的方式将数据传到手机上,之后在手机上就可以查看到测量的温度值。其中通过用串口调试助手对蓝牙模块进行工作模式、蓝牙命名、地址设置和密码的设置,再将蓝牙模块与手机蓝牙进行相连接,最后通过手机APP的操控进行温度数据传入手机上。通过蓝牙从而减少了传统的测温方法和记录温度效率低的问题。在开始选题时我就是很迷茫,虽然手机软件在课堂中学到过,但是耐不住学的不精湛,从而具体的逻辑设计进行的并不是很顺利,不断的试用再修改。但是随着后面指导老师的指导,就渐渐地顺利了下去。完成之后,我发觉到即使是一个简简单单的设计,如果适用于它所适合的环境中去,那么这个设计的意义和价值也就体现出来了。在设计的过程中并不是一帆风顺的。在进行最开始的蓝牙信息设置时,第一就是串口问题,PL2303转换器在电脑上无法找到串口,我就使用了在学校学到的方法,再加上在网页上找到的别人解决这一问题的方法,下载一个3.3.2105版本的USBCOM驱动,之后就解决了这个问题。第二个就是AT指令设置问题,我以为只要将GPIO11置高一次就可以进行后面的设置,但是我发现并不能,我尝试了很多次发现我发送了AT指令后并没有收到回复,我就去取网页上搜索别人进行AT指令设置的具体步骤,就看到有一个人说需要一直将GPIO11进行置高才可以,我就去尝试了一下,一直按住GPIO11这个按钮,在进行AT指令设置,之后就进行的很顺利。之后的就是在Arduino的编程思路上出现了问题,一开始我不懂这个编程思路指的是什么,上网查并没有得到什么思路,但是最后是在指导老师那里知道了编程思路就是对运行的主程序进行解释,所以我又去试着去理解每一部分的代码分别代表着什么意思、实现的是哪个步骤,但我自己理解下的编程流程图还是没有写到点子上,最终还是通过指导老师的帮助解决了这个问题。在APP制作方面也出现了一点点的问题,我对界面的设计的空间代表了什么、作用又是什么一无所知,所以刚开始的界面设计制作进度很慢,而且漏洞百出,试用了发现并不能实现功能,最终去找了这方面的资料进行学习,也对别人做出来的界面设计进行解读,最后还是解决了这个问题。在这个过程中有过他人质疑也有过自我怀疑,但还是要在质疑中继续做下去。我明白我准备的资料并不是很齐全甚至可以说不齐全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业编财会岗财务报表分析全真模拟题库及解析
- 电信诈骗概念课件
- 【1658】扩张型心肌病
- 第42章人工合成抗菌药
- 患者依从性与治疗效果评估
- 口腔门诊四手操作护理质量持续改进报告
- 项目分包合同安全条款管理制度
- 2026年气动系统维保技能题库
- DB43-T 2916-2024 气瓶质量安全追溯信息系统建设通.用要求
- 幼儿园消防安全检查标准
- 银行从业资格考试公司贷款及答案解析
- 电子辐射校准实验室项目报告表
- 友善待人(教学设计) 2025-2026学年八年级道德与法治上册(统编版2024)
- 数智企业经营沙盘模拟实训教程-认识沙盘
- 医院供应室去污区操作规范
- 低压线损管理办法
- CJ/T 542-2020模块化雨水储水设施
- 鞍区肿瘤护理
- T-NXJX-028控制阀检维修规范
- 海口市地下综合管廊试点工程终稿
- 2024中铝国际贸易集团有限公司招聘4人笔试参考题库附带答案详解
评论
0/150
提交评论