【基于单片机的一款集成化、自动化、智能化的生态鱼缸设计10000字(论文)】_第1页
【基于单片机的一款集成化、自动化、智能化的生态鱼缸设计10000字(论文)】_第2页
【基于单片机的一款集成化、自动化、智能化的生态鱼缸设计10000字(论文)】_第3页
【基于单片机的一款集成化、自动化、智能化的生态鱼缸设计10000字(论文)】_第4页
【基于单片机的一款集成化、自动化、智能化的生态鱼缸设计10000字(论文)】_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的一款集成化、自动化、智能化的生态鱼缸设计目录TOC\o"1-3"\h\u4521基于单片机的一款集成化、自动化、智能化的生态鱼缸设计 135821引言 2184031.1研究背景 222301.2研究目的及意义 3187301.2.1研究目的 3214301.2.2研究意义 346832方案论证 5138402.1方案要求 5321612.2方案可行性分析 5230422.3系统分析设计 721982.3.1硬件设计分析 7232652.3.2软件设计分析 836763硬件设计 10265003.1单片机系统设计 10269303.1.1单片机设计 10176433.1.2电源系统框架设计 10140523.1.3复位电路设计 1269653.2温度传感器设计 1288313.3浑浊度传感器设计 1318233.4时钟模块设计 15256593.5蜂鸣器模块设计 16319043.6水位检测模块设计 17292353.7显示屏模块设计 17111143.8 WIFI模块设计 18285153.9其他硬件模块设计 19236303.9.1继电器模块设计 1951173.9.2舵机模块设计 20140333.9.3灯光模块设计 20248633.9.4LED模块设计 2162733.9.5按键模块设计 21172564软件设计 22132484.1程序设计 2289584.2手机APP界面设计 2966935结果分析 3153795.1实物 31139835.2检测温度测试 31167885.3自动充氧测试 3276835.4自动换水测试 32273275.5自动喂食测试 3342635.6灯光控制测试 3392275.7远程控制测试 3377366总结与展望 361引言伴随着我们国家经济和科技快速发展,人们的生活水平逐渐提高,人们开始追求较高的生活质量和生活品味。同时繁华都市的快节奏生活,不仅让人们感到身心疲惫,内心越发的向往大自然的宁静悠然的生活。在这种情况下,饲养宠物或养殖植物逐渐成为一股潮流,越来越多的人喜欢通过这种方式来缓解自己烦躁的心情,陶冶自己的情操,让自己的心灵得到安慰,观赏养鱼也逐渐成为一种休闲的生活方式。鱼草生活融洽的鱼缸,更像是大自然宁静生活的映射。它不仅可以作为一种装饰品放在家里、办公室,为居室环境增添几分绿色,还可以陶冶人的情操,培养人的性格。1.1研究背景“鱼缸”又被称为“水族箱”,早在170年前,“水族箱”仅被定义为是一个水容器,主要可以用来养动物和植物。最早是由英国举办的展会,展示了第一个“鱼缸”,掀起了一股水族饲养的潮流,引爆水族行业的发展。但由于养鱼技术和设备限制,观赏鱼的死亡率高的离谱,水族行业发展滞后。随着科技的发展,观赏鱼的成活率大幅度提升。随着人们生活观念的转变,在21世纪早期人们就逐渐认为“水族箱”是一个小型生态系统,并将其安置在家庭、办公室、宾馆等场所,像绿植盆栽一样当作一种室内的装饰品。[1]随着近几年来,高新科技的快速发展,物联网和人工智能话题热度不断上升。智能家居也发展火热,现在设备的都趋向智能化、自动化。尽管智能家居发展快速,但智能鱼缸的发展却极为缓慢。传统的生态鱼缸功能较为单一,大多数都是仅有换水或者充氧或者喂食功能,并没有实现将多个功能集合起来。如果自己买换水器、充氧泵等单一的机械设备进行组装,不仅会造成鱼缸生产成本高、影响美观,并且仍需要手工操控才能实现充氧、换水、投喂食物等相关的功能,并没有实现自动化。这样一来不仅会造成资源浪费,还存在着诸多不便。1.2研究目的及意义1.2.1研究目的养鱼是一件比较耗费时间和精力的事情,观赏鱼对生活环境条件要求很高,不仅需要充足的食物,还要有干净的水质环境、充足的水中氧含量。在目前的生活节奏下,一旦人们由于工作忙、出差、旅游等原因,没有时间对观赏鱼缸进行管理,就会导致鱼缸内的生物死亡。在智能化的现代,传统的鱼缸已无法满足人们的智能化、自动化需求。在基于智能鱼缸的市场需求下,本文研究设计了一款生产成本低,实用性强的智能鱼缸。它以STM32F103RCT6单片机为控制CPU,将多个控制功能集于一体,搭配无线通讯技术,实现鱼缸集成化、智能化、自动化。1.2.2研究意义本次设计的智能鱼缸能实时显示鱼缸内水的温度、浑浊度,能定时且定量喂养饲料,保证鱼儿能有充足的食物供给,并能自动置换鱼缸的水,让鱼儿生存的水质保持干净,能定时启动充氧泵,补充水中的氧含量,给鱼儿营造良好的生存环境,能控制灯光,增加鱼缸的观赏性,还可以通过按键修改定时时间或者启动相关控制功能,并能通过手机APP远程控制和管理,充分实现了鱼缸自动化、无人化智能管理。对于爱好养鱼的人来说,使用这个智能鱼缸,就能实现人不在家,也能远程控制鱼缸换水,达到净化水质;能远程控制充氧,保证水中的含氧量充足;能远程控制喂食,保证水中食物充足,极大地提高了鱼缸内生物的存活率。

2方案论证2.1方案要求 设计一款集成化、自动化、智能化的生态鱼缸:以单片机为控制核心,搭配相关控制器件及传感器,实现鱼缸定时供氧、自动换水、定时喂食、灯光照明等功能,并能实时显示水温、水质、定时时间等参数。搭配远程控制功能,能通过APP发送指令,控制鱼缸相关功能的开闭、控制参数的设置修改以及历史数据查询等。功能及实现方式见表2.1。表2.1具体功能及实现方式功能实现方式喂食通过人工按键/APP下发命令/定时任务自动控制喂食器喂食换水通过人工按键/APP下发命令/水质/水位变化自动控制水泵换水显示通过传感器采集相关数据,经过CPU处理,在显示屏显示数值充氧通过人工按键/APP下发命令/定时任务自动控制充氧泵充氧灯光通过人工按键/APP下发命令控制灯带的开关2.2方案可行性分析1集成化:结合传感器及电路设计技术,将测温仪、水泵、灯带、充氧泵、喂食器等单一的鱼缸控制器件组合起来,设计成核心硬件电路,这部分硬件电路由单片机控制相应I/O口,实现鱼缸集成化。2.自动化:选择单片机STM32F103系列的RCT6芯片为控制核心芯片,结合编程设计控制参数如:水温、水质、定时时间等,来实现对控制器件的自动控制,实现鱼缸自动化。3.智能化:结合物联网技术,并在硬件中搭配WIFI模块,通过WIFI通信协议,实现手机APP与单片机的通讯。通过将手机发送的指令传达给CPU处理,来实现对鱼缸无线监控,实现鱼缸智能化。具体功能组成分析如下:温度监控系统:能实时检测鱼缸的水温,并设定温度阈值,当鱼儿生存的环境温度超过阈值时,启动蜂鸣器报警鸣叫,警示鱼缸内温度异常。智能充氧系统:能设定充氧时间,当实际时间达到设定时间,则启动充氧泵,自动完成供氧操作。智能换水系统:能实时检测鱼缸的水质,并设定浑浊度阈值及水位上下限,当浑浊度超过阈值或水位低于下限,则启动抽注水泵,自动完成换水操作。智能喂食系统:能设定喂食时间,当实际时间达到设定时间,则开启喂食器,自动完成喂食操作。灯光照明系统:能控制灯光照明,开启灯光来增加鱼缸观赏性。显示系统:能显示实时时间、鱼缸温度、水质浑浊度、定时时间等数据。按键控制系统:能通过鱼缸控制面板上的按键,控制器件、设定阈值及定时时间等操作。无线监控系统:能通过APP查看鱼缸数据,能控制器件、设定阈值及定时时间等操作功能流程图分析如图2.2所示。图2.2功能流程图2.3系统分析设计系统设计主要分为硬件和软件设计,通过软件和硬件相结合来实现功能。如图2.3所示。图2.3系统框图2.3.1硬件设计分析本系统硬件部分选择单片机为控制核心,搭配外围模块设计而成。硬件设计中使用AltiumDesigner15软件来绘制电路原理图。该软件使用方便,支持自己绘制原理图及封装库。硬件设计主要以下几个模块:1.单片机核心控制模块:以STM32F103RCT6为核心芯片,结合晶振、复位电路。通过对引脚信号及模块的数据处理,来控制相关器件。2.传感器模块:由温度传感器和浑浊度传感器分别采集鱼缸的水温和水质数据,将信号传输给单片机进行处理,主要是负责检测鱼缸的环境温度变化和水质变化。3.时钟模块:主要是负责提供一个精确时钟给系统,作为定时任务的判断时钟4.蜂鸣器模块:实现当鱼缸内的环境温度异常时,报警鸣叫。5.水位检测模块:实现对鱼缸水位的检测。6.无线通讯模块:主要是负责接收手机APP端发送的命令,并传输给单片机CPU处理,实现控制。并负责将由温度传感器和浑浊度传感器检测到的温度值和水质值给手机APP端,实现将温度值和浑浊度在手机APP上显示。7.显示屏模块:负责显示时间、水温、水质、充氧间隔时间、喂食间隔时间、充氧持续时间、喂食持续时间等相应数据。8.其他硬件模块:主要包括继电器、舵机、灯光、LED灯、按键等模块。继电器模块分别控制两个水泵来完成换水、一个气泵来完成充氧,舵机控制喂食器,灯带给鱼缸提供灯光,LED灯用来指示相应功能状态,按键用于本地控制。图2.4硬件设计分析框架2.3.2软件设计分析软件设计分为程序设计和手机APP界面设计。程序设计主要使用keil5软件进行开发,该工具便于在线仿真和调试。跟单片机可以以JATG调试接口相连,也可以以ST-Link调试接口相连。通过编程,使各个模块能与单片机实现通信。手机APP界面设计:本设计中没有自建服务器,依据目前的火热的物联网平台,选择以ONENET平台作为服务器。使用该平台自带的开发工具,可快捷开发稳定的APP简洁界面。实现温度、浑浊度、喂食时间、充氧时间、喂食次长、充氧次长等数据的上传显示,并可通过按钮控制鱼缸的喂食、换水、充氧、灯光,用户可以通过命令改变温度、浑浊度阈值及定时时间等数值,来实现远程控制功能。图2.5软件设计分析框图

3硬件设计3.1单片机系统设计3.1.1单片机设计单片机选型:51系列单片机优点:容易上手,缺点是:运行速度太慢,且芯片易被烧毁,不适用于本设计。相对于来说,STM32系列单片机具有性能强、功耗低、成本低、性价比高的优点,且具有高精度的A/D转换模块,而本设计中的温度检测和浑浊度检测都需要较高精度的A/D转换模块[2]。具体选定STM32F103RCT6作为MCU,引脚图如图3.1所示,它具有一流的外设,集成度高。最高工作频率72MHz,拥有51个通用I/O口,,引脚图如图3.1所示。图3.1STM32F103RCT6引脚图3.1.2电源系统框架设计电源系统框架设计如图3.2所示:图3.2系统电源框图本系统以5.0V充电宝作为电源,通过Micro-USB直流供电(如图3.3所示),可以直接给WIFI模块、时钟模块、舵机模块、继电器模块、水位检测模块、温度检测模块、浑浊度模块供电,蜂鸣器和MCU正常工作电压低于5.0V,为了使器件能正常工作,参考芯片资料,设计了一个稳压模块(如图3.4所示)。通过该模块,将输入的5.0V电压转为3.3V稳定电压,使得单片机和蜂鸣器都能正常工作。图3.3USB供电电路图图3.45V转3.3V稳压模块为了电路获得良好的电源,在每个外围电路中都加入了滤波电路,如图3.5所示。图3.5滤波电路3.1.3复位电路设计本研究设计的系统复位电路如图3.6所示,当手动按下RST按键,或上电瞬间强大的电压使得C6两端电压近似为0,异步复位引脚输入低电平,使MCU处于复位状态,即可实现复位。图3.6复位电路3.2温度传感器设计研究显示观赏鱼的生活温度为:-5℃-50℃,本文选用DS18B20温度传感器,它的灵敏度高,且为单总线通信方式,无需外接任何模块,仅将DQ数据线需与单片机I/O口相连。其测量范围广泛,且分辨率最高可达到零点零六二五摄氏度[3]。芯片图如图3.7所示:图3.7DS18B20器件芯片DS18B20电路原理图(如图3.8),在使用过程中,将VDD引脚接入电源VCC5.0V,并需往I/O线上加入一个上拉电阻,来确保其在温度转换期间得到足够的电流。一般选取4.7k电阻。图3.8DS18B20电路原理图3.3浑浊度传感器设计为了能检测鱼缸中水质环境,需选择一种浑浊度传感器来检测水的浑浊程度。结合成本、实用性因素,综合考虑下,选择浊度传感器TSW-30,并搭配浊度传感器模块TS-300B。TSW-30结构尺寸图如3.9所示,其内部为一个红外线对管,基于光学原理因水中的悬浮物会减少光线透过量,当光线量减少时,电流减小。所以它可以通过检测光线透过量来检测出水的浑浊程度。在使用浑浊度传感器过程中,应避免光照直射,以免引起测量误差偏大。图3.9TSW-30结构尺寸图传感器模块TS-300B将传感器TSW-30输出的电流信号转换为电压信号,由于输出的电压值会受到温度的影响,使用时为了提高测量精度,一般需进行温度补偿。应用电路框图如图3.10所示,将模拟信号接入单片机,经由A/D转换得出电压值,并经过相关标准曲线计算公式得出具体的浑浊度值。图3.10应用电路框图电路原理图如图3.11所示,浑浊度传感器额定工作电压:5.0VDC,可以选择输出数字信号或模拟信号。为防止5.0V传感器输入信号直接接入单片机3.3VI/O口引起单片机损坏,在电路设计时,通过使用两个4.7K和10K的电阻设计一个分压电路,使得5.0V输入信号转换成单片机可以接收的电压信号。图3.11浑浊度传感器电路原理图3.4时钟模块设计系统采用定时任务来执行自动控制,通过判断设定时间是否到来执行相关的控制。故需要搭配一个精确的时钟,来为定时任务提供精确时间判断。单片机自带时钟精确度误差过大,不适用于本设计。综合考虑下,选择DS1302芯片为时钟芯片,它不仅精确程度高、能实现掉电走时,而且使用简单,仅需进行读取即可。他具有两个VCC电源引脚,一个引脚接单片机5.0V,作为主供电源,另一个引脚可以接纽扣电池,作为备用电源。当系统断电时,可以通过备用电源供电,实现在系统断电情况下,时钟也能正常走时[4],芯片及部分引脚如图3.12所示。图3.12DS1302芯片及部分引脚图它的工作电压范围较宽,可以在电压为2.0V到5.0V正常工作。仅需与单片机三个引脚相连(电路原理图如3.13),即可实现串行通信。DS1302提供的精确时间,不仅可以为喂食、充氧控制提供定时时间,还可以用于制作定时闹钟等功能。图3.13DS1302电路原理图3.5蜂鸣器模块设计本文设计采用有源蜂鸣器,来实现高温报警提醒。相对于无源蜂鸣器需要PWN波驱动,它的程序控制简单,其内部自带震荡源,仅需直流信号通电,就可让其发出声音。(电路原理图如图3.14)可以工作在3.3V-5.0V范围内,仅用单片机的高低电平控制,即可实现鸣叫发声。图3.14蜂鸣器电路原理图3.6水位检测模块设计为了能检测鱼缸中水位的高低,在综合实际使用及成本的因素考虑下,本系统设计选择使用两个非接触液位传感器,一个用于检测高水位,一个用于检测低水位,其采用进口的芯片,灵敏度高。输入电压:DC5±0.3V感应距离:3mm(0-5mm),液面变化精度检测精度:±2mm输出方式:高低电平接线方式:黑色线接GND,棕色线接VCC5.0V,绿色线接单片机I/O引脚。水位传感器器件接入5.0V电压,信号输出线仅需与单片机一个引脚相连。电路原理图设计如图3.15,同理为了防止单片机被损坏,也在电路中设计一个电阻分压电路。水位传感器置于鱼缸外围,可以随时通过移动传感器位置,来改变水位检测位置,方便用户调节水位。图3.15水位检测模块电路原理图3.7显示屏模块设计本文设计需要有一个显示屏模块实现显示当前时间、传感器数值及定时时间的功能,在节约成本、方便使用的考虑下,决定采用1.44寸TFT-LCD液晶显示屏模块。相对于OLED显示屏颜色单调的缺点,它有16位真彩色;相对于无源TN-LCD亮度低的缺点,它将TFT按照要求分布于像素点上,降低了相互之间的串扰,提高了亮度。图3.1616位数据与显存对应关系图表3.2SPI接线说明序号名称引脚说明1VCC电源正3.3V2GND电源地3SDISPI数据线4SCLSPI时钟线5CSSPI片选6SDO数据/命令控制管脚7RS复位管脚8BLK显示屏背光控制开关根据表3.2显示屏的SPI接线方式的引脚线说明,设计出如下图3.17所示的电路原理图,显示屏模块需与单片机6个I/O引脚相连,由SPI通信方式,实现屏幕多彩显示。图3.17显示屏电路原理图3.8 WIFI模块设计在目前电子产品中,主要使用无线通信协议来实现远距离通信。一般有WIFI模块、GSM模块等。为了实现能与手机端APP远程通信,本设计选用成本低、操作方便、性能强的ESP-8266WiFi模块作为远程通信模块,模块原理图如图3.20所示:图3.20ESP-8266WIFI模块原理图ESP-8266模块采用有6个引脚,可工作电压范围为:3.3-5.0V,在本设计中采用5.0V电源供电,并将收发引脚RXD和TXD与单片机相连,因本文使用的模块已烧入固件,故RST复位脚和GPIO_0都不接,置为默认高电平。电路原理图如图3.21所示:图3.21ESP-8266WIFI模块电路原理图3.9其他硬件模块设计3.9.1继电器模块设计本设计采用5V3路继电器模块分别控制2个水泵和1个充氧泵。电路设计原理图见图3.22。图3.22继电器模块电路原理图继电器负载接线方法:将继电器的工作引脚接入外接电源,将负载的正极,接入NC常开端口,再将负载的负极与电源负极相连。再由通过单片机的I/O口来控制继电器的开闭,从而实现单片机控制机械设备的启动与关闭。3.9.2舵机模块设计使用舵机来控制喂食器出口的开关。在结合成本考虑下,本设计采用sg90舵机,通过PWN波形控制舵机转动的角度,仅需与一个单片机I/O口(PA8)相连,采用5V供电,即可实现转动控制。图3.22舵机模块电路原理图3.9.3灯光模块设计在本系统设计中,为了增加鱼缸的观赏性,附加了一个灯光控制功能,能控制灯光的亮灭。使用单片机的PB8引脚控制。3.9.4LED模块设计在设计中为了设计了LED灯模块,如图3.23所示,通过判断灯的亮灭,更好的显示对应一些功能的是否正常开启。图3.23led灯模块3.9.5按键模块设计在设计中为了设计了8个按键,如图3.24所示,实现对鱼缸的本地控制功能。图3.24按键模块

4软件设计4.1程序设计程序设计流程图如图4.1所示:图4.1程序设计流程图系统上电后,首先是对各个模块和引脚进行初始化:delay_init(); //延时函数初始化LED_Init(); delay_ms(500); //LED灯初始化KEY_Init(); //8个按键初始化BEEP_Init(); //蜂鸣器初始化DuoJi_Init(); DuoJi_OFF(); //舵机初始化JDQ_Init(); delay_ms(200); //继电器初始化ShuiWei_IO_Init(); //两个水位传感器初始化 Adc_PA4_Init(); //ADC转换初始化LCD_Init(); LCD_Clear(WHITE); //1.44寸TFT液晶屏初始化DS18B20_Init(); //DS18B20初始化DS1302_GPIOInit(); //DS1302引脚初始化ds1302_init(); delay_ms(50); //DS1302初始化ESP8266_Init(); //ESP8266初始化在系统上电启动时,首先初始化各个硬件模块,并判断ESP-8266模块是否成功初始化成功(即是否成功连接热点),并判断是否成功接入ONENET服务器。通过修改ESP-8266.c文件里的宏定义ESP8266_WIFI_INFO中的AT+CWJAP里面数据,即可将热点改为自己想连接的热点,每次启动ESP-8266即会自动搜索WIFI。#defineESP8266_WIFI_INFO "AT+CWJAP=\"1234\",\"123456789\"\r\n"对于DS1302时钟模块,先将寄存器addr最低为置0,即addr=addr&0xFE,可以实现向DS1302时钟芯片写入时间。写入初始时间数据后,时钟芯片将自己走时。为实现系统掉电重新上电时,不会重新向写入DS1302写入初始时间,有两种实现方式。第一种为第一次烧录程序时,向DS1302芯片写入初始时间后,将程序的向DS1302写入时间操作函数删除,再次烧录一次程序既可。这种操作需要烧录两遍,本设计通过判断charger_add的值,决定是否需要向DS1302芯片写入时间初始值。具体代码如下图:if(ds1302_read_byte(ds1302_charger_add)!=0xa9){ delay_ms(50); //延时LCD_ShowString(5,5+18*0,16,"DS1302failure",0); //显示 ds1302_write_time(); //写入初始值 LCD_Clear(WHITE); //清屏}else{ delay_ms(50); //延时 LCD_ShowString(5,5+18*0,16,"DS1302OK",0); //显示 LCD_Clear(WHITE); //清屏}}通过读取系统当前时间,并转化成秒数。如当前时间为凌晨02:20:00则转换为:2*60*60+20*60=8400,并与定时时间作对比,来判断是否达到定时时间。温度传感器主要就是测量鱼缸中的水温,并在温度高于设定值时,驱动蜂鸣器鸣叫。temperature=DS18B20_Get_Temp(); //读取温度值BEEP=(temperature>(u16)(warn_temp*10.0))?0:1; //温度高于设定值,蜂鸣器响data_flow.temperature=temperature/10.0; //除以10才是真正的温度值Show_DS18B20(temperature); //显示温湿度值浑浊度传感器则是检测水质,通过ADC转换读取到的电压值,并代入标准曲线计算公式中,得出鱼缸中水的浑浊度值,当鱼缸中水的浑浊度过高时直接进行换水操作。adc_reg=Get_Adc_Average(ADC_Channel_4,10); //读取ADC值,PA4接的是水浑浊度传感器ADC_Muddy=(float)adc_reg/4096*3.3;//转换读取到的电压值为实际电压值 TU_value=-865.68*(-0.0192*(temperature/10-25)+ADC_Muddy)+3010.19; if(TU_value<=0){TU_value=0;}if(TU_value>=3000){TU_value=3000;} data_flow.TU=TU_value/100; Show_Muddy(TU_value); //显示ADC值 if((TU_value/100)>warn_TU) //浑浊度超标也要换水 { flag_change_water=1;//换水标志位置1 }LED灯1和2表示高低水位,灯亮表示目前检测到有水。当按下K1按键或浑浊度超标或者APP按下换水按钮或者水位过低,都表示需要进行换水。换水过程中LED灯3常亮,换水操作是先判断是否需要换水,需要换水时开启抽水泵继电器,当判断到低水位没有水时,关闭抽水泵继电器并打开注水泵继电器,开始注水,当检测到高水位有水时,关闭注水泵继电器。流程图如图4.2所示:图4.2换水系统流程图短按按键K2则能进入修改浑浊度上限模式,长按按键K2则进入修改温度上限模式。进入相应修改设置模式后,按下K1,则数值加1,按下K2,则数值减1,按下K3则数值加0.1,按下K4则数值减0.1,K8为确认键,按下则保存当前设定值并退出设置模式。当相应的标志位为1时,则开启相应功能。按键K3、K5、K7分别可以直接控制舵机、充氧泵继电器、灯带,而按键K4、K6进入相应设置模式,能修改相应的定时时间。长按按键K8能进入时间修改模式,方便对时间进行校准。设置模式如表4.1所示,表4.1设置模式操作模式显示短按K2设置浑浊度阈值TUX长按K2设置温度上限值TempX短按K4设置喂食时间WSX短按K6设置充氧时间CYX长按K8设置实时时间清屏,进入修改时间界面智能鱼缸系统出于成本考虑,没有搭建属于自己的服务器,选择使用ONENET物联网平台作为云端服务器。采用MQTT协议与ONENET平台进行通信,协议实现方式如图4.3所示。图4.3MQTT协议实现方式MQTT协议-使用TCP/IP提供网络连接,且具有保活性好、流量低的优点,可以较好的实现对设备的控制管理,非常适用于与设备的远程通信。注册并登录ONENET云平台,通过在文档中心的快速开始,进行产品的创建。产品显示如图4.4所示:图4.4产品显示将产品成功创建好后,将设备的相关数据写入到下面代码中,为与进行平台通信鉴权信息。#definePROID "414550" //产品ID#defineAUTH_INFO "fishtank" //鉴权信息#defineDEVID "704874078" //设备ID如果WiFi模块初始化正常,并当ESP-8266接入ONENET平台访问成功后。会将水温、水质、喂食时间、充氧时间、每次喂食持续时间、每次充氧持续时间等数据,打包上传到ONENET云平台,从而使得能在云平台上看到设备的相关数据。即通过如下部分代码实现:}通过对平台返回数据检测,来判断平台是否有下发命令。当有命令下发时,先对消息进行解析,解出topic和payload,根据payload消息内容,判断需要执行的相应操作并做出回应。4.2手机APP界面设计本智能鱼缸设计直接使用物联网ONENET云平台自带的手机APP-设备云APP。通过自己在ONENET平台上创建应用,在应用编辑界面,能快捷开发手机应用控制界面。首先注册账号并登录ONENET平台,进入ONENET平台的开发者中心,点击创建好的设备产品-智能鱼缸。图4.5产品列表进入产品界面,点击左侧列表中的应用管理,选择创建一个新应用与智能鱼缸产品相关联。建好后进入应用图像化编辑界面,即可对APP端的软件界面展示作设计。图4.6产品列表在应用编辑界面,选择组件库里的元素,并更改其属性。来对接控制命令及显示数据。例如显示温度,选择仪表盘元素,并将其属性中的设备与产品相对应,数据流与硬件上传的Temp数据来对应。智能鱼缸APP需要能显示鱼缸的温度和浑浊度数据,定时任务的时间,有远程控制的操作按钮以及能修改定时时间、温度和浑浊度上限的命令框。每个按钮分别对应控制1个功能,按下按钮会发送相关命令给设备。通过下发命令可以更改对应的控制参数,控制命令表如表4.1所示,表4.1控制命令表控制参数命令格式示例warn_temp(温度上限)TPXX.XTP25.3warn_TU(浑浊度上限)TUXX.XTU11.2WS(喂食间隔时间)WSXXXXWS0601CY(充氧间隔时间)CYXXXXCY0503WT(喂食持续时长)WTXXWT04CT(充氧持续时长)CTXXXCT090下载设备云APP,登录注册好的ONENET平台账号,即可以看到已创建的应用产品,并对产品进行操作控制。

5结果分析5.1实物设备硬件实物图如附录1图1.1所示,各个模块由STM32单片机控制,协调工作,实现相关功能。5.2检测温度测试给智能鱼缸系统上电,系统初始化完成后,显示屏上显示鱼缸的水温Temp:25.0℃,温度上限阈值30.0℃,如图5.1所示:图5.1实物显示水温图手机端打开设备云APP,并进入鱼缸的控制界面。手机端根据设备上传到平台到数据,显示出鱼缸的温度值Temp-25℃,如下图5.2所示,当鱼缸温度Temp高于阈值时,蜂鸣器鸣叫警示。图5.2软件显示水温图通过将温度传感器与水银测温计分别于早上、中午、晚上,放入同一个鱼缸中测量,得出如下表5.1的数据,可知温度传感器的误差大约为0.1℃。表5.1两种器件测量数据器件早上中午晚上温度传感器21.3℃23.5℃22.3℃水银测温计21.4℃23.5℃22.2℃5.3自动充氧测试给智能鱼缸系统上电,等待系统初始化完成后,设定充氧时间及持续时间。例如设定充氧间隔时间为CY:02/00,持续时间200s。则每隔两小时会进行一次充氧操作,在上午10:00:00点时充氧继电器灯亮起,如附录1图1.2,启动充氧泵,进行充氧,如附录1图1.3所示;持续时间200s,在10:03:20充氧继电器灯熄灭,如附录1图1.4所示,关闭充氧泵,完成充氧操作。如附录1图1.5所示。也可通过按键K5直接控制充氧,按下K5,充氧继电器灯亮起,充氧泵启动;再按下时,充氧继电器灯熄灭,关闭充氧。5.4自动换水测试给智能鱼缸系统上电,等系统完成初始化后,设定浑浊度上限及水位高低。例如设定浑浊度阈值为9.0,当浑浊度检测值TU大于9.0时,换水时LED灯3常亮系统将进行换水操作。换水流程:LED灯3常亮,首先是抽水继电器灯亮起如附录1图1.6所示,启动抽水泵,进行抽水操作,如附录1图1.7所示;当水位降低到最低水位时,低水位LED灯2熄灭,抽水继电器灯熄灭,注水继电器灯亮起,如附录1图1.8所示,停止抽水操作,启动注水泵,进行注水操作,如附录1图1.9所示。当水位升至最高水位时,LED灯1亮起,注水继电器灯熄灭,停止注水操作,LED灯3熄灭,如附录1图1.10所示。当水位过低时,也会自动启动换水操作。流程跟上面一样,只是少了抽水操作。也可以通过按键K1直接控制换水,按下K1时,会按照换水流程进行操作,LED灯3常亮,再按下K1时,停止换水操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论