基于嵌入式单片机的物联网智能鱼缸设计

2024-04-16 03:25姚光业黄永华廖志贤黄国现冼世豪
电子制作 2024年6期
关键词:下位断电鱼缸

姚光业,黄永华,廖志贤,黄国现,冼世豪

(广西师范大学,广西桂林,541004)

0 引言

本着科技为人服务的理念,本系统设计了一套基于物联网的生态鱼缸系统,用户可以通过微信小程序实现对鱼缸内水温、水质、光照等的监测,同时可以通过微信小程序完成喂食、开关补光灯、加热、制冷、补充氧气、过滤水体等操作[2]。这套系统可以使人们外出的同时又能完成鱼缸生态的养护,极大的便利了人们的生活,在智能家居领域具有重大研究意义。

1 系统的方案设计

本系统设计一套基于STM32 的物联网智能鱼缸系统,系统由下位机STM32、上位机微信小程序以及通信中介 OneNet云平台三部分构成,作为一套智能家居设备,在拥有普通鱼缸自动控制的基本功能之外,本系统设计着重还开发了远程控制以及备用电源等功能。本设计由多个模块组成一套完整的物联网鱼缸系统,结构图如图1 所示。

图1 系统框图

图2 电源电路

图3 主控IO 口分配

图4 VBAT 供电电路

图5 按键与LED 电路

图6 继电器端口及OLED 显示

2 硬件设计

物联网智能鱼缸系统的硬件要求不同于其他产品,其部分传感器要放置水中,比如 TDS 传感器的探头、DS18B20探头,而光敏传感器需要置于合适的采光位置,并且鱼缸附近水汽潮湿,为保证电路板的安全,鱼缸系统采用分布式传感器布局。主要采样模块采用可插拔式连接,在单个模块故障时,可直接替换,降低成本,使整套电路系统拥有更长的使用寿命。

■2.1 电源电路

物联网智能鱼缸系统所需的电压为5V。本系统供电可通过两路Type-C 供电,一路为家庭正常用电,通过大功率手机充电器供电,保证系统正常运行。另一路为备用电源供电,备用电源通过继电器接入系统。在未断电时,通过编程使继电器吸合在常开端,在断电时,继电器自动吸合到常闭端,而常闭端接入备用电源,此时系统由备用电源供电,通过这种设计使系统在断电时能自动切换至备用电源供电。

■2.2 主控电路

■2.3 RTC 时钟供电电路

当系统意外断电时,为保证时钟的运行时间准确,在系统底板中配置了RTC 时钟供电电路,其主要围绕纽扣电池设计外围电路。两个二极管1N4148 保证电路的安全,104电容对纽扣电池进行滤波,保证供电平稳[8]。

■2.4 控制与指示电路

物联网智能鱼缸的控制与提示功能电路由7 路LED 和4 路按键构成,7 路LED 分别代表系统运行状态、运行模式,以及喂食、恒温、充氧、补光的状态。4 路按键可以完成菜单的切换、加减、确认,可以保证在微信小程序无法(停电)连接下位机时也可以完成手动控制喂食、充氧等操作,以便于维持鱼缸生态系统的运行。

■2.5 各子模块及辅助电路

本系统的子模块控制开关主要通过6 个光耦隔离的继电器来控制。单片机输出高电平时即打开子模块,反之关闭子模块。本系统还采用1.3 寸的OLED 屏幕来进行人机交流。还设置有串口打印端口,以便于程序运行中的数据传至上位机,方便调试和分析。

3 软件设计

■3.1 下位机程序结构

物联网智能鱼缸的下位机以 STM32 为核心进行开发,本作品的下位机开发为固件库开发,在程序设计中采用的是模块化编程的思维,主要分为循环和中断两大部分,其余外部设备的编程均以模块的形式进行调用,图7 为下位机程序的总体结构。在单片机启动复位后,先对系统及其外部设备进行初始化,随后进入循环部分,遇到中断信号则优先处理中断事件。之所以分为中断和循环,是因为中断具有优先级,作品的部分功能需要优先处理,并且中断不占用CPU资源,可以极大提高程序的运行速度[6~9]。

图7 下位机程序结构

■3.2 模块执行流程

(1)按键控制流程

本作品采用 4 路按键对下位机进行控制,4 路按键对应的职能分别为:KEY0 菜单键、KEY1 加键、KEY2 确认键、KEY3 减键。菜单键功能为切换菜单值;加减键功能为在对应的页面加减阈值和模式标志位;确认键为手动开启对应外部设备以及切换手动自动等操作模式。4 路按键为外部中断触发,各按键的控制流程如图8 所示。

图8 按键控制流程

(2)光照检测模块

立项与可行性研究报告的申报及批复是项目实施的前提,如果没有上级主管的批复,意味着项目没有“正名”,接下来的资金、政策、人力等支持都是不可能的,也是“不合规不合法的”。因此,在农业基建项目管理中,甲方单位必须特别重视前期立项及可行性研究报告编制,确保报告文本的科学性、项目实施的可行性、立项的成功率。一旦立项及可行性研究报告得到上级部门批复,项目就可以依此获得相应的资金支持。同时,甲方还可以此批复去与地方行业管理部门沟通,取得项目实施所必须的合法证件,而这在农业基础项目建设中是必不可少的环节。

本系统采用灵敏性光敏电阻传感器,使用的是AO 模拟量输出模式,通过单片机采集模拟量ADC,通过AD 转换即可得到准确的光照强度数值。ADC 转换公式如下所示:

(3)水质检测模块

本系统采用TDS 水质检测模块,将采集到的数值作为参考可以直接判断水质情况。水质检测时易受到温度等其他因素的影响,因此在算法中应做温度补偿[1~3],如式(2),Ta为校正系数,T为溶液温度,除此之外,TDS 探头的个体差异也会对数值造成影响,因此在算法中必须做校正,校正公式如式(3)和式(4),其中Va是测试时ADC 口经过均值滤波后的输出电压,Vb时校正后的电压。再通过ADC 转换,即可得出水质系数。

(4)水温检测模块

本系统采用的是DSB18B20 模块,通过1-wire 通信,读取两个字节就可以得到准确的温度值[1~4]。

(5)WiFi 模块并网流程

本系统采用的是ESP8266 的STA 模式并网[2],已家庭路由器为中介,实现上位机与下位机的通信。数据的收发则使用透传模式,即上下位机通过串口完成通信。ESP8266的并网流程如图9 所示。在下位机系统上电时,ESP8266进行初始化时会按照图9 的顺序进行一次AT 指令连接。在家庭用电断电后,利用单片机的定时器进行定时,每10s进行一次AT 指令连接和OneNet 云平台连接,在家庭电力和WiFi 恢复,ESP8266 重新连接成功后,标志位置 0,则定时器停止计时,完成重新联网的功能。

图9 WiFi 模块并网流程

4 云平台设计

OneNet 云平台作为上下位机的中介平台[5]。本系统采用EDP 通信协议,在EDP 协议下创建产品,获取产品ID与接口API 后,在上下位机操作ID 与API 即可与云平台实现通信。云平台的数据接收是被动的,在上下位机配置好数据流,云平台接收到后会显示对应的数据流,传输的数据分别为光照强度、水体温度、水质系数、今日喂食次数、水温阈值以及过滤阈值。

5 微信小程序设计

微信小程序的结构设计由HTML 编程完成,在微信开发者工具中该编程语言为WXML,通过WXML 编程可以完成小程序的模块布局以及部分事件的绑定,构成小程序的函数均可以在微信开发者社区平台获取。本作品采用是flex 布局,flex 布局是flexibleBox的缩写,意思是弹性布局[4~7]。该布局的模块分布为等距离顺序往下,本作品在设计优先展示用户状态和鱼缸环境信息,最后才是命令下发模块。小程序的结构布局和样式如图10 所示。

图10 微信小程序界面

6 备用电源切换与网络重连

本系统的初衷便是保证鱼缸生态的平衡,因此必须考虑到在家庭断电的情况下如何保持生态鱼缸正常工作的问题。本系统给出了合理的解决方案。通过一个继电器便可解决这一问题,在前面供电系统中,已经谈到继电器的常闭断连接系统,在系统断电后,继电器会自然吸合至常闭端,此时备用电源接入下位机系统,系统重新运作,并在下位机程序中因停电判定为停电状态,通过程序使继电器不吸合至常开端,完成了备用电源的切换。备用电源切换过程中并不会导致用户设置的阈值丢失,系统会自动读取FLASH 里存储的阈值设置。

由备用电源供电后,系统仍然会在初始化时运行联网程序。若联网失败,则系统的联网和断电标志位分别为1,保证备用电源的供电。在断网后,通过程序的定时器计时,每10s 进行一次AT 指令和云平台连接操作,直至家庭供电恢复和联网成功。这时联网和断电的标志位为0,继电器将会吸合置常开端,断开备用电源,系统由市电供电。断电断网处理流程如下图11 所示。

图11 断电断网处理流程

7 系统主要功能测试

本系统主要测试三端平台的通信速度。通过不断提高外部光照强度,对比同一时间内三端平台接受的光照数值来测试通信速度的快慢[2]。数据如表1 所示,测试发现三端平台的数据通信会存在500ms 左右的延时,此延时符合作品延时的预期范围,不会给作品的实际使用数据采集带来影响,测试结果证明系统具有良好的数据传输能力。同一时间内同一条件下三端平台的接收到的数据如图12 所示。

表1 微信小程序控制响应率

图12 三端平台通信测试

8 总结与展望

本作品是一套基于STM323 的物联网智能鱼缸系统,其可以通过微信小程序或云平台实现鱼缸的环境监测和远程控制,并且在断电时可以切换备用电源供电,具有一定的实用性,有一定的市场潜力。若想将本作品投入市场,可以考虑一下发展方向:

(1)搭建产品专属的服务器;

(2)采用大尺寸触摸屏代替按键控制;

(3)增加下位机语音交互功能,提高作品的智能化程度。

以上为本作品进一步发展的思考,希望随着物联网的进一步发展,智能鱼缸系统能逐渐完善,然后步入市场,走进千万家,给每一位用户带来更便利的生活。完整作品图如图13 所示。

图13 智能鱼缸

猜你喜欢
下位断电鱼缸
鱼缸里的杀手
鱼缸水
高压感应电动机断电重启时的瞬态仿真
日光灯断电关闭及自动延时开关设计
家里的小鱼缸
发射机房监控系统之下位机
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
冰立方鱼缸
CAN总线并发通信时下位机应用软件设计