1、22|电子制作 2023 年 1 月智能应用随着社会节奏随之逐渐加快,人们生活水平不断提高,在人们在享受快节奏生活的同时,也更希望在家庭中营造出轻松惬意的生活,因此选择饲养宠物作为放松方式的人也逐渐增多,水生宠物占有相当大的比例。与此同时,一些问题也暴露出来,如搬家失去了喂养条件,加班或者旅游对宠物照顾不周导致宠物生病,甚至死亡等。为没有时间精力的人设计一款成本低、操作简单、高效节能的智能鱼缸,不仅可以为观赏鱼类提供一个更好的生存环境,也可以提高人们饲养观赏鱼的体验。1 系统功能设计智能鱼缸设备需要通过屏幕显示剩余食物重量和系统运行状态,提供手动控制和自动控制功能:手动控制可以点击屏幕上的按键
2、进行操作,自动控制可设定换水时间、投食时间、投食重量等数据信息。系统的重量测量上限为1公斤,对剩余食物重量监测误差在 5%以内。设定换水、投食间隔时间误差控制在 1%以内。根据需求,将系统功能划分为按键输入模块、重量数据采集模块、水位数据采集模块、网络控制模块、数据处理模块、LCD 显示模块、换水控制模块、水温控制模块和投食控制模块,同时能够进行自动模式和手动模式的切换,各个功能模块都有相应的信号输入和信号输出端口。系统功能模块关系图如图 1 所示。数据处理模块按键输入模块重量数据采集模块水位数据采集模块网络控制模块LCD 显示模块换水控制模块水温控制模块投食控制模块图 1 系统功能模块在智能
3、鱼缸控制系统中,系统模块较多功能复杂,需要更高的运算速度,STM32F103RCT6 单片机体积较小、延迟较低、操作指令简单,性价比高,因此作为中心处理模块。系统需要显示运行状态、剩余食物重量,发出警报信息,需要用按键切换显示界面,输入设定值等操作,采用 TFTLCD电容触摸屏为显示和按键模块,它的工作电压为 3.3V,240320 分辨率,16 位真彩显示(65536 色),自带背光电路,16 位并口驱动,能够实现触控操作。采用应变片与HX711 共同组合作为重量数据采集模块。采用抽水泵作为注水开关,采用电磁阀作为排水开关,采用舵机作为投食开关,系统需要配置外置水箱。2 硬件设计核心控制模块
4、由 STM32 芯片、石英晶振时钟电路、复位按键电路、MCU 启动电路、SWD 下载电路、MCU 电源滤波构成,本次设计最小系统电路图如图 2 所示。2.1 投食重量测量模块设计智能鱼缸系统可以将剩余食量数据显示在显示屏上,压力传感器可以准确地采集出剩余食物重量,为系统在自动控制过程中的投食重量提供数据支撑。电阻式的应变压力传感器,根据电阻的压变效应可以将压力信号转变为电信号,对于应变片的搭建常采用桥式电路,桥式电路稳定性更高、抗干扰性更强,不容易受到影响。系统中选用 HX711 作为 AD 转换芯片1,可以满足低功耗运行的需求,它可靠性高、抗干扰性强、采样速度快,可在-40 80的温度范围内
5、稳定运行,使用方法简单,通过对芯片引脚简单的数字控制即可改变芯片的状态,不需要对芯片内部的寄存器进行编程。2.2 投食控制模块设计舵机可以通过 PWM 来控制旋转角度,进而控制投食系统打开关闭,所以很适合完成智能鱼缸投食功能,根据其旋转的角度来控制投食的速度。系统中采用了单片机的 PWM波来产生稳定的可调的高电平来控制舵机2。2.3 换水控制模块设计智能鱼缸系统需要对电磁阀、水泵设备进行控制,为了一种智能鱼缸的设计与实现陈瑶,王凤嫔(大庆师范学院,黑龙江大庆,163712)基金项目:大学生创新创业训练计划项目“基于互联网+的智能鱼缸的设计和制作”(202110235006)。摘要:随着信息时代
6、的发展,人们生活质量的提高,水生宠物进入家庭的比例逐年提高,同时也产生了一些因客观条件限制引发的水生宠物死亡的问题。设计了一种全自动的水生宠物饲养设备,可以有效缓解由于饲养复杂或无时间照顾而出现的水生宠物弃养问题。一款操作简单、价格低廉、能够自动定时定量换水投食、触控操作换水投食、显示剩余食量、食物不足警报的智能化鱼缸十分有研究和市场价值。关键词:单片机;智能鱼缸;触控屏;自动控制DOI:10.16589/11-3571/tn.2023.01.022wwwele169com|23智能应用实现信号与电路的分离,采用具有光耦隔离的继电器来作为控制模块。继电器可以使用小信号来控制大电流,相比于其他方
7、式更为安全。在接收到单片机发出的指令后,控制水流电磁阀打开或者关闭,此继电器采用 12V 电源供电,并且可以通过跳线选择高/低电平触发,双触点模式可以选择常开触点或者常闭触点,具有光耦隔离功能可以有效的防止电源线对信号线进行干扰,MCU 发出控制指令给继电器后,继电器内光耦模块接收到信号,光耦内 LED 点亮,光敏半导体接受到光信号产生光电流,S8050 三极管的基级电压被拉高,三极管导通继电器电磁开关闭合,继电器状态显示小灯点亮。继电器控制电路如图 3 所示3。2.4 显示模块设计为完成智能鱼缸中剩余食物重量显示、系统的运行状态显示、各种控制按键显示,需要一款 LCD 电阻式或电容式显示屏来
8、完成上述功能。LCD 显示模块可以在触控屏上显示传感器采集到的剩余食量数据,并且在屏幕上显示食量设置按键、换水间隔设置按键、投食间隔设置按键,显示手动模式和自动模式,可以通过在触控屏上点击对应按键来控制系统运行,在不需要操作时熄灭显示屏保持低功耗模式运行。LCD 显示电路由两方面构成,分别是 LCD触控屏电路和 XPT2046 电阻式触控屏控制器,LCD 触控显示屏和 XPT2046 电阻式触控屏控制器均为 3.3V 电源供电,为防止的 50Hz 电路的干扰,在显示屏和 XPT2046芯片的供电段均采用 100nF(104)电容滤波,XPT2046芯 片 采 用 了 SPI 的 方 式 与ST
9、M32 进行通信,此芯片的PENIQR 引脚为笔触中断信号引脚,此引脚为低电平有效引脚,在 LCD 显示屏被按下时变为底电平,所以要连接一个 100k 的上拉电阻,在LCD 显示屏没有被按下时保持高电平(见图 4)。2.5 电源供电模块设计系统中不同的元器件,其供电电压也是不同的,需要采用不同的电源模块为元器件供电。电源供电电路由 12V 转 5V DC/DC 稳压电路、串口驱动电路、5V 转 3.3V 电路共同组成,对于 5V 转 3.3V 电路这里选用了 AMS1117-3.3V 线性稳压芯片为单片机、LCD 显示屏、HX711 模块供电,此芯片可以稳定的输出 3.3V 电压,可承受最大
10、15V 的输入耐压,输出电流最大为 800mA,并且在输出最大电流时压差不超过 1.3V 可以满足使用的正常1234P1PC13-TAMPER-RT C2PC14-OSC32_IN3PC15-OSC32_OUT4PD0-OSC_IN5PD1-OSC_OUT6PC08PC19PC210PC311PC424PC525PC637PC738PA0-WKUP14PA115PA216PA317PA420PA521PA622PA723PA841PA942PA1043PA1144PA1245PA1346PA1449PA1550PB026PB127PB228PB355PB456PB557PB658PB759PB
11、861PB962PB1029PB1130PB1233PB1334PB1435PB1536PD254BOOT060NRST7U1STM32F103RCT6VBAT1VDD_132VDD_248VDD_364VDD_419VDDA13VSS_131VSS_247VSS_363VSS_418VSSA12U2STM32F103RCT63.3VGNDSWDIOSWCLKC8104C4104C5104C6104C7104D112Y18MC2C3C1R1R2KEY1SWCLKSWDIOGNDGNDGNDGNDGNDGND3.3VVCCVCC图 2 最小系统电路图Q2SS8050 Y1Q3SS8050 Y1U
12、J2TLP181UJ1TLP181RK2330RJ31KRH210KRH110KRJ11KRK1330GNDGND3V33V3Relay2Relay1RelayCtrl2RelayCtrl112P3CON12P2CONK2JZC-32F/012-HS3(555)K1JZC-32F/012-HS3(555)D3D2R_LED2RED0805R_LED1RED0805R141KR151K12V12VRelay2Relay1LS1LS2LM1LM2RX1120RX21200.1uFCX1Cap0.1uFCX2CapLS1LS2LM1LM2图 3 继电器控制电路图24|电子制作 2023 年 1 月智
13、能应用需求。此设计一共有两种供电方式(见图 4),分别为外部电源的 12V 供电和 USB 供电,12V 电源供电需要先通过MP2359 将电源稳压成 5V,可以通过控制 R28 和 R27 两个电阻的大小来控制 MP2359 芯片输出电压的大小,此芯片可以提供最大 1.2A 的电流,足够大的电流可以保证继电器正常工作,USB 供电是一个稳定的 5V 电源,它为串口通信模块和蜂鸣器模块供电,CH340 是一款 USB 转串口芯片,它兼容 USB2.0,是一种全双工的通信串口,可以以 232 或者485的方式进行通信,它可以使用5V或者3.3V电源供电,采用 CH340 将串口输出的数据输出到电
14、脑上,在代码编写调试过程中有着极大的用处。3 软件设计在程序开始运行后,首先要对各个模块的 IO 引脚进行初始化配置,然后 MCU 控制 LCD 显示屏在不同坐标位置,显示剩余食量数据、手动控制和自动控制按钮,如果 MCU读取到手动控制按钮坐标电平发生变化,则表示手动控制被按下,然后进入手动控制操作界面。同理如果 MCU 读取到自动控制按钮坐标电平发生变化,则表示自动控制被按下,然后进入自动控制操作界面。系统总设计流程图如图5所示。3.1 手动控制程序设计当进入到手动模式操作界面后,首先 LCD 显示屏在不同坐标位置显示“开始排水”、“开始注水”、“开始投食”、“停止投食”、“确定”和“返回”
15、几个按钮,当 MCU 接收到排水按键坐标的电平发生变化后,MCU 持续采集低位鸭嘴式传感器数据:当低位鸭嘴式传感器数据为 1 时,控制放水继电器打开开始排水;当检测到低位鸭嘴式传感器数据为 0 时,控制排水继电器关闭停止排水。当接收到注水按键坐标的电平发生变化后,MCU 持续采集高位鸭嘴式传感器数据:当高位鸭嘴式传感器数据为 1 时,控制注水继电器打开开始注水;当检测到高位鸭嘴式传感器数据为0时,控制注水继电器关闭停止注水。当检测投食按键坐标电平发生变化后,MCU 通过控制PWM 波进而控制舵机的开合角度,打开投食阀门开始投食。BS1GND2FB3EN4IN5SW6U8MP2359C29103
16、C34104C35104C3210410uFC33C30220uFC314.7uHL1D5SS149.53KR2849.9KR27123J1100KR26GNDGNDGNDGND5V5V*GND1TXD2RXD3V34UD+5UD-6XI7XO8CTS#9DSR#10RI11DCD#12DTR#13RTS#14R23215VCC16U6CH340G22pFC2322pFC24C20104C21C22123Y2GNDGNDGNDGNDTXDRXDUD+UD-5V1234P45VGNDUD-UD+VinVoutGNDU7AMS1117-3.3100nFC26100nFC2810uFC2547uFC
17、27GND5V3.3VRST31CS7RS8RS9RD10DB01DB12DB23DB34DB422DB535DB636DB737DB1025DB1126DB1227DB1328DB1429DB1530DB1631DB1732VCC6VCC33VCI32GND5GND34LEDK420LEDK319LEDK218LEDK117LEDA16Y-15X-14Y+13X+12LCMID21NC112.8TFTLCDLEDRSTLEDCSLEDRSLEDWRLEDRDDB1DB2DB3DB4DB5DB6DB7DB8DB10DB11DB12DB13DB14DB15DB16DB17100nFC910uFC
18、10R4R3R5R6GNDGNDGNDVCCVCCLEDK1LEDK2LEDK3LEDK4LEDAY-Y+X+X-LEDALEDCS1WR/CLK3RST5DB27DB49DB611DB813DB1115DB1317DB1519DB1721BL23VDD25GND27MISO29T_PEN31T_CS33CLK34MO32MOSI30BL_VDD28GND26VDD24DB1620GND22DB1418DB1216DB1014DB712DB510DB38DB16DR4DS2LED1TTF_LEDLED_CSLED_CSLED_CLKLED_RSTDB1DB2DB3DB4DB5DB6DB7DB8
19、DB10DB11DB12DB13DB14DB15DB16DB17BL_CTRBL_CTRVCCVCCGNDGNDT_MISOT_MISOT_PENT_CST_CLKGNDLED_DR*VCC1XP2YP3XN4YN5GND6VBAT7AUX8VREF9IOVDD10PENIRQ#11DOUT12BUSY13DIN14CS#15DCLK16U3XPT20461KR13100KR71KR91KR101KR111KR121KR8Q18050C11104C12C104C13C104GNDGNDVCCGNDLEDK1LEDK2LEDK3LEDK4BL_CTRTVDDGNDTVDDX+X-Y-Y+T_CL
20、KT_CST_MISOT_MISOT_PEN图 4 显示及电源模块电路图开始程序初始化屏幕显示剩余食量数据显示自动控制和手动控制手动控制按键是否被按下?进入手动模式操作界面进入自动模式操作界面结束自动控制按键是否被按下?是是否否图 5 系统总设计流程图wwwele169com|25智能应用当检测到停止投食按键坐标电平发生变化后,控制 PWM 波进而控制舵机的开合角度,关闭投食阀门关闭投食。当检测到返回按键坐标的电平发生变化后,则退回模式选择操作界面。3.2 定时自动控制程序设计在进入自动模式后,首先MCU控制LCD显示屏显示“换水时间”、“定时投食时间”、“投喂重量”、“确定”和“返回”几个选
21、项。在 LCD 屏上置有“+”、“-”按键,当检测到“+”或“-”按键坐标电平变化时,则控制定时换水时间对应增加或减少。同理定时投喂时间和投喂重量设定也是一样的操作过程。当检测到确定按键坐标电屏发生变化后,开始进入到自动控制模式,MCU 控制 LCD 显示屏显示“进入到自动控制模式”,在自动模式下,定时器不断计时,当定时器计时时间达到定时换水时间后,产生中断,检测低位鸭嘴式传感器电平状态时候为 0,若为 0 则 MCU 控制排水继电器打开,若为 1 则关闭注水继电器,持续检测高位鸭嘴式开关电平状态是否为 0,若不为 0 则控制注水继电器打开,若为 0 则控制注水继电器关闭。当定时器计时时间达到
22、定时投食时间后,产生中断,控制舵机旋转打开投食门,单片机与 HX711 重力传感器通信,读取重量数据,当读取重量=原重量-设定重量时,MCU 控制舵机关闭喂食槽。3.3 屏幕显示及报警功能实现当系统正常运行时,显示剩余食物重量,此时重力传感器采集剩余食量数据,并将数据通过 MCU 处理后,显示在显示屏上,如果采集到的重量小于设定的重量时,控制 LCD显示屏显示食物不足警报,当采集到的重量达到或大于设定的重量值时,控制 LCD 显示屏则停止显示食物不足警报。4 系统调试和运行制作完成的系统如图 6 所示。系统经过多次测试,测量数据与实际重量相比整体偏低,原因为 LCD显示重量的最小精度为1g,称
23、重盘与食物槽之间存在摩擦接触,导致数据发生误差。随着测量重量的增大,摩擦对于精度的影响逐渐降低,误差也从5%左右下降到 1%,基本可以达到投喂系统的精度需求。经过一段时间的运行状态测试,换水功能保持稳定,投食功能保持稳定,缺食警报功能正常工作。测试是在室温环境下进行,系统功能基本符合设计要求。5 结语本系统为在校大学生根据所学知识进行的一次系统设计尝试。在宠物逐渐成为家庭成员的趋势中,提高水生宠物生存环境管理的智能化水平,能够提升宠物主人的生活体验。在大学生创新创业训练计划项目的平台上,将进一步将智能鱼缸降低成本后商品化的尝试。参考文献 1 朱炯健,张喜洋,杨树辉,齐延兴.基于 STM32 的
24、远程无线智能鱼缸控制系统设计 J.科技风,2019,(06):59.DOI:10.2 彭炫.基于 STM32 单片机的智能鱼缸设计与研究 J.电子世界,2020,(13):141-142.DOI:10.3 范静,赵萍萍,王婷.智能鱼缸环境系统设计 J.信息系统工程,2018,(10):107.(上接第 112 页)图 6 系统实物图参考文献 1 王立舒,王慧杰,赵嘉伟等.基于电导-模糊双模式的 MPPT优化控制 J.太阳能学报,2017,38(7):1847-1853.2 张海洲,郑崇伟,毕大强等.基于改进型动态阻抗匹配的MPPT 控制算法研究 J.电力电子技术,2017,51(9):96-1
25、02.3Schoeman J J,WykJ D.A Simplified Maximal Power Controller for TerrestrialPhotovoltaic PanelArraysC/PowerElectronics Specialists Conference,IEEE,1982:361-367.4ZHANG Chao,ZHAO Dean,WANG Jinjing,etal.A noveltwo-mode MPPT method for photovoltaic power generation sys-temC/Proceedingsof 2009 IEEE Inte
26、rnational Power Electronics and Motion Control Conference.S.L:IEEE,2009:2100-2102 5黄艺,何毅,张振雨.基于模型预测控制的MPPT控制策略J.可再生能源,2012,30(11):1-6.6 范钦民,闫飞,张翠芳等.基于模糊控制的光伏 MPPT 算法改进 J.太阳能学报,2017,38(8):2151-2158.7Xu Z,Yang P,Zhou D,et al.An Improved Variable Step SizeMPPT Algorithm Based on INCJ.Journal of Power Electronics,2015,15(2):487-496.8 施大发,张澧生,刘健林等.基于单传感器的光伏系统MPPT 算法研究 J.电源技术,2012,36(12):1847-1850.9 王锐,张震华,文浪等.基于动态阻抗匹配算法的光伏组件MPPT 研究 J.电气传动,2017,47(8):44-48.