APP下载

基于51单片机自动浇水系统的研制

2024-09-15任富民

电脑知识与技术 2024年24期

摘要:文章提出了一种51单片机控制的自动浇水系统。系统核心是STC89C52单片机,外接设备包括LED显示屏、湿度和光敏传感器、蜂鸣器等。YL-69湿度传感器监测土壤湿度,光敏传感器检测光照强度,实现湿度和光照的实时监控。单片机将传感器的模拟信号转为数字信号,处理后分析土壤湿度和光照强度信息。系统会比较当前数据与预设适宜值,根据比较结果执行是否需要灌溉的决策。

关键词:智能浇水;STC89C52单片机;传感器

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)24-0110-03

开放科学(资源服务)标识码(OSID)

0 引言

近年来,随着城市生活节奏的加快,人们可能会因疏忽而导致盆栽植物枯萎。其中,浇水不当是盆栽植物枯萎的主要原因之一,因为人们往往忽视了植物的湿度需求。因此,自动浇水设备应运而生。然而,市场上的设备大多功能有限,难以满足不同植物的需求及环境变化的挑战。为此,本文计划开发一种综合性的自动浇水系统,该系统将整合土壤湿度检测、光照强度监测、自动浇水以及水箱管理等功能,以实现在无人照料时的适时浇水,从而促进植物的健康生长。

1 方案论证

1.1 整体设计

设计的系统主要由传感器和LCD1602、STC89C52单片机组成。其基本功能和要求如下:

1)通过使用STC89C52的单片机编程控制土壤湿度显示;

2)通过检测土壤水分、温度以及光线;

3)超出设计范围时蜂鸣的报警;

4)通过三极管驱动水泵的灌溉;

5)画出相关的设计图、做出实物、写出设计以及总结报告。

1.2 方案论证

在设计电路板时,需筛选可靠的部件,确保防干扰性能,并合理分配软硬件资源,包括过滤、自我诊断、接线及接地等设计。在系统软件和设备的设计过程中,应充分考虑操作和维护的便捷性,采用嵌入式或简化的方法。系统的广泛应用还取决于其性价比,如通过软件功能替代部分硬件功能来简化外围电路。

方案一:湿度传感器采样土壤湿度信号,转换为数字信号后由解码器送至显示电路实现显示,同时完成模拟到数字的转换。

方案二:设计中采用51单片机作为主控芯片,各部分功能由时钟晶体振荡器、湿度测量、温度采集、远程传输和液晶显示等外部电路实现。

分析显示,在首选方案中,74HC4511解码器在ADC转换结果超过1001时会进入非活动状态,导致部分代码无法准确显示。显示器易误读信号为低电平,因此方案一精度较低,且性能不如方案二。方案二的单片机在处理速度上优于方案一,性价比和性能更佳。重新设计后,方案二简化了硬件电路,保持了高性能和速度。通过增强软件功能可弥补硬件不足。综合评估,方案二为最优方案,兼具高性能、速度和适应性。

2 硬件设计

2.1 主控模块

主控模块是自动浇水系统的核心,协调功能模块工作。选用STC89C52单片机作为主控芯片,具有高性能、低功耗等优点。设计单片机最小系统,包括电源、时钟和复位电路,确保稳定工作电压、提供精准时钟信号和恢复初始状态。设计单片机与功能模块间的接口电路,包括传感器、液晶显示、报警和水泵控制模块,实现实时监测、智能灌溉和报警功能。可扩展无线通信模块,实现远程监控和控制,提高系统灵活性和便利性。

2.2 显示模块

在显示模块的设计中,选择了LCD1602作为主要的显示设备。LCD1602以其简洁的显示界面和可靠的性能在各类单片机控制系统中得到了广泛的应用。它能够通过简单的接口与STC89C52单片机进行连接,实现数据的实时显示。此外,LCD1602的功耗低,对于需要长时间运行的系统来说,是一个重要的优点。在硬件设计中,将LCD1602的接口与单片机的I/O口进行连接,通过编程控制其显示内容,以满足系统对土壤湿度信息的实时显示需求。

当前,单片智能电表及笔记本电脑、监控系统、PDA移动设备、数码相机等众多领域已广泛采用液晶显示器。由于液晶显示屏的脆弱性,通常使用PCB板来连接驱动器、控制器、ROM、RAM以及显示屏[1]。微控制器单元在操作液晶显示模块时,须发送特定指令和数据以显示所需内容。在众多设计中,1602字符的液晶显示模块(具备两行每行16字符的显示能力)较为常见,显示数字或字母时,只须将对应的ASCII码发送至液晶显示模块即可。

2.3 传感器

2.3.1 湿度传感器

湿度传感器是可变电阻。当湿度传感器对周围环境的数据收集时,电阻值会随着数据的波动产生改变。最高时电阻值为10K,最低时会变成0.1Ω。电阻的变化量取决于湿度传感器的设置。当电阻变化时,电路的输出电压也会跟着发生变化。满足电路要求所需的电压是通过缩放电阻值得到的。土壤湿度传感器原理图如图1所示:

本设计采用YL-69型土壤水分传感器。土壤湿度传感器为YL-69表面镀镍,传感面积变宽,防止与土壤接触时容易生锈问题。其土壤湿度可大范围控制,模数转换可采用ADC 0832。同时,采用三线制,接线简单,将GND外接至地线,将VCC外接至3.3V-5V电压,将AO“小板湿度检测量输出接口”连接至模数转换通道CHO即可[2]。该转换器设有固定螺栓孔,方便安装,适合使用于土壤水分检测。当顺时针方向旋转按钮,控制的湿度变大,用模块上电位器进行土壤湿度的阈值的设置,逆时针方向调节变小。检测高低电平,数字输出D0直接通过单片机,检测土壤水分。

2.3.2 光照传感器

光照传感器工作原理是基于内部光电效应,光敏电阻是由硒化屏障或者硫化物屏障等半导运用特殊材料制成的电阻。随着光强的变化,电阻值也会随之变化。光线越强,电阻就越低。光敏电阻器对光很敏感,伴随着科学技术的发展,光敏电阻的特殊特性将得到广泛应用。光照传感器原理图如图2所示。

光敏电路采用了模数转换器0832进行模拟信号到数字信号的转换过程,其中,CH0与CH1通道具有相同的性能。因此,无论选择使用哪个通道,均可满足转换需求。模数转换器0832是一款具备双通道功能的模数转换设备。若当前照明强度为50%,欲将其调整至60%时,可选用电位器作为校准工具。光敏电阻亦称为光导检测器,其阻值会随着入射光强度的变化而相应改变。随着科技的发展,光敏电阻不再限制应用于光学测量、光电转换等领域,敏感度也在不断提高,只要是能看见的光,光敏电阻基本都能对其产生反应,电阻值也会随之改变。

3 软件设计

3.1 程序设计原理

系统软件开发采用模块化设计,结构紧凑,使用C语言易于扩展。湿度传感器将湿度数据转换为二进制,通过单片机发送数据完成补偿算法,获取实时准确数据并显示在液晶显示器上[3]。使用51微控制器采集土壤水分传感器数据,通过模数转换器完成模拟到数字的转换,并建立定时中断服务程序,定期获取数据并自动更新水泵状态。

3.2 控制模块程序设计

系统初始化后,接收土壤湿度信息并在OLED显示屏实时显示。两块蓝牙保持互联,循环接收湿度值。执行按键扫描,判断按键状态并执行相应功能。程序流程图如图3所示。

S1按键进入手动模式,S2按键进入自动模式。选择手动或自动模式后,可更改阈值。S1提高阈值,S2降低阈值。手动模式下,阈值不超过70。湿度低于阈值时,蜂鸣器报警,S1关闭蜂鸣器。S3和S4分别控制水泵开关。

3.3 OLED显示程序设计

OLED本身没有显存,它的显存依赖于SSD1306芯片。SSD1306显存总共为128*64bit大小, SSD1306将这些显存分为8页,每页128字节。OLED模块初始化之前,需要调用延时函数,目的是等待电压稳定。初始化过程包括IIC程序的初始化、开启显示功能以及清零显存[4]。

3.4 土壤湿度光照监测子程序

湿度监测采用一体式传感器,初始化步骤包括:1)设置工作模式,如单端输入;2)延时两个指令周期;3)拉低CS选通;4)开始数据输入,ADCLK=1;5)ADCLK=0,第一个下降沿;6)ADDI=channel&0x1,根据channel右移一位并与0x01相位与;7)ADCLK=0,第三个下降沿,数模转换模块将输入转换为数字量并发送给单片机。

3.5 按键设置子程序

子程序设置:按键电路与功能操作。按键电路有四个引脚,操作时只需连接两个。按下按键,单片机的IO口检测到低电平,电平变化触发编程执行的功能。判断按键按下:

if(K1==0){

while(K1==0) 去抖;

mode++;

if(mode==3) mode=0; //模式切换

else if(K2==0){

delay_key(); //延迟

while(K2==0);

if(mode==1){

Max++;

if(Max>=3){Max=1;}

}

}

}

按键功能:加、减、确定、自动排水。不同功能对应不同代码模块。组合使用注意延迟,防止误操作。

4 系统调试

4.1 硬件调试

控制模块PCB板调试中,首先在Altium Designer软件绘制原理图、PCB布局走线。使用电烙铁先焊接好元器件后,再将其他模块插入对应位置。硬件模块PCB板调试中,首先在Keil软件进行编译,编译后无报错。使用母对母杜邦线将ST-LINK调试器和单片机对应引脚相接。点击Download,进行程序烧入。然后用USB接口分别对显示与控制模块、采集与动作模块进行供电。在OLED中会显示当前的土壤湿度值以及模式选择。

这时候显示的土壤湿度值小于设定阈值,蜂鸣器响,发岀报警,此时按下按键S1关闭蜂鸣器,按下按键S3开启水泵进行浇水,按键S4关闭水泵。

4.2 软件调试

在Keil软件编程后,执行编译、链接、调试和仿真步骤。C51编译器处理源代码生成目标文件(.OBJ)。调试时,将其写入单片机程序内存或在模拟器上调试。

1)按键电路允许用户设定湿度报警阈值。MCU的4个按键引脚并联,同侧连接。按键通过低电平检测工作。检测到低电平,系统进入按键处理子程序,实现多种组合操作,设计中须加入延迟处理防止误操作。

2)子程序中,持续检测按键状态[5]。如果按键1按下,mode递增,若mode等于3,执行数字减,mode切换到0。若按键2按下,延迟后检测,若mode为1,湿度控制范围增加,否则范围减小。

3)通过电位器模块调整土壤湿度阈值,检测周围土壤湿度,电阻值变化影响电路输出。顺时针增大湿度检测范围,逆时针减小。

4)系统监测土壤湿度,低于阈值时系统会自动启动水泵补水,同时启动蜂鸣器报警。

5 结束语

本项目使用STC89C52单片机开发了一款多元组件整合的浇水装置。系统依赖湿度传感器获取环境湿度数据,实现实时监控,并在LED屏上直观显示。用户通过按键电路可设定湿度阈值。当土壤湿度低于设定值,系统会自动启动水泵补水,并伴随蜂鸣器警告。经过验证,系统硬件结构简洁、成本低、可扩展性好。总之,该设计能满足预期性能要求。

参考文献:

[1] 王丽凤,魏红梅,王宇航,等.一种自动施肥型智能花圃盆的设计与研究[J].黑龙江科学,2024,15(6):136-138,142.

[2] 刘强强,李海潮,王爽,等.基于单片机控制的园林智能浇水系统设计[J].模具制造,2023,23(10):190-192.

[3] 宋冰倩.基于掌控板的智能浇花系统的设计与实现[J].物联网技术,2022,12(7):114-115,118.

[4] 衡蜓.智能控制浇花系统设计[J].农业技术与装备,2022(6):38-39,42.

[5] 郑杨煜,刘星.基于STM32的实用型家庭智能灌溉系统[J].物联网技术,2023,13(1):80-81,84.

【通联编辑:代影】