基于STM32的智能鱼缸监控系统

摘要

文章重点是针对STM32单片机为基础的检测系统进行设计,将单片机技术运用在鱼缸环境控制中,利用单片机的强大能力对鱼缸进行温度,PH值,光照强度和水位的智能化控制。对应的硬件系统包含的部分较多,诸如:单片机芯片、传感器(温度、PH)、液晶显示器、继电器、电源、按键、超声波传感器电路等等,经过对应的按键,以此能够进行对应的水平范围的设定,以此对应的能够在液晶显示屏中进行对应的显示,如果进一步的检测水体的PH、温度、光照情况以及水位情况等方面超过对应的范围,那么单片机会受到对应的信息,做出对应的分析之后能够触发电机,以此进一步的对环境做出调整,能够让水位以及环境得到控制,确定其在对应的范围内。
关键词:STM32单片机;继电器;液晶屏LCD1602;温度传感器DS18B20

1 系统的总体设计

1.1系统核心硬件的选择

在构造硬件电路之前必须明确设计的方案,尤其是模块与模块之间哪些互斥哪些互通要进一步规划好,进而选择合适的硬件设施。

1.1.1主控芯片的确定

方案一:芯片选用STM32单片机
针对芯片的选择方面,综合各种因素确定STM32系列,其属于微处理器,是32位,重点是ARM7架构,在其内核内主要采用的是ARM新研发的Cortex-M3,具有非常强的实时性,能够完成对应的仿真和实现对应的追踪,而且在控制功耗方面具有非常高的能力,外设更是超凡出众,创新力十足。产品做到了最大程度的集成整合,让开发变得简单易用,使产品从开发到进入市场的时间大大缩短,其成本相对低廉,重要的是拓展开发方便简单,还能支持线上编程、下载。
方案二:采用MSP430单片机作为主控芯片
MSP430这款可用作控制中枢的单片机芯片,由德州仪器公司贡献,于上世纪九十年代推出面世。从功能上来说,它不单单是一款简单的单片机,从某种意义上,我们可以称之为混合信号处理器,因其拓展功能强大,可生成功能各异、种类不同的的各式处理器,甚至于还可生成数字电路与模拟电路两种不同的电路。它强大的功能还体现在集成功能上,用户可根据需要把多个模拟电路或是各式功能的微处理器都集成到同一个芯片片上。MSP430在节能方面的表现也很优异,虽为混合信号处理器但却以耗能少著称。带有的简易命令集。优点虽多,但因为其开发不易,价格昂贵而并没有被大范围普及推广,但一些特定的仪器比如采用电池供电的便携式仪器还是经常会应用到它。
方案三:主控芯片使用80C51单片机
此单片机是经典的MCS-51系列,那么在此单片机中,有两个16位的计数器,两个外中断、两个定时计数中断还有一个串行中断,那么对应的I/O引脚较为简单,而且能够便于学习,然而在输出方面不能够输出高电平,而且运行的速度相对较慢,重点是针对双数据指针方面,而且引脚数量相对少,我所做的产品功能较多,不足以满足引脚需求,而且51单片机的运行速度较慢,不利于系统的运行和工作。综上所述,之所以决定使用STM32单片机作为主控芯片,这是综合考虑到了开发的难易度、成本以及资源的合理分配做出的决定。如图2.1是STM32的核心板。
在这里插入图片描述

图2.1 STM32核心板

1.1.2温度检测方案选型

利用数字式温度传感器DS18B20得出温度数值,再按需进行基础的编写来达到9-12位的数值显示,但是较为不精准,高达2度误差。DS18B20温度芯片是通过单总线的方式来进行访问的,即通过一个单线接口发送和接收信息的。其特点价格低,操作简单,而且还可以减少占用单片机的存储空间。而且DS18B20的集成度高,体积较小。图2.2是防水形DS18B20的实物图
在这里插入图片描述

图2.2 DS18B20实物图

2 显示系统方案选型

选择一:显示设备配置的是LCD1602I液晶屏
LCD1602液晶屏的优点是能大范围的显示出各类字符,可以将162也就是32个字符全部显示出来,这些字符主要包括数字,字母,符号,自定义字符。LCD1602重点是针对范围比较小的显示场合,其中重点是57点阵形成的对应支付,那么进行数据传输过程中,重点是实现串行数据方面的传输,所以在此角度上看,其相对较为简单,对应的显示器与市场上的显示设备HD44780液晶屏控制原理是一致的。
选择二: 选用LCD1602液晶显示设备
LCD1602主要表现是大屏,其显示的分辨率为12864,一共具有8192个,由4位/8位串行和并行组成的液晶显示屏,其的主要接口比较简单,方便操作,可以在系统上表现是人机互动界面,这款显示设备显示信息量巨大,它显示的主要对象是84行16*16的点阵汉字,这样就能够对能源大大减少消耗,具有较为完善的显示性功能,然而不对其进行全面使用的化会出现浪费空间的情况,所以,如果整个设计中不需要使用如此大的屏幕,尽量使得成本能够得到节约。按照上述的论述能够得出,考虑到本设计显示内容比较少,最终选用LCD1602液晶显示屏来显示。

2.1 键盘模块的选择

方案一:输入设备方面使用较为独立的按键对于不同的按键,其相应的对应着一个单一的功能,而且其需求对应的I/O端口,对应的检测次数需要通过按键的数量进行确定,一旦按键数目很大,那么就需要很多端口,那别的器件就没有地方连接,由于按键数据多线路多,反应时间比较长。
方案二:输入设备采用矩阵类键盘把矩阵键盘对应的一个端头连接在行线中,其另一个端头和列线连接,因此将各行以及各列的线和单片机进行连接,采用对饮的个程序得到相应的算法,来明确需要按哪个键。尽管编程有困难,但节省了I/O端口的使用。综合上述的描述,最终还是决定采用方案一。

2.2 PH模块的选择

本次设计采用的是雷磁公司的“E-201-C”复合电极,其运行的原理为内外参比电机对应的电位差,其会有单一的微弱型号的输出,那么其检测难度比较大,因此会通过对应的可调节的增益运算放大电路能够进一步的放大信号源,在此基础上完成检测。那么这个电极,属于PH复合型电极,可以加液,其中还包括的有:低噪音屏蔽线(800mm),含氯化银的3.0 mol/L氯化钾外参比溶液,PC塑料壳体,Q9插头,纤维盐桥,银-氯化银参比,因此,对应的通过实验室的检测得到其中合适的PH数值。除此之外,对应的板子中还有其DS18B20温度检测传感器对应的接口,能够将其连接在防水性较好的DS18B20,以此进一步的实现对溶液温度的检测,正符合课设作品的功能需求。
在这里插入图片描述

图2.3 PH值模块

3 温度感应电路设计

从图中可展示,温度传感器标注有3条引脚,包含的有VCC引脚、GND引脚以及DO引脚。那么电源的正负极分别对应的连接引脚GND以及VCC,而DO引脚与单片机P34引脚连接控制IO口,对应的温度传感器只是通过单条线完成,以此能够实现单片机的通信,那么此协议是单总线方式的通信协议。那么对于温度传感器而言,需要在其外部连接电阻之后进一步的和通信引脚之间进行连接,此是由于温度传感器对应的显示屏没有稳定的数据,而且电阻能够进一步的获的对应的温度数值,以此能够使得数据可信度得到进一步的提升呢,温度传感器和单片机之间连接对应的电路图可见图3.5.
在这里插入图片描述

图3.5 温度传感器电路图

3.1 显示屏LCD1602电路设计

一般来说,点阵液晶组成LCD12864的限时块,主要由12864这么多液晶的显示点组成,行成12864的一个行的阵列,从而由于这个就产生这个名字。这个显示器在软件上有着很大的简称和代表意思。一般情况0表示灭,1表示亮,这些处理信息会存储进入RAM中,行成程序或者C语言,在单片机的控制系统中,给出信息要求,就可以传到显示器上,显示器识别后将相关信息显示出来供用户欣赏。
对于LCD显示器而言,其主要有字符的显示以及显示两类字段。那么其显示的字段与LED是一样的,对应的准确的信号可以实现准确的管脚显示,那么对应的显示字符方面重点是进行基础字符的显示,所以在此显示需要对对饮的个字符型进行显示,对应的系统中需要采用LCD1602,那么以此为基础能够实现显示器的信号输出,和之前的数码管显示器相比,此冶金显示器对应的模块具有更大的优势,其中能够显示出较为丰富的内容,其耗费的功耗更小而且本身设备的体积较小,除此之外,不需要设计对饮的个外加驱动电路,而且对饮的个液晶显示模块,能够进行单片机的使用并进一步的设计显示器件,针对LCD1602而言,此显示为两行16个汉字。
一、LCD1602技术参数确定:
(1)主要容量为16×2个字符;
(2)芯片需要电压为数值4.5V至5.5V;
(3)工作电流为2.0mA(5.0V);
(4)模块工作电压最佳数值为5.0V;
(5)字符大小是2.95×4.35(W×H)mm。
二、LCD1602为常见的14脚,针对接口而言,其不同的引脚作用:
(1)1脚是VSS接地电源。
(2)2脚是VDD,和正电源5V进行连接。
(3)3脚是V0,是液晶显示器对比度的调整端。
(4)4脚是RS,是寄存器的选择,对应的高电平基础上,实现进一步的选择寄存器,对应的低电平基础上,能够进一步的选择指令寄存器。
(5)5脚是RW,是读信号以及写信号线,对应的低电平基础上完成写信号,RS和RW保持低电平,对应的完成写入命令并能够显示地址,RS保持低电平并且RW保持高电平,对应的能够进行读取信号,诸如RS保持高电平,而且RW保持低电平,可以完成写入数据操作。
(6)6脚:E端是使能端,假如此时高电平实现至低电平的转换,模块执行对应的命令。
(7)7~14脚:D0~D7属于双向类数据线,其是8位的。
(8)第15~16脚:空脚LCD的D0~D7接到单片机对应的PB8-PA12,使用此接口进行传输数据,然而对于上拉电阻对应的处于P0口内部没有,需要对应的在VO口外部进一步的进行安装3K的上拉电阻;LCD对应的RS接入PC13、EN接上PB9、RW接地;LCD拿V0变化进行灰度的显示,背光阴极为BLK阳极为BLA,电平接通之后,其背光灯就会亮起。
在这里插入图片描述

图3.6 LCD1602电路图

3.2 蓝牙模块电路设计

本系统加入了手机APP功能,APP和单片机通信,才有的是蓝牙协议,因此在板子上加入了一个蓝牙串口模块,该模块已经内置了蓝牙协议,采用的是串口透传模式,即蓝牙模块和单片机通信,无需去关心蓝牙协议,完全按照串口通信协议开发即可,简单方便,因此本系统才有的是蓝牙串口透传模块,其实际的型号是JDY-31,单片机串口1通信之后蓝牙模块串口引脚可以连接单片机对应的串口引脚,即TX3、RX3。
在这里插入图片描述

图3.14 蓝牙模块JDY-31实物图
在这里插入图片描述

图3.15 蓝牙通信电路图

4 设计蜂鸣器电路

报警模块的设计,主要是采用蜂鸣器,STM32单片机实现三级管驱动的方式进一步的实现蜂鸣器的驱动,实现报警。实际蜂鸣器电路为图3.16,蜂鸣器一端连接三极管引脚,另一端接地。实际的主要包含的是PNP三极管,可以进一步的将电流放大,由于单片机具有比较小的电路,不能够对应的得到实际需求的蜂鸣器,那么进一步的将驱动电流放大,以此实现其电流扩大二百倍之多,实现蜂鸣器的报警。而且能够让三极管对实际的上拉电阻完成限流,进一步的避免出现较大的电流造成蜂鸣器的击穿。

5 系统硬件调试

硬件调试主要是核查电路是否存在问题,是否有接触不良、焊接是否到位以及具有方向的元件是否方向弄错、电路设计错误等情况。
查漏补缺最简单的方法就是将实物电路板与电路设计图纸相对照,哪个地方没焊接,哪里少了元器件,一目了然。两相对照后,把缺少的物件补上,没焊接的地方再补焊上即可。
用万能表检测短路、断路、虚焊相当方便,把万能表连接到线路中,数字打到相应的档位,红黑笔相碰,即可得出结果。这种检测方法是相对比较简单的,能够测出电路是短路还是断路等。将红黑笔放在相应的元件上,如果出现鸣叫声,说明此段电路存在问题,进而将相关的问题解决好。

5.1 系统软件调试

测试所需的工具:KEIL软件、系统硬件、PL2303下载器等。
在KEIL软件编写相关的代码,并将相应的代码生成.HEX文件后通过PL2303下载器下载到单片机中。最后进行程序的调试,调试过程要做好相关的记录并反复测试,看是否存在系统问题。
在系统软件调试上主要遇到以下几个问题:
矩阵键盘的按键读取方法有了,在程序上需要将读取的每一个键值对应到每一个按键上并赋予特定的功能,如果直接进行人工计算键值的话显得工作量会比较大,并且可能会计算错误造成大量的时间浪费在调试上。
处理方式:此设计配备有显示设备,显示设备直接把获得的键值记录在案并显现出来,再分配给每一个按键设计功能。这样大量的节省了时间,也确保正确性。

5.2 实物调试

对完成的智能鱼缸检测系统进行调试。整个系统有1个控制电源开关按键,4个功能控制和设置水位、光照阈值按键。在通电状态下,首先通过按下按键1进入设置水位上限下限、鱼缸总高度值和光照标准值的显示画面,通过按键2和3来调节水位上下限、鱼缸高度和光照标准值的具体数值,在设置好各个参数后,可以通过按键4来实现手动以及自动模式的相互切换。
手动模式:
按键2:手动的方式进行水泵的控制,决定其是否运行,按下按键2,对应的水泵开始运转,按下按键2,那么水泵停止
按键3:对应的对补光灯进行控制,确定其是否发光,如果对应的按下按键3,那么其补光灯就能够发光,再按下
按键3时,补光灯关闭。
按键4:切换为自动模式
自动模式:
以自动模式为基础,假如进一步的进行水位的检测,如果其相比水位下限较低,那么对应的蜂鸣器就进行警报的发出,指示灯有提示,水泵将会工作抽水,向鱼缸加水,直至水位达到水位上限阈值,水泵停止工作;如果测得光照小于所设定的光照标准值时,补光灯会发光,向鱼缸提供光源,相反则不发光。
如下图是通过按键设置鱼缸高度、水位上下限和光照强度标准值的画面。其中pool是鱼缸总高度,G是光照的标准值,H是水位上限阈值,L是水位下限阈值。以下是模拟系统测试一个高为40厘米的鱼缸,所测得的一系列参数。
在这里插入图片描述

6 结论

本论文是在老师的教导下完成的。在恒温系统设计、系统的测试与最后的调试以及撰写论文都离不开导师的指导和支持。导师在教我知识的同时还纠正了我要严谨治学的态度,要懂得把别人的知识转化为自己的,学习别人的精华,要善于发现自己的不足,要有主见,解决问题的时候要相信自己,而不是随波逐流,言听计从。本设计主要是针对恒温系统设计进行设计,利用指纹模块进行识别,接着通过液晶显示屏利用按键进行信息的输入和输出完成相关操作。基本实现任务要求的功能。由于时间、水平和经验有限,设计的作品还存在着一些的不足之处。此次设计的过程中碰到了不少的问题,无论是对硬件的认识,还是软件的理解。都是在导师的悉心指导之下解决的,导师还对此次设计给了很多宝贵的意见和建议,经过导师悉心教诲、指导和无微不至的关怀之下,我清楚了解了恒温系统设计的设置理念和运作过程。这也对我完成论文也提供了很大的帮助。最后我要再次衷心的感谢导师。