本鱼塘控制系统主要由下位机设备控制端、云平台以及APP端组成。
下位机
云平台选择
为了更清晰地了解机智云,下面简单地总结了机智云平台的几个特点:
(3)功能丰富。在机智云上开发项目的时候,用户可以按照自己的实际需求,可以把多个应用模块组合在一起,开发者也可以更加方便地对这些项目进行管理。
(4)方案丰富。机智云的市场调研团队非常强大,结合全世界各种类型的业务,尽可能地给各个行业提供了解决方案,而且方案库还在继续完善和增加。
APP端
使用机智云提供的APP开源框架设计一款鱼塘控制APP进行远程控制,并选用机智云官方提供的终端进行调试。
系统的硬件决定了系统具体能够实现的场景功能,一个良好的硬件设计直接关系到系统的稳定性以及性能的优势。
2.1、硬件端的整体结构
2.2、硬件模块组成
本文设计的智能水产养殖之鱼塘控制系统全部由模块化设计
2.3、硬件模块实现
根据模块组成图,下面分别对各大模块进行介绍。
主控芯片
显示模块
控制输出模块
本文采用继电器控制模块来进行对外围设备,如进水泵、排水泵、酸碱液体泵、热水泵、充氧机的驱动控制
系统设计检测温度选择防水封装类型的DS18B20温度传感器。
水位传感模块
本系统的水位传感器选用的是HC-SR04超声波传感器。
溶解氧/温度气压传感模块
由于水中的溶氧量与当地气温和大气压有着密切的关系,只要测量出空气中的气温和气压后可以间接地计算出水中的溶解氧的含量。考虑到溶解电极昂贵的价格,因此可用温度气压模块替代溶解氧传感模块,进而间接地测量当地水中的溶解氧,温度气压模块选用BMP180继承模块,实物图如下所示。
PH传感模块
PH传感器模块由PH传感器和放大电路组成,PH传感器采用E201-C-9传感器,是用两种电极结合的组成的复合电极,可测量的PH范围为0-14,零点电位PH为7±0.25,测量水温的范围为0-80℃,PH传感器实物如下所示。
CA3140封装图:
CA3140引脚说明:
WiFi模块
电源模块
AMS1117的电路图:
三、系统软件设计
3.1、下位机显示面板设计
使用VGUS软件在对串口屏界面进行设计时,根据本系统的实际情况,完成四个功能界面设计,分别是主界面、环境监控、环境控制以及阀值设置界面。
3.2、串口屏界面控制
系统开机时默认首先进入到主界面,我们可以在主界面进入对应的配置环境,以便于我们查看鱼塘的环境参数,主界面显示如图所示。
从主界面进入到控制界面,在控制界面可以对调节环境的外围硬件设备进行手动的方式控制或者设置自动控制,控制界面如图所示。
同时可以联合阈值设定,对各种环境变量进行控制,更加方便快捷的对鱼塘环境因子做出最敏捷的反馈,实现鱼塘环境控制的自动化,阈值设定界面如图所示。
3.3、下位机软件设计
水温控制子程序
鱼塘水温由DS18B20传感器进行监测,当前温度低于预设水温阀值下限,那么打开热水进水阀;当温度高于预设水温阀值上限时打开冷水进水阀来综合鱼塘的温度。如果监测到的水温在预设阀值以内,那么关闭冷水和热水的进水阀。温度控制子程序流程图如图所示:
水位控制子程序
水位传感器是利用超声波模块来监测水面到地面的距离,获取鱼塘底到地面的距离,可计算出鱼塘中水位高度。如果实际水位高度高于预设阀值上限,那么打开排水泵进行泄洪。当实际水位低于预设阀值下限,此时打开进水泵增加鱼塘的水量,保证鱼类的生存区域。
溶解氧/温度气压控制子程序
由BMP180传感器检测出当地气温和气压后,直接计算气温和气压与水中溶氧量的计算关系得出水中的溶氧量,通过打开充氧机充氧的方式来控制水中的含氧量,而水中含氧量的饱和不会影响鱼类生长,因此,我们只需要在水中溶氧量不足时打开充氧机即可。溶氧量控制子程序流程图如图所示:
WiFi模块软件设计
本系统是选用的ESP8266WiFi模块与机智云的云端建立连接关系,先在WiFi模块里烧录机智云GAgent固件,然后利用GizWits协议接入到机智云云端,下位机每30秒将会和云端通信一次,进行上报数据以及下载控制变动。ESP8266使用指令互相发送请求与应答的方法与STM32建立通信,两者之间使用串口进行通信。
接入机智云软件设计
在设备接通电源以后,在ESP8266WiFi模块第一次接入机智云云端之前,需将ESP8266设置为AirLink模式。
◆在机智云官网注册一个属于自己的账号,以后在上面创建的项目也是通过个人账号来管理。
◆我们使用机智云提供的APP进行远程控制,选用机智云官方提供的终端进行调试。
◆下载机智云的GAgent固件并烧录到ESP8266WiFi模块内。
◆直接使用机智云官方提供的代码,移植到本系统里。在MCU开发方案那里,选择STMM32F103ZET6硬件平台的开发,然后填入Productssecret,这个可以在产品基本信息里查看,然后点击生成代码包,最后,在MCU开发里下载根据自己项目生成的相应的代码包,将其移植进来。
GizWits文件夹的移植分为五个步骤:
◆程序在运行时在一些必要的时候需要复位,这里就需要用到复位函数。ESP8266在和主控通信时便是如此,mcurestart()便是这个函数,对WiFi模块进行软件复位。
◆通过结构体dpint把采集到的各项数据上传到云端,结构体内容如下:
typedefstruct{
boolcoldin;//冷水进水泵
boolwaterout;//出水泵
booljiasuan;//加酸水泵
booljiajian;//加酸水泵
intwatertemp;//水温
intwatertempup;//水温上限
intwatertempdown;//水温下限
floatph;//PH值
floatphup;//PH上限
floatphdown;//PH下限
into2;//溶解氧
into2down;//溶解氧下限
intwatrlevel;//水位
intwaterlevelup;//水位上限
}dpint;//数据点
◆实现系统内设备的控制功能。在gizwitsEventProcess()事件处理函数中添加需要处理数据点的事件,当设备收到云端下发的信息时,将会根据具体情况选择如何执行何种控制动作。
四、系统总结
在云端虚拟设备中分别填入要下发的数据点的值,然后点“推送”按钮,将数据下发给APP,APP端能够收到数据并显示;接着在APP端设置数据的值,然后可看到云端虚拟设备能够同步响应,则成功实现通信。
本鱼塘智能控制系统设计操作简单,界面简洁直观,简单易上手,可实时监控,控制反应快,使鱼塘养殖变得更加简单,可以极大地降低劳动强度,节省劳动成本的同时也提高了养殖效率,系统整体实物效果图如下所示。
责任编辑:haq
原文标题:基于机智云自助开发平台的智能水产养殖之鱼塘控制系统设计
长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)