版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2015网络工程学年设计题 目: 基于Arduino空气质量检测器开发系 别: 电子信息工程学院 班 级: 2011级网络工程(物联网技术方向) 学 号: 姓 名: 指导教师: 起讫日期: 基于Android空气质量检测器开发摘要:空气环境(温度、湿度、污染物等)是人类生存的自然环境的重要组成部分,也是人类生存、发展的基本物质基础。随着科学技术、生产条件、生活水平的改善和提高,建筑结构的封闭化室内办公人员的增加,Indoor Air Quality(IAQ)室内空气品质的研究吸引了越来越多人的关注。人的一生有三分之二的时间在室内度过的。本文为了便于设计和测量,选取了DHT11数字温湿度传感器和
2、DSM501灰尘传感器(可按需要自由添加其他传感器),研究设计了一种旨在实现室内空气温度、湿度、有害气体的监测的空气检测器系统。其设计方案基于Arduino单片机,相关传感器来实现。将传感器回路输出的信号经由Arduino单片机进行数据处理,由LCD1602点阵式液晶屏显示数值。文中详细介绍了数据采集子系统、数据处理过程、数据显示子系统以及单片机与PC机通信的设计方法和过程。 关键词:室内空气品质、DHT11数字温湿度传感器、DSM501灰尘传感器、Arduino单片机目 录第一章 绪论11.1 选题背景与意义11.2 与本课题相关的国内外研究状况21.3 主要研究内容3第二章 运行
3、环境、硬件选取及技术简介42.1 系统运行环境42.2 系统开发环境42.3 硬件选取42.3.1 Arduino开发平台42.3.2 传感器模块5温湿度传感器模块5粉尘传感器模块11蓝牙模块15液晶显示模块152.4 技术简介212.4.1 Arduino开发技术212.4.2 Android开发技术222.4.3 物联网技术22第三章 软件设计分析243.1 编译语言的选择243.1.1 Arduino语言243.1.2 Android语言243.2 软件功能需求243.3 软件模块设计253.3.1 主程序模块253.3.1 液晶显示模块29第四章 系统总体设计304.1 系统网络拓扑图
4、304.2 系统功能模块图设计32第五章 数据库设计335.1 IAQ数据库表设计33第六章 仿真调试346.1系统硬件调试346.6.1 常见的硬件故障346.6.1 硬件调试方法346.2系统软件调试35第七章 总结377.1主要结论377.2 展望37参考文献38第一章 绪论随着科学技术、生产条件、生活水平的改善和提高,建筑结构的封闭化室内办公人员的增加,Indoor Air Quality(IAQ)室内空气品质的研究吸引了越来越多人的关注。美国科学家在80年代末的一项调查中发现,室内有害污染物浓度比室外高,有的甚至高达100倍。我国有关部门在1994年的一次调查中也发现,城市室内空气的
5、污染程度比室外严重,有的超过室外56倍。据估计,人的一生平均90%的时间在室内度过,室内作为现代人类最主要的活动场所之一,其环境品质与人类健康息息相关。由此造成的病态建筑综合症(SBSSick Building Syndrome):现代都市病,包括头痛、恶心 疲乏、失眠、记忆力衰退 皮肤、粘膜有刺激感(眼红、流泪、咽干) 呼吸紊乱等也越来越突出。IAQ在健康方面的影响:美国环保署(EPA)调查表明:在美国,IAQ问题是有关全民健康的首要问题之一,受其影响的美国人口多达3000万,造成的经济损失超过了400亿美元/年,这些数字令人触目惊心;加拿大卫生组织调查表明:68%的疾病与室内环境污染有关,
6、其中80%90%的癌症与居住环境和生活习惯有关;英国科学家汉密尔顿测验了220名英国人血液中60种化学元素的平均含量,发现其与地壳中这些元素的含量分布相当;湖南省相关部门对空气污染区及清洁区9-10岁儿童为调查对象,研究空气污染对儿童免疫力的影响,结果显示:污染区儿童的免疫能力仅为清洁区儿童免疫能力的1/3;据统计,我国每年有11万人因IAQ不好而导致死亡; 从我国“室内环境监测中心”对IAQ监测力度越来越大的趋势也可以看出,此问题在我国也是越来越严重。IAQ在工作效率及社会经济方面的影响:美国“职业安全及健康管理局”估计因室内环境质量恶劣而导致每个员工每天损失14-15分钟的工作时间,不仅损
7、失了生产力,使成本上升,而且也导致医疗费用的增多影响整个社会的经济利益;美国的另一项调查得知由于IAQ恶劣而导致总经济成本的损失每年高达47-54亿美元(没有包括对建筑材料及各种器材的损失);香港环保署的首份IAQ调查表明香港办公室和公共场所的IAQ不佳,造成医疗费、生产力和机电费的损失每年高达176亿元。鉴于此,人们认识到解决IAQ问题的重要性与迫切性,同时IAQ问题已经成为建筑环境、医药卫生、智能监测、自动控制等研究领域所关心的问题。1.1 选题背景与意义目前由于建筑材料品质不一、劣质燃料、抽烟、通风不良等原因,室内的空气状况往往不如室外,尽管大量的空调系统被应用到室内空间,但往往为了节能
8、,减少自然通风了而利用回风,使IAQ进一步恶化,同时出现的舒适性空调仅着眼于热舒适,忽视了空气净化,从而导致了一些负面作用: SBS(Sick Building Syndrom)建筑物综合症、BRI(Building Rolated Illiness)建筑物关联症和MCS(Multiple Chemical Sensitivity)化学物资过敏症等。随着人们对IAQ认识程度的加深,以及健康保健知识的发展,人们不仅希望知道是什么污染物在作怪,更希望知道污染的浓度水平如何?这种浓度会对健康造成什么短期和长期危害?对存在的污染应该如何控制治理? 在这种情况下,设计开发一套空气质量监测系统是有现实意义
9、的。目前,对于室内环境监测具仪表已经有很多种,虽然此类仪表成本不是很高,监测速度较快,但是绝大数产品只是用来监测,不具备自动控制调节室内空气质量的能力。实际上,单纯的监测不能提供经济可行的空气质量调节措施,因此只有以控制作为监测的后备支持,监测工作才可以更深入持久地开展下去,才能达到监测和控制的有机结合,尽快为人们创造良好的室内环境。因此,本文基于量化监测,提出“空气质量检测器”系统,此系统旨在实现室内空气温度、湿度、有害气体的预警监测,为人类营造一个健康的室内生存空间。1.2 与本课题相关的国内外研究状况气体传感器测定粉尘成为近年来粉尘检测研究的新热点。早在1983年,压电类粉尘传感器就已问
10、世。这种传感器可以不需要对样品进行任何处理就可以测定,但易受水分子的影响而使晶体震动频率发生漂移,故基本无实用性。为适应室内空气粉尘现场快速检测的要求,目前已开发出不少粉尘快速测定仪,这些仪器可直接在现场测定粉尘浓度,操作方便,适用于室内和公共场所空气中粉尘浓度的现场测定,也适用于环境测试舱法测定木质板材中的粉尘释放量。但这些仪器的工作原理、响应性能、适应范围等都不同。在测试粉尘等有害气体方面,国外比较出名的有:美国ESC公司生产的Z一300粉尘检测仪、英国PPM公司生产的PPM-400粉尘检测仪;国内的有:江苏安普电子工程有限公司生产的400型粉尘分析仪、北京宾达绿创科技有限公司生产的粉尘测
11、定仪抑一308等。这些仪器可实现对有害气体的检测功能,适用于专业检测机构或实验研究机构。准确测定粉尘、苯、氨等有害气体的设备昂贵(如英国PPM公司生产的PPM400粉尘仪约两万多元),测定时间较长,每隔一段时间就需进行重新标定,需要专业人员进行操作,很难连续测定;目前国内外产品的设计差异主要集中在监测传感器和控制单片机芯片的选用,操作方面国外的产品操作界面方便,功能更加完备。1.3 主要研究内容本课题主要集中在空气质量的监测、显示两个方面:(1)确定监测对象(2)室内空气品质监测仪的各个硬件模块的设计(3)室内空气品质监测仪的各个软件模块的设计(4)整个系统的仿真调试(5)总结本文研究工作以及
12、在研究方面存在的不足,提出了进一步研究的展望第二章 运行环境、硬件选取及技术简介2.1 系统运行环境运行环境如表2-1所示。表2-1 运行环境名称要求配置操作系统Windows XP/win7/win8数据库服务器MySQLAndroid系统Android 2.3.3以上开发平台Eclipse、Arduino UNO开发平台2.2 系统开发环境本系统是基于Arduino开发平台开发的。系统中数据服务中心采用的数据库是MySQL。系统主要以Eclipse为开发工具,运用Java、Android等技术进行开发,开发环境如表2-2所示表2-2 开发环境分类名称版本语种开发平台Arduino1.5.6
13、-r2中文操作系统WindowsXP/win7/win8中文编译器Java Development Kit (JDK)jdk1.7.0_07英文数据库MySQL5.5英文Android客户端开发工具Eclipseeclipse-java-juno-SR1-win32英文Android OSAndroid for Google APIs(Google Inc)Android 2.2.3以上英文2.3 硬件选取2.3.1 Arduino开发平台本系统是基于Arduino开发平台开发的。实物图如图2-1所示。图2-1 Arduino UNO2.3.2 传感器模块温湿度传感器模块温湿度传感器是指能将温
14、度量和湿度量转换成容易被测量处理的电信号的设备或装置。温湿度传感器一般是测量温度量和相对湿度量。鉴于测量温湿度的范围不大,精度要求不高故采用数字温湿度传感器DHT11。具体实物图如图2-2所示:图2-2 DHT11数字温湿度传感器具有的特性:相对湿度和温度测量、全部校准,数字输出、卓越的长期稳定性、无需额外部件、超长的信号传输距离、超低能耗、4引脚安装、完全互换。DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并
15、与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。应用领域:暖通空调、测试及检测设备、汽车、数据记录器、消费品、自动控制、气象站、家电、湿度调节器、医疗、除湿器。传感器信息见表2-3:表2-3 D
16、HT11传感器信息型号测量范围测湿精度测温精度分辨力封装DHT112090RH 050±5RH±214针单排直插1、 传感器性能说明见表2-4:表2-4 传感器性能说明参数条件MinTypMax单位湿度分辨率111%RH16Bit重复性±1%RH精度25±4%RH050±5%RH互换性可完全互换量程范围03090%RH252090%RH502080%RH响应时间1/e(63%)25,1m/s 空气61015S迟滞±1%RH长期稳定性典型值±1%RH/yr温度分辨率111161616Bit重复性±1精度±1
17、±2量程范围050响应时间1/e(63%)630S2、 接口说明建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻接线方式如图2-3:图2-3 典型接线电路3、电源引脚DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。4、串行接口 (单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操
18、作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集,
19、采集数据后转换到低速模式。(1).通讯过程如图2-4所示图2-4 通讯过程操作时序如图2-5,总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。图2-5 操作时序总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以5
20、0us低电平时隙开始,高电平的长短定了数据位是0还是1。格式见下面图示,如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图2-6所示图2-6 数字0信号表示方法数字1信号表示方法如图2-7所示图2-7 数字1信号表示方法5、测量分辨率测量分辨率分别为 8bit(温度)、8bit(湿度)。6、电气特性如表2-5表2-5 电气特性参数条件mintypmax单位供电DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次注:采
21、样周期间隔不得低于1秒钟。7、应用信息7.1工作与贮存条件超出建议的工作范围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。要加速恢复进程/可参阅7.3小节的“恢复处理”。在非正常工作条件下长时间使用会加速产品的老化过程。7.2暴露在化学物质中电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。7.3恢复处理置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校
22、准时的状态。在50-60和< 10%RH的湿度条件下保持2小时(烘干);随后在20-30和>70%RH的湿度条件下保持5小时以上。7.4温度影响气体的相对湿度,在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。7.5光线长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。7.6配线注意事项DATA信号线材质量会影响通讯距离和通讯质
23、量,推荐使用高质量屏蔽线。8、封装信息如图2-8,图2-8 DHT11封装图9、 DHT11引脚说明见表2-6。表2-6 引脚说明Pin名称注释1VDD供电 35.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极本设计采用的为DHT11模块,原理图为图2-9:图2-9 DHT11模块接线图粉尘传感器模块灰尘传感器DSM501可以感知烟草产生的烟气和花粉,房屋粉尘等,加热自动进气装置,可调电阻设置检测灰尘的大小。采用与粒子计算器相同原理为基础,检测出单位体积粒子的绝对个数。具体实物图如图2-10所示:图2-10灰尘传感器DSM501灰尘传感器DSM501主要特性:
24、60;灰尘传感器DSM501可以感知烟草产生的烟气和花粉,房屋粉尘等 ;1微米以上的微小粒子;体积小,重量轻,便于安装;5V的输入电路,便于信号处理;内藏气流发生器,可以自行吸引外部大气;保养简单,可以长期保持传感器的特性。电器参数如图2-11所示:图2-11电气参数输出波形PWM如图2-12所示:图2-12 低脉冲率:RT=LT/ UT x100%特性曲线如图2-13所示::图2-13 特性曲线原理结构图如图2-14所示:图2-14引脚说明如图2-15所示:1、 输出脚Vout 2 :此脚位为普通输出脚位,灵敏度已预设定,最小粒子检出能力为1 m;2、 输出脚Vout 1 :此脚位
25、为可调输出脚位,灵敏度可通过控制脚来调整,默认为Vout 2的2.5倍即最小粒子检出能力为2.5m;3、 控制脚: 通过在此脚与GND之间加一个电阻可调整Vout 1的最小粒子检出水平,调整电阻值可调整Vout 1的灵敏度。图2-15蓝牙模块在蓝牙模块的采集上采用HC-05主从一体机蓝牙,HC-05嵌入式蓝牙串口通讯模块具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT
26、命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。具体实物图如图2-16所示:图2-16 HC-05主从一体机蓝牙液晶显示模块本课题所要显示的数据分别是粉尘浓度和室内的温度、湿度的测量值,故选用2行16个字符的LCD1602作为显示模块,满足显示要求。液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面
27、以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图2-17:图2-17 1602字符型液晶显示器实物图LCD1602的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图2-18所示:图2-18 1602LCD尺寸图1602LCD主要技术参数:显示容量:16x2个字符芯片工作电压:4.5V5.5V工作电流:2.0Ma(5V)模块儿最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm引脚功能说明:1602
28、LCD采用标准的14脚(无背光)或16脚(有背光)接口,各引脚说明如表2-7所示:表2-7 1602引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接+5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:PS为寄存器选择,高
29、电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,夜景模块执行命令。第714脚:D0D7为八位双向数据线。第15脚:背光源正极。第16脚:背光源负极。LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表2-8所示:表2-8 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示0000000001
30、2光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3
31、:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RA
32、M地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序如表2-9:表2-9 基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无读写操作时序如图2-19和2-20所示:图2-19 读操作时序图2-20 写操作时序1602LCD的
33、RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-21是1602的内部显示地址。图2-21 1602LCD内部显示地址第二行第一个字符的地址是40H,写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是:01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的
34、状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。LCD1602的一般初始化过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置LCD1602的具体接线路图如图2-22所示。图2-22 LCD1602接线电路图2.
35、4 技术简介本系统涉及的主要技术有Arduino开发技术、Android开发技术、物联网技术。2.4.1 Arduino开发技术Arduino,是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,收录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(base
36、d on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。你可以自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载. 硬件参考设计 (CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地 根据你自己的要求去修改他们.Arduino可以使用开发完成的电子元件例如Switch或sensors或其他控制器、LED、步进马达或其他输出装置。Arduino也可以独立运作成
37、为一个可以跟软件沟通的接口,例如说:flash、processing、Max/MSP、VVVV或其他互动软件。 2.4.2 Android开发技术Android在05年被谷歌收购,经过改良打造后,谷歌公司在2007年11月5日正式发布了这个以Linux为系统内核的移动终端设备操作系统,由于Linux是众所周知的开源操作系统,使得Android移动设备操作平台成为完全真正意义上开源的支持移动设备的平台11。谷歌的这一举动,使得Android在全世界开始风靡,各种基于Android操作系统的应用软件在各行各业也开始层出不穷。Android的系统架构包含四层分别是Application、Applic
38、ation Framework、Libraries和Android Runtime、Linux Kernel,其系统架构图如图2-5所示:图2-5 Android系统架构图(来自谷歌 Android) 2.4.3 物联网技术物联网从字义可知就是“物物相连的互联网”,具体来说,就是在制定好协议的情况下,利用感知设备获取我们所关心的事物信息,并将信息接入各种网络进行交流,形成一种可以实时信息采集、传输、控制、及信息服务的网络。而物联网实时信息系统分为六个部分:物联网节点、网关、传输网络、数据服务中心、信息服务接入网络及信息服务客户端,物联网实时信息系统组成图如图2-6所示。图2-6 物联网实时信息
39、系统组成图第三章 软件设计分析3.1 编译语言的选择本次开发当中使用到Arduino语言和Android编程语言:3.1.1 Arduino语言Arduino,是一个基于开放原始码的软硬体平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开
40、发环境(based on Processing)来实现 的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。Arduino语言是建立在C/C+基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化。3.1.2 Android语言Android开发采用Java语言,Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C+语言的“形式和感觉”,但它要比C+语言更易于使用,而且在
41、编程时彻底采用了一种“以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。3.2 软件功能需求系统软件主要由温湿传感器数据采集模块、粉尘传感器数据采集、串口控制模块、蓝牙模块等模块构成,各模块功能概述如表3-1所示。功能模块功能描述温湿度传感器采集模块对温湿度测点进行实时监测粉尘传感器采集模块对PM2.5测点进行实时监测串口模块1、温度、湿度测点数据传输2、PM2.5测点数据传输
42、3、数据分析4、优化数据备份5、数据备份蓝牙模块1、温度、湿度测点数据传输2、PM2.5测点数据传输3、蓝牙模块通讯表3-13.3 软件模块设计3.3.1 主程序模块主程序运行流程图如图3-1所示。由主程序流程图可以看出,软件要实现的主要功能是实现对传感器信号的数据采集,然后进行数据的计算、分析、送液晶进行显示功能。程序开始时,对系统进行初始化,包括单片机的各寄存器、RAM、定时器装载初值、中断设置及各模块初始化等。完成初始化后,CPU等待传感器传入信号及AD转换结束,从而完成当前监测参数的正确显示。开始初始化DHT11传感器数据采集粉尘传感器采集显示数据图3-1Arduino语句代码:#in
43、clude <Wire.h> #include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27,20,4);int DHpin = 7;int PMpin = 8;unsigned long duration;unsigned long starttime;unsigned long sampletime_ms = 3000;unsigned long lowpulseoccupancy = 0;float ratio = 0;float concentration = 0;float pm25val = 0; float
44、 pm25coef = 0.00207916725464941; byte dat5;byte read_data() byte data; for(int i=0; i<8; i+) if(digitalRead(DHpin) = LOW) while(digitalRead(DHpin) = LOW); /等待 50us; delayMicroseconds(30); /判断高电平的持续时间,以判定数据是0还是1; if(digitalRead(DHpin) = HIGH) data |= (1<<(7-i); /高位在前,低位在后; while(digitalRead(
45、DHpin) = HIGH); /数据1,等待下一位的接收; return data;void start_test() digitalWrite(DHpin,LOW); /拉低总线,发开始信号; delay(30); /延时要大于 18ms,以便 DHT11 能检测到开始信号; digitalWrite(DHpin,HIGH); delayMicroseconds(40); /等待 DHT11 响应; pinMode(DHpin,INPUT); while(digitalRead(DHpin) = HIGH); delayMicroseconds(80); /DHT11 发出响应,拉低总线
46、80us; if(digitalRead(DHpin) = LOW); delayMicroseconds(80); /DHT11 拉高总线 80us 后开始发送数据; for(int i=0;i<4;i+) /接收温湿度数据,校验位不考虑; dati = read_data(); pinMode(DHpin,OUTPUT); digitalWrite(DHpin,HIGH); /发送完一次数据后释放总线,等待主机的下一次开始信号;void setup() Serial.begin(9600); pinMode(DHpin,OUTPUT); pinMode(PMpin,INPUT); s
47、tarttime = millis(); lcd.init(); / Print a message to the LCD. lcd.backlight(); lcd.setCursor(0,0); lcd.print(" Air Detector"); lcd.setCursor(0,1); lcd.print(" Welcome !"); delay(2000);void loop() duration = pulseIn(PMpin, LOW); lowpulseoccupancy = lowpulseoccupancy+duration; rat
48、io = lowpulseoccupancy/(sampletime_ms*10.0); / Integer percentage 0=>10 concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; / using spec sheet curve concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; / using spec sheet curve / PM2.5 calc pm25val = pm25coef * concentra
49、tion * 10; / 10 to transform 0.01 cf to 0.1 ft Serial.print("PM2.5 = "); Serial.print(pm25val); Serial.println("g"); lowpulseoccupancy = 0; starttime = millis(); start_test(); Serial.print("Current humdity = "); Serial.print(dat0, DEC); /显示湿度的整数位; Serial.print('.
50、9;); Serial.print(dat1,DEC); /显示湿度的小数位; Serial.println('%'); Serial.print("Current temperature = "); Serial.print(dat2, DEC); /显示温度的整数位; Serial.print('.'); Serial.print(dat3,DEC); /显示温度的小数位; Serial.println('C'); lcd.setCursor(0,1); lcd.print("Humidity = ")
51、; /lcd.setCursor(14,1); lcd.print(dat0); lcd.print("."); lcd.print(dat1); lcd.print("%"); delay(2000); lcd.setCursor(0,1); lcd.print("Tempera = "); /lcd.setCursor(14,1); lcd.print(dat2); lcd.print("."); lcd.print(dat3); lcd.println("C "); delay(2000)
52、; lcd.setCursor(0,1); lcd.print("PM2.5 = "); /lcd.setCursor(14,1); lcd.print(pm25val); lcd.print("ug/m3"); delay(2000);3.3.1 液晶显示模块液晶显示D0到D7口接P0.0到 P0.7,单独使用一个口,为了避免数据的干扰,由于P0口没有上拉电阻,所以需要一个排阻进行电压的扩大。在本设计中,由于不需要读液晶操作,故只介绍写操作。LCD1602的写工作时序图如图3-2所示:图3-2当处于写指令时,RS为低脉冲,R/W为低脉冲,D0-D7=指
53、令码,E=高脉冲。当处于写数据时,RS为高脉冲,R/W为低脉冲,E为高脉冲,D0-D7=数据。流程图如图3-3:图3-3第四章 系统总体设计4.1 系统网络拓扑图本系统网络拓扑图如图4-1所示, 本系统由物联网节点、网关、传输网络、数据服务中心、信息服务接入网络、信息服务客户端六个部分组成。其中,物联网节点:各个传感器模块收集各种数据,本项目需要用到DHT11温湿度传感器、DSM501A灰尘传感器等。网关:Arduino开发板,将程序烧写至Arduino开发板上,Arduino开发板对由传感器模块返回的数据进行解析得到有用的数据,通过串口与PC进行通讯,通过蓝牙模块将信息发送给手机终端。数据服务中心:P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 致800运动员的加油稿汇编15篇
- 双11活动策划方案图片内容
- 昆虫记读后感600字范文初中(30篇)
- 生产实习报告范文6篇
- 水库抗旱方案
- 勤工俭学工作总结
- 《设计中的人机关系》说课稿(附教学设计)
- 天津市2024-2025学年高二上学期11月期中物理试题(无答案)
- 山东省枣庄市峄城区2024-2025学年五年级上学期期中道德与法治试题
- 河南省通许县+2024-2025学年七年级上学期期中考试道德与法治试卷
- 音乐学科家长会
- 《云计算技术及应用》期末试卷二(含答案)
- 床单位终末清洁与消毒模拟实操培训课件
- 太阳能光伏材料回收与回收利用投资报告
- 启蒙思想家卢梭
- 诊所计划书范本
- 小学一年级新生学位申请表
- 西泠印社小学三年级上册书法
- 粮油保管员(中级)技能理论考试题库-上(单选题汇总)
- 医院志愿者培训课件
- 幼儿园中班健康《不一样的气味》PPT
评论
0/150
提交评论