基于STM32 的智能鱼缸的设计与实现*
2023-12-28胡智豪宋志强
胡智豪,宋志强
(无锡学院自动化学院,无锡 214105)
1 引 言
随着生活水平日益提高,人们把更多的时间、金钱、精力投入到自己的兴趣爱好之上,例如饲养观赏性鱼类。国内外观赏鱼市场正在快速发展[1-2]。然而养好观赏鱼并非易事,饲养人需要为鱼提供适合的水温、水质和食物等,这就加大了人们时间和精力的投入,同时,也提高了大众进入观赏鱼饲养领域的门槛[3]。市面上主流的智能鱼缸系统的设计思路是先要满足鱼缸基本的观赏功能,再利用一些传感器可以让人们更加方便地得到鱼缸内的一些主要信息,最后利用一些无线控制功能让人们可以通过便携式设备管理鱼缸[4-6]。本设计是一款基于STM32 的智能鱼缸系统,使用传感器获取鱼缸的关键信息,对信息进行处理和上传手机端,借助于智能化产品的强大功能将观赏鱼饲养的门槛降低,能够让系统用户在饲养观赏鱼的同时体会到从传统鱼缸饲养中得不到的乐趣。
2 系统设计方案
此款智能鱼缸设计有如下功能:按键控制、温度测量、Wi-Fi 控制、模拟喂食、浊度检测、光强检测、屏幕显示[7-9]。
系统的整体连接图如图1 所示。按键控制是通过按键操作实现鱼缸进行喂食、开关灯、换水、增氧。Wi-Fi 控制是通过ESP8266-01S 模块和机智云平台搭配使用,在手机端控制鱼缸和进行信息查询。光强检测是通过光敏传感器模块来实现光强数据的采集。浊度检测则是通过浊度传感器模块来实现浊度数据的采集。
图1 系统整体连接图
3 系统硬件设计
系统的硬件设计原理图如图2 所示。采用的主控芯片型号为STM32F103C8T6,该芯片是意法半导体公司(ST)推出的基于Cortex-M3 内核的32 位微控制器,其封装型号采用LQFP48。该芯片RAM 容量为20kB,ROM 其容量为64kB,拥有的主要硬件资源为37 个GPIO、2 个ADC、4 个定时器/计数器、2个I2C 和3 个USART。
图2 系统原理图
系统的主要硬件模块及具体描述如下:
Wi-Fi 模块:选用乐鑫ESP8266-01S。该模块不仅价格便宜,且与机智云平台配合使用进行物联网开发的相关资料也较齐全。
舵机模块:用于现实喂食部分对电机的控制。设计选用SG90 舵机,其可以通过改变PWM 的相关参数从而改变电机转动的角度。
OLED 屏幕模块:其满足的是人们最直观的视觉需求,因此是系统极重要的部分。对于屏幕有较多选择,例如LCD1602、IIC 屏幕、SPI 屏幕等。综合考虑后选用支持IIC 协议的0.96 英寸OLED 屏幕。
电机驱动模块用来驱动增氧和换水这两个功能所依赖的电机。选用L9110 这款电机驱动模块,因其价格便宜,且有两路输出,可以同时控制两个电机,符合设计要求。
浊度传感器模块选用TS-300B,该模块配合转接板可以输出数字量和模拟量,价格也较适宜。
温度传感器模块选用DS18B20,它具有微型化、高性能、抗干扰能力强等优点,易于搭配微处理器产品使用。
4 系统软件设计
系统上电后,程序从主函数运行,对所需模块进行功能封装。在主函数调用各个模块运行时需要相关函数实现对模块的调用和相关数据的获取。主函数流程图如图3 所示。
图3 主函数流程图
主函数之外的其他软件模块包括:按键控制、光强获取、OLED 屏幕显示和电机控制,具体如下:
1)按键控制
按键控制功能主要分两部分,一是通过按键实现鱼缸的控制,二是通过按键进行鱼缸的配网。由于STM32 具有大量的中断资源,故采用中断法实现按键的控制,以获得更高的程序执行效率。
2)光强获取
光强获取模块功能主要是获取光强数据。它将光敏传感器模块输出的数据传到STM32,经STM32内部ADC 对数据进行处理,将数据在屏幕显示并上传至手机端,最后根据光强控制LED 的亮灭。
3)OLED 屏幕显示
OLED 屏幕通过IIC 协议与STM32 通信。首选初始化IIC 总线,之后初始化OLED,通过IIC 总线向OLED 发送指令和数据以初始化OLED 显示屏。初始化包括设置OLED 显示模式、对比度、亮度等参数。STM32 获取相应数据并完成处理后,向OLED发送显示数据,驱动OLED 液晶显示屏在对应位置显示相关信息。
4)电机控制
用户可通过按键手动控制电机的打开或关闭,也可通过手机端下方命令控制电机。当浊度传感器检测到水体浑浊时便可自动控制电机进行换水。
5 机智云平台设计
机智云平台设计实现的功能是将各传感器数据上传到手机端显示,便可在手机上通过Wi-Fi 下发指令控制智能鱼缸。机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务,将智能硬件产品开发周期缩短,快速实现智能化[10]。
5.1 创建数据点
使用机智云平台进行开发时,首先要创建数据点,并需要定义数据点的类型。设计通过机智云创建的数据点如表1 所示。
表1 机智云平台创建的数据点 单位:%
5.2 机智云代码移植流程
用机智云平台创建好项目后,进入到相关的界面,按照界面的提示进行操作,它即可自动帮助用户生成Wi-Fi 控制的相关代码。在代码包生成以后,需要对其中代码进行移植。只有将代码移植到工程文件里面后,才能实现预期的功能。机智云代码的移植流程如图4 所示。
图4 机智云代码移植流程图
5.3 手机APP 设计
手机APP 是通过机智云平台生成的。使用机智云平台进行APP 生成的方法非常简单,不需要按照安卓APP 开发那样操作,对于不懂安卓应用的开发者来说是非常友好的。其配置流程如下:
点击创建移动应用;点击右上方进行APP 界面设置,将创建的项目进行关联,最后保存退出;进入控制页面选择配网方式等,保存退出;点击构建应用,等待应用构建完成,最终在手机端扫码下载APP。各步骤操作及界面如图5 所示。
图5 机智云平台生成APP 各步骤界面
最终由机智云生成的APP 的界面如图6 所示。
图6 机智云生成APP 界面
6 结束语
系统基于STM32F103C8T6,实现了智能鱼缸所需的温度测量、Wi-Fi 控制、喂食等功能。通过使用性价比较高的Wi-Fi 模块配合机智云平台实现了手机端控制。对比其他的智能鱼缸设计,远程控制实现方式更加简单,成本也较低。系统在加热器设计部分还存在不足,将在后续研究中加以完善。