基于树莓派的智能水产养殖系统的设计与实现
2022-04-25刘如军郑泽凯
刘如军,郑泽凯,赵 珉
(岭南师范学院 电子与电气工程学院,广东 湛江 524048)
0 引 言
水产养殖业在中国发展迅速,水产养殖业与计算机相结合的智能化、机械化养殖方式也逐渐走入人们的视野。近年来,我国国内传统水产养殖的发展遇到了瓶颈。
水体环境质量是水产养殖业的重要基础指标,一旦水体质量出现恶化且处理不及时就会导致严重的后果,使鱼、虾、蟹等水生动物大量死亡,使养殖户遭受巨大的损失。在我国很多地区人们大部分依靠人工观察的方法对水体环境质量进行检查,这种方式存在诸多弊端,既不能在合理准确的范围内对水体质量进行监测,且监测结果存在延迟性,还增加了相关的人工成本、养殖成本。无疑,传统水产养殖业需要跟上现代工业化的步调,改革创新,提高养殖效率。
决定水体环境质量的重要参数包括pH值、温度、溶氧量。所以要建立一套完整的监测系统就必须要对这3个参数进行实时监测,对监测到的数据进行处理后存储在云端并针对水体质量变化情况作出相应的动作以改善。从技术层面提高养殖效率,增强水产养殖业的竞争力。
1 系统总体方案
该系统的总体方案如图1所示。对水体信息进行采集检测,主要有3个指标,即pH值、溶氧量、温度,根据水体信息及时准确控制水泵、增氧泵、引虫灯开关,实现对水体质量的精准控制。将OneNET平台作为云端数据存储中心,用以保存数据;作为“中转站”,实现指令的下达上传。手机APP作为上位机与云端OneNET平台建立通信,实时获取云端数据,通过云端对下位机进行指令控制。
图1 系统总体方案
1.1 OneNET物联网平台模块
智能水产养殖系统利用OneNET平台的云端数据存储功能,将本地的溶氧量、pH值、温度等参数通过通信模块上传到云端,也可转发手机APP端的操作指令到下位机。
1.2 树莓派控制模块
将Raspberry Pi 4B作为主控,其在智能水产养殖系统中主要作为下位机的“大脑”。树莓派拥有超高的集成度,其搭载有1.2 GHz的64位四核处理器,1 GB运行内存,还集成有无线网卡,拥有比单片机更好的性能。
1.3 手机APP监测模块
手机APP由Qt Creator完成可视化图形界面及UI设计、开发、编译、调试等工作,可在安卓操作系统中使用。通过使用APP远程监测水温、pH值、溶氧量变化,便于养殖户及时了解养殖场的情况。利用显示控件显示温度、pH值、溶氧量参数,利用触摸控件完成动指令控制,利用编辑控件实时设置各项阈值。
2 系统的硬件设计
智能水产养殖系统的硬件设计如图2所示。系统硬件主要包括:主控CPU、温度采集DS18B20传感器、四路继电器、LCD1602显示模块、语音输出模块、pH值传感器模块,其中语音模块的输出部分已集成在树莓派开发板上。
图2 系统的硬件逻辑设计
2.1 主控芯片
采用Raspberry Pi 4B开发板作为智能水产养殖系统的控制器模块。通过控制40个I/O口接收处理发送数据。
2.2 温度采集模块
温度采集模块采用DS18B20传感器,将探头放进水中采集水体温度。该传感器的测量温度范围为-55~125 ℃,在-10~85 ℃范围内,精度为±0.5 ℃。DS18B20传感器采用单总线控制,在树莓派端接入GPIO.7可直接读取w1_salve文件中的温度数据。
2.3 继电器模块
本系统采用四路继电器,分别控制4个模块:水泵,通过排水、抽水来调节pH值和水温;增氧泵,调节水中的溶氧量;引虫灯,吸引昆虫聚集,成为水产品的饵料;风扇,避免CPU温度过高主动降频,导致系统不稳定,打开风扇对CPU进行降温处理。
2.4 LCD1602显示模块
LCD1602A模块可实时显示水温、溶氧量、pH值、CPU温度以及指令动作,便于养殖户在线下直观、实时查看智能水产养殖系统的运行状况。考虑到节省I/O口的使用,本系统采用LCD1602的“4 bits”传输模式,即只使用Data4~Data7数据口进行数据传输。
2.5 语音模块
语音模块将音频数据传输至TDA2030A功放板放大功率后由喇叭播放。当检测到溶氧量、水温、pH值等参数超出阈值时,在本地进行语音播报,提醒养殖户水体质量出现问题需要及时处理,若继电器动作位发生变化,也会及时播报。“语音合成”功能通过调用百度开发者平台的API实现,需添加AipSpeech模块包,设置APP_ID、API_KEY、SECRET_KEY等参数。将要转换的字符串与参数一起发送,返回的音频数据封装到.mp3中保存至本地,最后播放输出。
2.6 pH值传感器模块
pH值检测选用diymore的pH值检测模块与非可充式pH复合电极探头。该模块可检测的范围为0~14(pH),可直接使用由树莓派的5 V供电口作为工作电压,无需电源,响应时间小于5 s,满足智能水产养殖系统的功能需求。
3 系统软件设计
系统的软件设计包括树莓派端的程序设计和手机监测控制端APP,其间通过OneNET平台进行数据交互。APP端的软件设计如图3所示。
图3 手机APP端的功能实现
3.1 手机控制端APP设计
APP程序由Qt编写,编译生成安卓APK安装包。程序可实时监测水温、溶氧量、pH值,拥有自动模式与手动模式。
主界面如图4所示。可在主界面进行水泵、增氧泵、引虫灯的开关操作;可实时显示溶氧量、水温、pH值;点击“模式切换”进行手动模式与自动模式的切换,点击电源键关闭程序。
图4 主界面
参数设置界面如图5所示。在参数设置界面可显示当前设置的阈值,点击具体数字可进入键盘输入界面,点击“返回”可退回到主界面。
图5 参数设置界面
键盘输入界面如图6所示。在键盘输入界面可通过点击数字按键进行输入操作,点击“OK”键可更新阈值,点击“返回”可退回到参数设置界面。
图6 键盘输入界面
3.2 控制算法实现
APP的程序流程如图7所示。在程序初次运行时会创建本地数据库Mydata.db,再创建数据表parameter,将P01~P06等6个阈值参数添加至表内。在第二次运行时查询表内数据进行初始化。
图7 APP程序流程
程序初始化成功后进入主界面,在主界面判断当前模式,若为手动模式,触摸3个开关可控制继电器的开关;若为自动模式,可根据阈值自动控制继电器的开关。继电器的3个开关标志位封装在1个数据的不同bit位内,根据bit位的变化控制继电器,减少因多数据发送导致的网络延迟。
“设置”按键按下后界面跳转至参数设置界面,在参数设置界面可显示自动控制模式下的阈值设置范围,点击各参数值可记录点击的参数id,然后跳转至键盘输入界面,输入参数后根据记录的参数id更新数据表中的数据。
当判断到参数设置按键按下时跳转至键盘输入界面,在输入界面可点击键控数字0~9,“小数点”“删除”“返回”“确定”等操作字符串temp进行数字输入。
4 测试和结果分析
4.1 硬件测试
硬件测试主要在树莓派端进行:配置好开机自启动文件start.desktop,将主程序文件添加进文档内,再添加一行代码EXec=python3 /home/pi/zk/main.py,便可实现开机自启动。
(1)DS18B20温度传感器的测试:将传感器的探头伸入水中进行长时间检测。如图8所示,在最近的100次数据获取中,温度在27~28 ℃之间波动,温度正常。
图8 近100次温度数据检测结果
(2)pH值传感器的检测:将pH值传感器的探头伸入水中进行长时间工作。如图9所示,在最近的100次数据获取中,pH值在7.5~7.6之间波动,pH值正常。
图9 近100次pH值数据检测结果
(3)四路继电器的动作位测试:在手机端下达对水泵、增氧泵、引虫灯的开关指令。如图10所示,在几次测试后一切正常,继电器能正常地断开吸合,水泵、增氧泵、引虫灯能在对应的指令操作中开启、关闭。
图10 近30次指令操作数据
4.2 软件测试
客户端与云端OneNET平台的数据通信功能测试:通过fiddler实时抓取由客户端发出的数据包。如图11所示,POST方法与GET方法发出的22个HTTP数据包全部发送成功,且在OneNET平台成功获取由客户端发送的数据并将数据存储在云端。
图11 发送的数据包
软件的功能测试采用黑盒测试。在手动模式下,分别按下水泵键、增氧泵键、引虫灯键,观察到水泵、增氧泵、引虫灯正常开启、关闭,测试结果见表1所列。
表1 手动模式
在自动模式下设置温度、pH值、溶氧量的阈值,在树莓派端将pH值、溶氧量降低到低于阈值下限,观察到水泵、增氧泵进行排水、增氧操作。将pH值、溶氧量增高超出阈值上限,观察到水泵、增氧泵关闭;设置引虫灯的开关时间,观察到引虫灯在设置时间内开启,其他时间关闭。测试结果见表2所列。
表2 自动模式
软件的功能测试均成功通过,可满足智能水产养殖系统的基本需求。
5 结 语
本文基于现代水产养殖的实际需求,提出了一种基于树莓派的智能水产养殖系统的设计方案,并实现了软件代码和硬件系统的设计制作与调试。测试结果表明,所设计的系统能实现对水产养殖系统的有效监控,实现水体质量参数的实时采集、水体智能监控和手机APP远程监控功能。下一步,计划开发多机组联动控制实现多个水产养殖池塘在同一个系统的集中控制,并接入大数据,实现对不同水产品所需环境的精准控制。