1. 引言
随着当代科学和技术的进步,我国渔业的发展已经进入了一个新的拐点。大力发展鱼塘智慧养鱼,是我国农业发展的战略目标和重要组成部分 [1] [2] 。但是目前,我国的智慧养鱼技术与西方发达国家还存在着一些差距。我国的池塘养殖配套装备和新型养殖模式有研发方面的滞后,与此同时,在大型、影响深远的水产养殖平台的研发方面也处于落后。此外,中国的水产养殖是分散的,农民的整体教育水平和专业素质较低。传统水产养殖观念根深蒂固,大多数养殖户对新设备和新技术的接受程度较低 [3] [4] [5] 。因此,构建基于单片机及鱼塘模型的智慧养鱼控制系统,养殖户可以看到鱼在每个养殖场和每个池塘的生长情况,不仅可促进我国智慧养殖的发展,也能使养殖户直观地认识智慧养殖,促进智慧养殖的推广发展。
本设计的核心单元是51单片机,根据功能是把设计分为以下几个模块:自动投喂模块,温度检测模块、光照强度检测模块、LCD显示模块、加热模块等并且结合软件设计温度检测模块程序、LCD显示程序、光照强度检测程序、继电器加热模块程序等。功能上利用鼓风机实现自动投喂;用温度、光照传感器实现温度、光照强度的检测,利用单片机和继电器实现自动控制。
2. 总体方案设计
本文采用分模块的方式对主要模块进行设计。系统的主要模块有主控单元时钟模块、温度检测模块、LCD显示模块和自动定时投喂模块等。系统的核心单元是51单片机,各个模块环境参数值的采集使用传感器实现。整个系统运行的原理是由单片机接收并且处理数据,接着向各个模块传送信号并且执行相应的功能,从而实现了自动投喂和对鱼缸内温度、光照等环境因素的自动控制,系统的总体设计框图如图1所示。
3. 系统硬件设计与实现
控制系统的硬件设计主要分为七个模块:主控制单元时钟模块、光照强度检测模块、加热模块、温度检测模块、自动投喂模块、LCD键盘显示模块、电源模块。
3.1. 主控制单元时钟模块
主控制单元时钟模块主要由单片机部分和时钟模块组成,其硬件电路的原理图如图2所示 [6] 。

Figure 2. Hardware circuit schematic diagram of main control clock module
图2. 主控制时钟模块硬件电路原理图
时钟模块控制电路主要完成时间的计算,体现计时功能。采用DS1302模块,它的VCC端口接5 V电压,GND接地,CLK端口和弹片的P04口相连,DAT和单片机的P03端口相连,RST和单片机的P02端口相连,从而与单片机进行数据转换,实现计时功能。
3.2. 光照强度检测模块
光照强度检测模块主要是由GY-30光照传感器 [7] 实现。通过VCC端口接5 V电源,SCL端口和单片机的P1.7端口相接,SDA和单片机的P1.6端口相接,实现对周围光照的检测,从而达到自动补光的效果,其硬件电路的原理图如图3所示。
3.3. 加热模块
加热模块使用加热棒和继电器实现,通过继电器控制加热棒,实现水的加热。加热棒和继电器的NC端相连,继电器的COM端口接12 V电源实现加热功能,其硬件电路的原理图如图4所示。

Figure 3. Hardware circuit schematic diagram of illumination intensity detection module
图3. 光照强度检测模块硬件电路原理图

Figure 4. Hardware circuit schematic diagram of heating module
图4. 加热模块硬件电路原理图
3.4. 温度检测模块
温度检测模块使用传感器为DS18B20 [8] 。测温的主要原理是利用DS18B20内部的计数功能完成温度的测量,DS18B20的内部含有计数器1和计数器2,它的测温原理为低温系数震荡器产生的脉冲信号给计数器1,高温系数振荡器产生的脉冲信号作为减法给计数器2输入,通过DS18B20产生的时钟脉冲完成计数,从而完成温度的测量。
通过DS18B20的DQ端口和单片机的P3.7端口相接,在DQ和VDD间接一个4.7 K的电阻保护电路,完成温度检测功能,硬件电路的原理图如图5所示。

Figure 5. Hardware circuit schematic diagram of temperature detection module
图5. 温度检测模块硬件电路原理图
3.5. 自动投喂模块
自动投喂模块主要由继电器控制鼓风机实现。继电器由输入回路和输出回路组成,它在本质上是一种电子控制器。继电器的COM、NC端口和鼓风机相接,IN和单片机的P1.0端口相接,从而实现定时投喂的功能,其硬件电路的原理图如图6所示。
3.6. LCD键盘显示模块
使用器件LCD1602液晶显示器 [9] 实现LCD键盘显示模块功能。通过数字在液晶显示器上显示可以读出数值。LCD1602液晶显示器不仅可以显示数字,还可以显示字母和符号等,它是一种点阵型的液晶模块,功能十分强大。LCD1602液晶显示器显示的内容是两行,每行的长度为16个字符模块,通常表示为16X2。

Figure 6. Hardware circuit schematic diagram of automatic feeding module
图6. 自动投喂模块硬件电路原理图
3.7. 电源模块
控制系统的电源模块采用5 V输电源供电,通过自锁开关控制开闭,用LED发光二极管串联一个电阻,闭合开关,LED灯亮,则表示电源正常通电,所有的电源从这里输出,其硬件电路的原理图如图7所示。

Figure 7. Hardware circuit schematic diagram of power supply circuit module
图7. 电源电路模块硬件电路原理图
4. 系统软件设计
控制系统软件设计采用模块化的设计,首先系统外设先初始化,设定初始值,到达一定的时间,继电器打开控制鼓风机进行自动投喂;当水温和周围光照强度低于设定值时,继电器打开控制加热棒的工作,单片机控制LED灯进行补光。软件设计流程图如图8所示。
软件设计的主要模块有LCD1602液晶显示模块、温度传感器检测模块、光照传感器检测模块、继电器加热模块。
4.1. LCD1602液晶显示模块
液晶显示模块程序所实现的主要功能是读取它的光标显示值,确定光标的位置。首先根据程序的输入确定第一个显示的字符,接着再根据程序按位显示所有的数据,直到全部显示。液晶显示程序流程图如图9所示。

Figure 9. Physical diagram of WIFI module
图9. WIFI模块实物图
1602液晶显示函数的主要程序如下所示:
void Lcd1602WaitReady()
sta = LCD1602_DB;
void Lcd1602WriteCmd(unsigned char cmd)
VoidLcd1602SetCursor(unsigned char x, unsigned char y) Lcd1602SetCursor(x, y);
while (*str != '\0')
{
Lcd1602WriteDat(*str++);
}
LCD液晶显示模块函数先初始化,程序“sta = LCD1602_DB”表示读取状态字,接着向LCD1602液晶写入一字节的命令,显示设置RAM的起始地址,即光标的位置,上述程序中的“(x, y)”对应屏幕上的字符坐标,接着连续写入字符串数据,直到检测到结束符。
4.2. 温度传感器检测模块
此段程序设计的目的主要为读取DB18B20的时序。首先需要进行的是初始化程序,建立DB18B20和单片机的联系。接着进行复位,然后获得测量的温度数据,接着读取转换结果,读取高低字节数据结果并且进行整合。
4.3. 光照传感器检测模块
由于光照传感器检测模块选用的器件型号是GY-30,它的主芯片是BH1750 [10] ,因此光照传感器检测模块的程序编写主要使用BH1750函数来实现。其功能实现流程图如图10所示。

Figure 10. BH1750 function implementation flow chart
图10. BH1750函数功能实现流程图
4.4. 继电器加热模块
该模块的功能为显示器读取DS18B20温度,若是低于设定值,则单片机输出低电平,继电器常开触电吸合,开始工作,控制加热棒的加热。
5. 系统测试
控制系统的预期效果:当温度传感器检测到水温值,将其传送给单片机,由单片机进行处理和判断并且控制继电器是否工作。当水温低于设定值时,继电器打开,控制加热棒的加热,使水温上升,水温加热到之前设置的温度。鼓风机模拟自动定时投食模块,设置时间一分钟以后投食,鼓风机转动十秒钟,十秒钟以后鼓风机自动关闭。光照传感器感知周围的温度变化,并且传送给单片机,如果周围温度低于设定值,灯光自动打开,高于设定值,则自动关闭。
系统实际测试效果:将主控制板和鱼缸模型进行连接,打开电源开关,用按键设置自动补光的强度为100 Lux,当周围光照强度低于100 Lux时,LED发光二极管自动打开,进行补光;周围光照强度高于100 Lux时,LED发光二极管自动关闭。效果图如图11所示。
6. 结束语
本文研究并设计了基于单片机及鱼塘模型的智慧养鱼控制系统,模拟实现了养鱼的智能化。系统硬件部分主要分为主控制单元时钟模块、光照强度检测模块、加热模块、温度检测模块、自动投喂模块、LCD键盘显示模块、电源模块;软件设计分为LCD1602液晶显示模块、温度传感器检测模块、光照传感器检测模块、继电器加热模块。系统测试结果显示:通过继电器模块﹑传感器模块以及单片机控制模块,系统可实现温度和光照的自动调节以及定时投喂等操作。通过上述分析可得:该控制系统可稳定运行,成本低廉,操作简单,不仅仅可促进渔业的智能化发展,而且通过其展示作用可使得养殖户更易接受智慧养殖,促进其进一步推广。