带有智能温度控制的水族箱系统设计
2020-08-14林天翔谢欣辰黄炳晓
林天翔 谢欣辰 黄炳晓 丁 嘉
1 设计背景
水族箱俗称鱼缸,是一种饲养热带鱼或金鱼用作观赏的玻璃器皿,据不完全统计全球约有6 000 万以上爱好者。水族箱可分为鱼缸、草缸、龟缸等多种类型,简单的水族箱往往只饲养一条或者几条鱼,而复杂的水族箱往往配置齐全的加热、过滤系统和各种造景,尤其是热带雨林缸,有的水族箱系统还配备精密的智能控制系统用于模拟生态环境,给人以美的享受。
在中国,随着社会发展和人民生活水平的逐步提高,有越来越多的人加入水族箱爱好者这一群体中来,但由于缺乏经验以及工作繁忙,很多水族箱的境况并不是很好,部分水族箱内部环境较差,鱼群死亡频率较高,不仅影响了用户心情,也影响了水族箱作为装饰品的作用发挥。
一个典型的水族箱必须包含以下功能:首先是过滤系统,过滤系统主要用于过滤水中的杂质比如多余饵料、鱼便等,在硝化细菌作用下,将其分解为无害物质,避免氨的比例过高;其次是温度控制系统,很多有热带鱼基因的鱼类尤其是高价热带鱼,都需要稳定的温度环境,倘若箱内温度过低或者变化剧烈,均会大大影响鱼群生长,甚至导致其死亡;第三是自动增氧系统,该系统可以在温度较高时节,及时向箱内补充新鲜空气,增加水中的溶氧量。除了以上必要系统外,还可以适当灯光控制系统、自动投饵系统、自动补水系统甚至是自动遮光系统,还可以借助发达的网络和高清摄影机,将水族箱环境参数和实景画面通过互联网传递到远处的用户移动终端中,便于用户及时了解家中水族箱的情况[1-2]。
2 水族箱硬件系统
根据以上需求分析,智能水族箱硬件系统框架简图如图1 所示。
图1 智能水族箱硬件框架简图
微控制器是整个系统核心,通常选用高性能的单片机比如STM3F103 系列单片机构成,其内部往往包含64KB 的FLASHROM 和20KB 左右的RAM,可以满足简单算法控制的运算能力需求。
外部模块中主要包含检测、输入、输出、显示与传输、电源及扩展等若干模块。其中检测模块包含水温传感器、水位传感器和浊度传感器三部分,用于检测水族箱的环境因子,以便微控制器根据箱内环境变化做出决策,启动过滤、补水或加热系统。
灯光控制、过滤控制、增氧控制、自动投饵控制、补水和加热系统构成了水族箱智能硬件的执行机构模组。其中灯光系统是一组高亮度LED 补光灯,用于向水族箱内补光,但需要注意的是,光照会加剧箱内藻类繁殖,因此光照时间需要精确控制,非必要时不开启补光灯。过滤系统核心是一个受控的“增氧——造浪——过滤”三合一微型水泵,本次设计中水泵额定功率6W,扬程约为0.8m,流量约每小时350升。根据研究,天然水体的溶氧量通常在7mg/L,而水族箱内通常为3-5mg/L,增氧系统主要用于向水中补充氧气,尤其是在箱内鱼群密度较高时,增氧系统的效果除了跟工作功率有关外,还跟气石涌出的气泡大小有关,在条件允许情况下,应优先选择气泡颗粒较小的纳米气盘,以增大空气与水接触面积,提高溶氧效率。自动投饵系统由一个电机以及附属机械结构组成,通过微控制器定时控制阀门的开闭时间长短,打开时间越长,投饵量越多,且投饵系统与过滤系统需要协调,如果15 分钟内鱼儿没有吃完饵料,则开启过滤系统,将多余饵料过滤掉,以免污染水质。加热系统是一个PMW 控制的金属壳加热棒,利用PWM 和PID 算法,精确控制温度并改变温度变化率,将其稳定在鱼类最适宜的温度水平上。以上执行机构模组和微控制器之间通过三极管、继电器等驱动电路相连,可在微控制器控制下,改变箱内多种物理量状态,使得水族箱基本稳定在最佳状态,减轻用户的操作负荷。
由于微控制器自身计时精度较低,故设置外部时钟模组(DS12C887),它是一款纯数字式芯片,在无外部电源情况下连续工作10 年,可计算到2100 年前七种日历信息并带闰年补偿,即年、月、日、星期、时、分、秒。该模组用于为系统提供统一的时间基准,减少时间误差;输入模块(包括六个独立按键),可便于用户设置和改变预订信息或命令;整个水族箱的状态可在显示模组上显示出来,也可以通过无线传输模组上传到云端。电源模组给整个系统提供电力支持,它由一个220V 转 5V 和3.3V 的模块化电路构成。本系统还留有一定的扩展口,预留给诸如遮光控制模块等新的输出控制模块使用。
3 软件系统设计
3.1 软件主流程图
系统启动后,首先完成初始化并进行自检,然后根据用户需求选择自动管理模式或手动管理模式;自动和手动管理模式的差别在于手动模式下,各种日常工作将在显示模组显示,但各种执行机构并不会被自动启动,而等待用户操作,这样可让用户体验饲养的乐趣;而在自动管理模式下,系统将读取预存在ROM 中的命令操作符,根据预定日程完成定时自动投饵、过滤等功能,考虑到夏天饵料容易变质,故最长自动管理时间限定在7 天。在其他空闲时间段,系统将不断查询当前的环境状态信息并加以判断,根据判断结果调用功能实体(过滤、恒温、水位控制)等函数,使得环境条件维持在预设范围内,图2 为系统主流程图。
图2 系统主流程图
3.2 PID 温度控制算法
本系统大部分执行机构都采用定时/开关控制手法,控制方式简单。但考虑温度控制具有大滞后性以及鱼类的适应能力,水族箱的温度控制考虑采用闭环控制手法。其主要控制思路是利用温度传感器检测温度,然后利用PID 算法解算出PWM 占空比,然后通过调整开启/关断的时间比值来实现温度控制。图3 是PID 算法基本结构框图。
图 3 PID 基本结构框图
在本系统中采用位置型数字PID 控制算法,其基本控制公式为:
其中e(k-N)为本时刻前第N 时刻的检测误差。
在PID 算法中,比例系数KP主要用于加快调节,减少偏差,但Kp过大会大幅度增加超调量;积分时间TI用于消除静差,同时减少超调;微分时间TD用于超前响应,提高系统的响应速度同时改善超调。在本次设计中,考虑到水族箱系统温度超调是不允许出现的,因为鱼类无法承受温度急剧升高,因此采用了专家型PID 的设计思路[4]。主要措施包括:
(1)当偏差e(k)绝对值很大时,不管误差变化趋势如何,控制器都按预设定值输出,以期快速减少误差,同时避免超调,此时的系统相当于一个开环系统。
(2)当偏差 e(k)·Δe(k)>0 或者 Δe(k)=0 时,说明偏差在朝绝对值增加的方向变化或者维持某一定值;此时观察e(k)大小,如e(k)绝对值超过某个设定值M,则输出较强的控制作用(2),减少偏差。
如e(k)绝对值小于该设定值,则可认为虽然偏差有增大趋势,但偏差本身并不大,可以考虑实施一般程度的PID 控制作用(3)。
(3)如 e(k)·Δe(k)<0,e(k)·Δe(k-N)>0 或者 e(k)=0 时,说明偏差的绝对值有减小的趋势或者以达到平衡,此时可以维持控制器输出不变。
(4)如 e(k)·Δe(k)<0,e(k)·Δe(k-N)<0 时,说明偏差处于极值,此时如果偏差绝对值较大,可实施较强的控制作用(4)
如果此时偏差绝对值较小,可实施较弱的控制作用(5)。
(5)当偏差小于精度时,引入积分作用,可进一步减少偏差。
根据以上思路,利用文献3 中的模型,可实现较理想的控制效果,其matlab 仿真结果如图4 所示。
3.3 通信协议设计
在试验型样机中采用Zigbee 模块模拟联机效果,在工程化后可用蓝牙或者wifi 模块来替代,主要用于多水族箱控制和数据整理、传输,具体措施如下:
(1)对分机进行初始化,使其处于接收地址的待命状态。
(2)首先主机发送代表地址的数据包,该数据包包括了8 位地址代码。所有分机接收该地址包后与本机地址对比,匹配的标志位置零,并发送本机地址返回主机;否则标志位置一,等待主机发送下一个地址数据包。
(3)各环境变量都由4 位数字组成,在发送数据前需要将数据逐位拆分。
(4)主机发送命令 20,21,22,23,分别定义为要求分机发送环境变量的千、百、十、个位。
图4 专家型PID 性能仿真
(5)主机发送后会等待分机应答,如分机发出有效应答信号并被主机接收,则下一步主机将发送命令,否则重复发送地址或命令代码。
(6)主机命令信息如表1 所示。
表1 命令信息
4 设计效果
根据以上软硬件设计思路,相继完成了硬件和软件设计,并制作了样机,并利用凑试法[3]在原有算法基础上调整了PID参数,控制效果如表2 所示。
表2 数据记录
通过实测数据发现,加入了PID 算法后,控温效果较传统模拟式加热棒效果有很大提升,除非传感器失灵,否则不易出现“烧煮”效果。
为节省成本,本次采用了浮子开关作为液位控制装置,现实中浮子开关精度较低,但高性能的液位变送器价格过高,难以在家庭水族箱中应用,因此未来还需要搜索更具有性价比更适合家庭的液位控制开关。
5 结语
通过以上试验表明,在水族箱智能控制方面,即便是低成本的STM32 系列微控制器,也能实现很好的控制效果。现在水族箱智能控制器还属于比较小众的领域,但个性化需求进一步凸显,会涌现出各种各样适合不同类型水族箱的控制器,其生态环境控制和模仿能力还将会进一步提高。同时智能水族箱融入智能家居系统,也会给这一“古老”的爱好增添新的乐趣。