水族箱智能控制系统的设计与实现

时间:2024-09-20 12:17:30 来源:作文网 作者:管理员

摘 要:本文基于单片机技术,设计了一套基于时间控制与多线程技术的水族箱智能控制系统。通过一台arduino mega 2560 单片机作为系统的处理器,控制控温模块,换水模块,时间显示模块,自动喂食模块,水位控制模块等。总体基于时间控制,用时钟芯片提供整体的系统时间,系统按照预先设定好的时间顺序依次运行,除非触发中断点,否则无限循环。本控制系统功能多、成本低,能够实现对水族箱的智能控制。

关键词:水族箱;智能控制;单片机;多线程

Design and Implementation of Aquatic Animals Box Intelligent Control System

LIU Dachuan, LI Zhaohe, SUN Shujie, YUAN Chi, ZHANG Zhijia

(School of Software, Shenyang University of Technology, Shenyang 110003,China)

Abstract:Based on the single chip computer, this paper described the design of a fish tank intelligent control system basing on time control and multithreading technology. It adopts an arduino mega 2560 single chip computer as a processor of system to control temperature modular, water changing modular, time display modular, water condition modular and other modular. Totally, the system is based on time control, which uses a clock chip to provide the whole system time, and the system will run in the preset sequence. Unless actuate the trigger point, it will cycle infinitely. The system has the advantages of various functions and low cost, and also can realize the intelligent control of aquarium.

Keywords: Aquarium; Intelligent control; Microcontrollers; Multi-thread

0引 言

随着人们生活水平的日益提高,家用水族产业规模的年增长率达到13.8%,且有逐年递增的趋势,而现有的智能水族箱大多智能化水平低,仍需要人们投入大量精力去管理,并且价格昂贵,结构复杂,容易损坏,令保持一个适宜水族生活的环境成为一件非常耗费精力的工作。

1系统总体设计

系统总体基于时间顺序工作,其下分为以下几个功能模块:温度控制模块,水位控制过滤模块,自动/定时喂食模块,时间显示模块,定时/自动照明模块,定时增氧系统等模块,如图1所示。这些子系统均受单片机控制,具有独立的信号检测输入以及模拟信号输出功能,结合单片机自身的数据储存电路,复位电路,运算电路,以及数码管显示电路,共同集成成为水族箱智能控制系统。

中央处理系统

图1 系统模块示意图

Fig.1 System module schematic

系统的控制对象为水族箱,目的为实现水族箱的智能控制,提供自动管理的水族箱智能控制系统,设计时涉及的参数有水面高度、水温、环境光照强度等。各种参数及其处理机制如表1所示。

表1 系统主要参数及处理机制

Tab.1 Main parameters and system processing mechanism

系统参数

✪相应的处理机制

水温

多点采集,分析后控制加热棒的工作状态

水面高度

通过判断是否超限来控制两个♪水泵的开闭情况,从而控制水位

喂食时间

通过获取环境时间并比对来决定是否喂食

环境时间

时钟模块获取环境时间交由8位数码管模块 环境光照强度

在光照低时打开灯光(只在天黑后开启)

增氧时间

通过获取环境时间并比对来决定是否增氧

本系统在使用过程中还有部分参数可以设置,具体有以下几个:定时照明时间,定时增氧时间,自动喂食时间和喂食量,这些参数可以通过手机使用蓝牙连接通信系统,在输入伴随系统提供的口令后进行设置,设置后对应系统自动按照参数设置进行运行,参数可随时通过手机进行修改。

本系统智能水族箱及控制系统布置如图2所示。

图2 智能鱼缸及控制系统布置示意图

Fig.2 Aquarium and intelligent control system schematic diagram layout

2 硬件设计

系统的硬件设计分为数据采集、中央处理、通信三个主要部分,具体设计如下。

图3 Arduino mega 2560 电路图

Fig.3 Arduin★o mega 2560 circuit diagram

通信部分用一个HC-05主从一体蓝牙模块来实现,该模块为民用级模块传输距离大约10cm-10m,符合系统利用手机蓝牙通讯及实现相应控制的需求,使用UART协议与单片机实施串口通信,模块由中央处理系统统一供电,在检测到设备接♀入后将信息传至单片机进行分析,在密码匹配正确后允许进行用户操作。HC-05的电路图如图4所示。

图4 HC-05蓝牙模块电路图

Fig.4 HC-05 Bluetooth module circuit diagram

3 软件设计

系统软件流程以时间控制为核心,分为系统运行时间和环境时间两个部分。流程如图5所示。其中系统运行时间部分运用了中断控制思想,定时读取传感器采集的信息交由单片机运算,这些设备只受系统运行时间影响,与环境时间无关,温度设备5s采集一次,其他设备均10s采集一次。

环境时间部分主要为数码管提供时间信息,同时,控制需要定时开启的设备。运行两个时间,由于抢占,会大大增加冲突可能,降低单片机的运算效能,甚至导致死机,所以系统利用了arduino mega2560位多线程芯片的好处,设计了多线程运行,基于时间片轮转调度算法,让两个时间以快速交替运行的方式模拟同时运行,这样减小了运行的冲突发生几率。系统流程如图5所示。

开始

开始环境时间获取

开始系统运行计时

否 与设定时间进行比对

判断是否到达中断点 是否相同

执行中断函数 执行设定函数

判断是否 否 判断是否 否

有结束操作 有结束操作

是 是

结束

图5 软件流程图

Fig.5 Software flow chart

系统软件设计中存在中断控制、多线程控制、用户控制与反馈、采集频度等几个关键问题。具体可做如下论述。

(1)中断控制。系统的中断控制是指在到达系统运行的特定时间点时,系统中止计时并切入中断函数中,待运行中断函数后,系统重新返回计时,同时继续运行,在进行软件设计时,并未将各个数据采集作为主程序,若将数据采集作为主程序,则会导致系统时刻都在进行数据采集,导致高速刷新,影响程序的流畅运行,直至死机,虽然用延时处理的方法可以解决该问题,但是这样却大大增加了程序的占空比,将显著影响处理效率和处理速度,容易导致处理延误从而造成错误。

(2)多线程控制。系统使用多线程控制和中断控制并存的原因是系统并未使用单片机自带的时钟芯片而是使用了外接的时钟模块ds1307,这样可以获取年月日时分秒信息,从而做出独立于系统运行时间的真实时间,单片机多线程的基础是时间片轮转调度算法,这是最古老公平的算法,由于系统较为简单,并不涉及线程抢占和优先级操作。采用多线程可有效避免系统运行时间计算和时钟模块提供的时间计算合理分配内存不冲突,时钟模块在接入后即开始工作,如果没有多线程会很快使时钟模块的效应器8位数码管的缓存溢出,从而使得数码管卡住,无法显示。

(3)用户控制与反馈。系统由于受单片机运算能力所限,只向用户提供一部分控制功能,这种部分开放的方式可以有效避免因误操作或恶意操作所导致的系统故障,同时,系统并未考虑使用过多的外部显示设备,而是选择使用手机显示,这样可以减少成本,同时减轻了系统的处理压力,反馈的模式采用基本的询问―回答模式。在处理反馈和控制操作前,用户需输入实现设定的口令,但鉴于系统安全级别不高,因此口令不进行加密,可直接使用明文存储,这样可以一定程度避免因恶意连接而导致的长时间占用。

(4)关于采集频度低的问题。系统属于家居设备应用,对数据的需求量小,要求的实 ヅ时程度低,没有必要进行过度高频的信号采集,所以系统确定的信号采集频度较低。另外,本系统仅采用成本较低、能耗较小的单片机进行控制。

4结束语

以arduino mega 2560单片机为核心的水族箱智能控制系统可以使水族箱获得自动控制温度、自动控制水位、过滤、自动喂食、时间显示、灯光控制等智能控制功能,有效地降低了总体成本,并明显提升了水族箱的智能度,目前该系统仍有较大的可扩充性,具有较好的理论参考和使用价值。


热门排行: 教你如何写建议书