向镍锌 郭 平 曹 旬
(西昌学院信息技术学院,四川 凉山615013)
随着电子类产品的不断迭代更新,社会节奏随之逐渐加快,人们在享受快节奏的同时希望在家庭和办环境中营造慢的、惬意的生活。因此,在家庭、办公场所、商场等地,能看到不同型号、功能的鱼缸,为人们带来视觉上的放松体验。目前市面上此类产品的换水、喂食、加热等功能往往还依赖于用户的手动控制,并非智能化的整体系统,给人们的生活带来了很大的不便[1-2]。资料显示,目前全世界观赏鱼缸正以每年超过10%的速度增长,我国以观赏鱼缸为龙头的水族产业发展虽已有十余年,但规模不大,还存在巨大的市场发展潜力[3]。
本系统由三大模块构成,分别是服务器、移动终端App、系统硬件。服务器端由服务器程序与数据库组成,作为系统桥梁,具有解析App的请求信息、发送Wi-Fi无线模块数据信息、存储信息等功能。移动终端App为用户提供远程观测数据、远程控制鱼缸进行换水和喂食的操作界面。系统硬件由STM32微控制器、Wi-Fi模块、温度传感器模块、水位传感器模块、换水模块、喂食模块、OLED显示屏模块组成,为本系统监测鱼缸环境提供实时的底层数据。
如图1为本系统的设计框图。温度与水位传感器将采集的数据传输到STM32微控制器,并通过显示屏显示数据信息。微控制器通过Wi-Fi模块将数据发送到服务器端。移动端App发送数据请求与控制命令到服务器,当数据超过预设阈值时,用户可通过移动端远程发送控制命令到服务器,服务器再通过无线模块回传控制信息至微控制器,实现为鱼缸换水和喂食的功能。
图1 智能鱼缸监控系统设计框图
系统硬件包括主控制器模块、无线通讯模块、传感器采集模块、显示模块、换水模块、投喂模块几部分,通过对以上各模块进行设计完成鱼缸内环境数据检测、数据显示、数据传输、远程移动端访问、远程控制换水与投喂,实现智能鱼缸的自动监控功能的目的。
系统选用以ARM为内核的STM32F103C8T6芯片的最小系统模块作为硬件设计的核心,其具有高性能、低时延、低功耗、低电压、稳定性高、集成度高等特点[4],能为本系统提供及时、高效的处理。
Wi-Fi模块是用户与单片机通讯的核心组件,本项目选择ESP8266 Wi-Fi模块,通过发送AT指令的方式可对ESP8266 Wi-Fi模块进行配置,方便快捷。该模块共有六个引脚,除电源和接地引脚外,只需要将 其RXD和TXD引脚,与单片机的TXD、RXD连接,使用AT指令即可进行数据传输[5]。设置模块进入透传模式后,使用TCP/IP协议,可实现与服务器的网络通信。
温度传感器需要深入水中对鱼的生活环境温度进行监测,因此本设计选用专用液体温度传感器DS18B20数字温度传感器探头,其测量温度为-55℃~+125℃,工作电压为3 V~5 V。鱼的普遍适宜养殖温度为+20℃~+32℃,因此该温度传感器探头完全满足温度测量范围,且测量结果以9~12位数据量的方式串行传送[6],单片机可直接将信息传输到用户查看。
水位传感器的主要作用是实时传送水位信息到单片机,到达系统预定时间或移动端发送换水操作时,进行换水操作,所以本设计选择成本低,灵敏度高的水位传感器,该水位传感器的工作电压为3~5 V,工作电流小于20 mA,不会对鱼儿产生影响,安全可靠。
系统换水与喂食模块以舵机为基础,通过执行单片机的控制命令达到换水与喂食的目的。换水模块通过接收单片机的控制命令,转动舵机至对应角度,使鱼缸放出对应缺口,提供放水功能,同时在进水口设置一根连动杆,连接水源,进行加水操作,当换水时长达到要求后,换水模块自动复原。喂食模块与换水模块原理类似。用户可在移动端设置喂食间隔时间,也可立即进行喂食操作。服务器收到移动端控制信息后判断喂食时刻,若满足条件则向单片机发送控制指令,旋转舵机,饲料落下进行喂食,喂食完毕后恢复初始状态。
系统软件设计包括服务器的开发、系统硬件编程和移动端App的设计。服务器端的开发,主要实现信息的存储、数据库的调用、命令的转发;系统硬件程序主要实现水温的检测、水位的检测、Wi-Fi模块的启动、OLED模块的显示、舵机的运转;移动端App的设计,主要实现登陆、注册、水温水位信息的显示、控制指令的发送。
系统硬件程序设计流程如图2所示。上电后,单片机系统、Wi-Fi模块、传感器模块、显示模块首先进行初始化,并进入工作状态。传感器采集到数据信息后,将信息发送到单片机后通过显示屏显示,Wi-Fi模块将信息发送至服务器,当服务器接收到控制指令后判断是喂食还是换水操作,并控制单片机驱动舵机进行相应操作。
移动端app开发采用C++语言进行设计,利用QT软件作为开发环境[7]。搭 配 安 装jdk-8u121-windows-x64配置、sdk-installer_r24.4.1-windows配置、ant-apache-ant-1.10.3-bin配置、ndk-androidndk-r14b-windows-x86_64配置,即可用C++进行开发,其设计框图如图3所示。
进入App后,用户可进行注册与登录,若为正确的账号密码则跳转至控制界面。控制界面上实时显示当前鱼缸温度与水位信息,并可通过界面中换水与投食图标发送控制信息至服务器,从而控制单片机进行相应操作,设计完成的界面如图4所示。
图2 系统硬件程序流程图
本系统基于STM32单片机对家用鱼缸进行智能化设计,完成对鱼缸中的水温、水位实时检测,实现了对鱼缸的远程监控,降低了观赏鱼的喂养风险。系统在功耗、体积上都较小,且设计成本低,满足实际应用需求,具有良好的市场前景。
图4 移动端App界面
图3 移动端设计框图