一.项目介绍:
通过本项目的设计和实施,我们成功地制作了一款基于ESP32的智能浇水系统装置。该装置实现了对植物的自动浇水,提高了植物的生长效果。在市场应用方面,智能浇水系统装置具有广阔的市场潜力,特别是在忙碌的人群和农业领域。未来,我们将继续改进和完善该装置,以满足用户的需求,
二.市场应用介绍:
智能浇水系统装置的市场应用主要面向喜爱种植植物的人群,特别是那些经常忙于工作或旅行的人。此外,它也适合用于公共景区、园林和农业领域,提高植物的生长质量和效率。在市场上,智能浇水系统装置作为一种便利且高效的植物养护工具,具有很大的市场潜力。随着人们对生活品质的要求不断提高,对植物养护的需求也越来越多,智能浇水系统装置能够满足人们对植物养护的需求。
三.项目设计思路:
https://www.digikey.cn/schemeit/project/智能浇水-3036a702c93240e4a129cd96136e2774
探头通常由两个电极组成,这些电极被插入到土壤中。当土壤湿度增加时,土壤中的水分会增加土壤的电导率。电导率是电流通过土壤的能力,而水分是电流的良好导体。因此,当土壤湿度增加时,电导率也会增加。传感器电路中的电路会测量通过电极之间的电流,并将其转换为湿度值。通常,传感器会校准到一定的湿度范围,以便能够准确地测量土壤的湿度,经过了esp32的模数转换器之后,将得到的数字信号设定了阈值之后利用软件来控制蜂鸣器根据继电器的开起就会响应来提醒人们土壤干燥,开始进入抽水状态,然后继电器打开磁吸进行抽水,灌溉植物直到达到我们设定的阈值才会关闭,这样就是我们的一个工作原理的设计思路。
四.器件的选择:
1.元件选择:
ESP32-WROOM是一款由乐鑫科技开发的低功耗、高性能的Wi-Fi和蓝牙双模模组。它集成了ESP32芯片和外部闪存,提供了丰富的功能和接口,适用于各种物联网和无线通信应用。以下是ESP32-WROOM的主要功能:
- 双核处理器:ESP32-WROOM采用了双核Tensilica LX6微控制器,每个核心的主频可达240MHz。双核处理器可以同时运行应用程序和网络协议栈,提供更高的处理性能和更低的功耗。
- Wi-Fi和蓝牙双模:ESP32-WROOM支持11 b/g/n Wi-Fi和蓝牙4.2双模,可以实现无线网络连接和蓝牙通信。
- 外部闪存:ESP32-WROOM集成了4MB的SPI闪存,用于存储应用程序和数据。闪存容量足够大,可以满足大部分应用的存储需求。
- GPIO接口:ESP32-WROOM提供了多个GPIO接口,用于连接外部设备和传感器。这些接口支持多种通信协议,
- ADC和DAC:ESP32-WROOM具有多个模拟输入和输出接口,可用于采集模拟信号和输出模拟电压。它支持12位的ADC和8位的DAC,可以满足模拟信号处理的需求。
- 低功耗模式:ESP32-WROOM支持多种低功耗模式,如睡眠模式、深度睡眠模式和功率控制模式等。这些低功耗模式可以降低系统功耗,延长电池寿命。
土壤湿度传感器:
土壤湿度检测模块是一种用于测量土壤湿度的传感器模块。它通常由两部分组成:土壤湿度传感器和感应电路。
土壤湿度传感器是一种能够感知土壤湿度变化的设备。它通常使用两个金属电极,将它们插入土壤中,通过测量土壤的电导率来反映土壤的湿度。当土壤湿度较高时,土壤的电导率较高;当土壤湿度较低时,土壤的电导率较低。传感器将这个电导率转换为电信号输出,以表示土壤湿度的变化。模块电路是将土壤湿度传感器与其他电路组合在一起的部分。它通常包括一个模拟转数字转换器(ADC),用于将传感器输出的模拟电信号转换为数字信号,以便于微控制器或其他设备进行处理和分析。模块电路还可能包括一些校准电路和信号调理电路,以确保传感器的准确性和稳定性。
继电器:
继电器是一种电控开关设备,它可以通过电信号控制高功率电路的开关。继电器通常由控制电路和主电路两部分组成。在控制电路中,继电器通常使用低功率的电信号(如5V或12V)来控制继电器的开关状态。当控制电路中的电信号触发继电器时,继电器的触点会打开或关闭,从而控制主电路中的高功率电路的通断。利用这个原理就可以实现使用继电器控制水泵的开关,根据土壤湿度数据控制水泵的工作状态。
首先通过esp32的I0口与土壤湿度检测器连接在一起。让传感器的金属金属电极将它们插入进土壤中,就可以通过检测土壤的电导率来反映土壤的湿度。然后它会将这个电导率转化为电信号输出,以表示土壤思路的一个变化,模块电路就是将土壤湿度传感器与其他电路组合在一起。它上面包含一个模拟转数字的一个转换器,用于将传感器实施的模拟信号转化为数字信号,以便微控制器或者是其他设备对其进行处理与分析,这个lm393就相当于是一个比较输出器,只要正端大于负端,就输出一个高电平,负端大于正端,那就输出一个低电平。之后就用来控制继电器的开断。
在会绘制pcb当中所遇到的问题:
我在PCB打板过程中遇到的问题,比如在绘制PCB当中,忘记做滴泪处理导致浪费了一次打板的机会,在布线的过程中,对电源线没有做相对应的扩大处理,PCB的设计明显感觉不够熟练,定位孔的精准处理还有待提升,在对铺铜的过程中没有对特殊焊盘进行十字连接,基本上都是进行全面全面铺铜这会导致焊接的过程中极容易快速冷却而导致焊点不够精美。
解决方案:
之后在PCB上进行了泪滴的处理,将他的泪滴范围稍微扩大了一下,然后就是将电源线的VCC和GND直接进行了顶层铺铜和底层铺铜处理,定位孔的话,我就是直接利用了原点定位法进行了精准定孔。将散热量接收不大的进行了十字连接处理。保证了基本电路的稳定实现。
关键代码展示:
from machine import Pin, ADC
import time
Pin12 = Pin(12, Pin.OUT)
Pin13 = Pin(13, Pin.OUT)
Pin33 = ADC(Pin(33))
# 配置3.3v电压
Pin33.atten(ADC.ATTN_11DB)
- 这主要是用来from machine import Pin, ADC:这行代码导入了Pin和ADC模块,这两个模块是用于控制ESP32的GPIO引脚和模拟数字转换器的模块。
- Pin(13, Pin.OUT):这行代码创建了一个名为Pin13的对象,将ESP32的GPIO引脚13设置为输出模式。Pin类的第一个参数是GPIO引脚的编号,第二个参数是引脚的模式(输出)。
- Pin(33):这行代码创建了一个名为Pin33的对象
while True:
val = Pin33.read()
print("土壤湿度值(湿润0~4095干燥):", val)
if val > 2000:
if not module_status:
print("监测到土壤干燥...准备开启抽水泵中...")
for i in range(3, -1, -1):
print("loading...", i)
module_status = True
Pin13.value(1)
time.sleep(0.1)
Pin12.on() # 打开蜂鸣器
time.sleep(0.5) # 发出声音持续0.5秒
Pin12.off() # 关闭蜂鸣器
Pin13.value(1) # 打开抽水泵
这段代码是一个无限循环,用于读取土壤湿度传感器的值,并根据湿度值控制抽水泵的开关。具体解释如下:
- val = Pin33.read():这行代码读取GPIO引脚33上连接的土壤湿度传感器的模拟输入值,并将其保存在变量val中。Pin33是之前创建的一个ADC对象,通过调用read()方法可以获取模拟输入的电压值。
- print("土壤湿度值(湿润0~4095干燥):", val):这行代码将土壤湿度传感器的值打印出来,用于实时监测湿度变化。val是之前读取的湿度值。
- if val > 2000::这行代码判断湿度值是否大于2000,如果湿度较低(干燥),则执行以下代码块。
- if not module_status::这行代码判断module_status变量是否为False,如果为True表示抽水泵已经开启,不再重复执行开启操作。
- print("监测到土壤干燥...准备开启抽水泵中..."):这行代码打印提示信息,表示检测到土壤干燥,准备开启抽水泵。
- for i in range (3,-1,-1)::这行代码是一个倒计时循环,用于显示倒计时的信息。
- print ("loading...",i):这行代码打印倒计时信息。
- module_status = True:这行代码将module_status变量设置为True,表示抽水泵已经开启。
- value(1):这行代码将GPIO引脚13的输出电平设置为高电平,用于控制抽水泵的开关。
- sleep(0.1):这行代码让程序暂停0.1秒,用于延时。
本次项目的心得:
参加本次大赛,我对利用ESP32制作土壤湿度检测的经验收获颇多。首先,我想说整个设计过程中最大的难点是选择合适的土壤湿度传感器和编写相应的代码。在选择传感器时,我遇到了很多不同型号和品牌的选择,需要考虑价格、精度、可靠性等因素。在编写代码时,我遇到了一些困难,因为我对ESP32的编程不太熟悉。但是,通过查阅资料和参考其他人的代码,我成功地编写了读取传感器数据并将其显示在屏幕上的程序。在整个设计过程中,我还遇到了一些其他的难点,比如传感器的安装和数据的传输。但终究有所解决。参加本次大赛,我不仅学到了很多关于土壤湿度检测和ESP32编程的知识,还锻炼了自己的动手能力和解决问题的能力。通过与其他参赛者的交流和比较,我也收获了很多宝贵的经验和启发。同时,我也发现了一些可以改进的地方。比如,我可以进一步优化代码,提高系统的稳定性和可靠性;我还可以尝试使用更精确的传感器,提高土壤湿度检测的准确性。