基于ESP32的开源定时浇花系统

基于ESP32的开源定时浇花系统



前言

养了些许花花草草,需要按时浇灌,奈何总是要出差(总想出去玩),又怕没人浇花,花花草草落得个花枯草灭。网上的定时器虽然有很多,但是总是不合自己心意(爱折腾),所以自己动手做一个浇花器。


一、软硬件环境

软件环境:

  • 系统环境Win10
  • 编辑器VSCode
  • VSCode插件PlatformIO

硬件物料:

  • ESP32 S3开发板
  • DS3231模块
  • 光电隔离MOS管模块(LR7843)
  • 5V直流抽水小水泵
  • 家里多的手机充电头
  • USB2.0免焊接插头
  • 杜邦线材若干
  • 水管浇花喷头若干

二、模块连接图

浇花系统模块连接图

1.浇花功能说明

  1. ESP32 S3 发出WIFI热点
  2. 可以用手机通过网页登录
  3. 同步系统时间到DS3231模块
  4. 设置每周自动浇花系统工作日
  5. 设置工作日自动浇花时间点
  6. 设置系统单次浇花时长
  7. 单次手动浇花
  8. 掉电配置状态保存

2.Web界面展示

浇花系统Web页面


总结

这是一个自己DIY简易的自动浇花系统,代码开源地址

https://gitee.com/pinqingchen/esp32-wfs.git

软件设计部分见软件系统说明

本项目实现从上位机软件选择湿度传感器(湿度传感器或碳棒)和浇水形式(潜水泵或电池阀), 同时返回土壤湿度、室内温度、湿度到上位机上显示。 主要部件: 自动浇花系统控制器 1个 Micro USB线 1根 DHT11(DHT11数据手册)温湿度传感器 1个 土壤湿度传感器 1个 模拟接口转数字接口传感器连接线 2根 潜水泵 1个(注意:潜水泵必须在水中使用,不能露出水面!) 潜水泵电源连接线 1根 主板电源连接线 1根 橡胶水管 1米 安装步骤: 1、先将水泵的连接头接到控制器的Solenoid Valve端子上,蓝色接负极(-)棕色接正极(+),然后将电源连接头接到PWRIN端子上,黑色接负极(-)红色接正极(+)。 2、将控制板安装到外壳底板上,然后将Moisture Sensor(土壤湿度传感器)插到传感器接口上,这里使用橙色传感器连接线,注意方向,传感器在控制器上的默认端口为模拟口2。 3.将DHT11温湿度传感器插到传感器接口上,传感器在控制器上的默认端口为数字口9。 4、使用Micro USB线连接电脑,初次使用需要安装USB驱动程序,先去下载Arduino最新的IDE: https://arduino.googlecode.com/files/arduino-1.0.1-windows.zip 5、使用Micro USB线将程序下载到主板上 7、将水装到水桶或水盆里,放在离花盆较近的位置,把配的水管插到潜水泵上然后置于水中,必须保证蓄水充足,以供浇水(注意潜水泵必须在水中使用,在空气中使用会导致损坏)。 8、将水泵和电池盒(或者电源适配器)连接到水泵接口和电源接口上。
### Mixly与ESP32制作电子琴 Mixly是一款基于图形化编程界面的工具,支持多种开发板,其中包括ESP32。通过Mixly可以轻松实现硬件控制功能,例如制作电子琴。以下是关于如何使用Mixly和ESP32制作电子琴的相关说明。 #### 工作原理 电子琴的核心在于声音的生成与按键触发机制。ESP32可以通过PWM(脉宽调制)技术来生成不同频率的声音信号[^3]。每按下一个键,对应的音符频率会被发送到扬声器或其他音频设备上播放。这种设计通常涉及GPIO引脚配置以及定时中断处理。 #### 所需材料 - ESP32 开发板 - 面包板及连接线 - 按钮开关 (数量取决于想要多少个音阶) - 蜂鸣器或者小型喇叭 - USB 数据线用于供电和上传程序 #### 示例代码 下面提供了一个简单的Arduino IDE下的C++版本示例代码片段, 可以转换成相应的Mixly模块: ```cpp const int notes[] = {261, 294, 330, 349, 392, 440}; // C D E F G A 的频率值 const byte buttonsPins[] = {D1,D2,D3,D4,D5,D6}; // 定义按钮所接的数字端口 int currentNoteIndex; void setup() { Serial.begin(9600); for(int i=0;i<sizeof(buttonsPins)/sizeof(byte);i++) pinMode(buttonsPins[i],INPUT_PULLUP); } void loop(){ bool buttonPressed=false; for(currentNoteIndex=0;currentNoteIndex<sizeof(notes)/sizeof(int)&&!buttonPressed;currentNoteIndex++) if(digitalRead(buttonsPins[currentNoteIndex])==LOW){tone(BUZZER_PIN,notes[currentNoteIndex]);buttonPressed=true;} delay(10); } ``` 上述代码定义了一系列基本音乐音符及其对应频率,并设置多个输入引脚监听用户按压动作。当检测到某个特定引脚变为低电平时,则启动蜂鸣器发出相应频率的声音[^4]。 在Mixly环境中,这些逻辑可通过拖拽预设好的组件完成而无需编写复杂语法结构。具体操作如下: 1. **新建项目**:打开Mixly软件并选择合适的主板型号。 2. **初始化参数**:利用`setup()`函数初始化串口通信速度以及其他必要的全局变量声明工作。 3. **主循环体构建**:借助条件判断语句配合事件驱动模型模拟出类似效果。 4. **加载固件至目标设备**:最后一步就是把编译后的二进制文件烧录进实际运行环境当中去测试成果。 #### 注意事项 由于ESP32内部集成了丰富的外设接口选项,在实际应用过程中可能还需要考虑其他因素比如功耗管理等问题。另外值得注意的是,虽然这里给出的例子比较简单易懂,但在真实场景下为了获得更好的用户体验往往需要加入更多细节优化措施,如增加LED指示灯显示当前状态等功能扩展[^5]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值