FastBond2阶段2-基于ESP32家庭远程养殖控制系统
FastBond2阶段2-基于ESP32家庭远程养殖控制系统,用于个人家庭养殖辅助,具备远程控制功能,外出再也不用担心家里的小宠物没人喂养啦!
标签
智能家居
物联网
ESP32-S3
恒温
FastBond第二季
乐鑫
远程控制
HomeAssistant
ESPHome
鲜de芒果
更新2023-09-11
615

一、项目介绍

前段时间家里小朋友的学校要求养点小动物或小盆栽等,为此家里多了一只小乌龟。之前有同事养过乌龟,需要关注的点还蛮多的。比如恒温环境、晒背、水质过滤、喂食等。最近暑假打算带小朋友外出一段时间,因此远程控制功能也成了刚需。

需求总结如下:FnXTlwlvzqrf7gnesHh07alo_kd6

 

二、项目设计思路

2.1 硬件

硬件部分的设计参考 ESP32-S3-DevKitC-1 开发板,在此原理图的基础上增加一个 DHT11 温湿度传感器、一个EG2131驱动电路(用于驱动大功率电器)、4路继电器驱动电路、一个 WS2812B LED灯(点灯必备)。

2.2 软件

软件方面参考了很多成熟方案,综合评比各方面功能最终决定采用 ESPHome + Home Assistant 完成固件开发与远程控制。

Home Assistant 是一款在 Python 3 上运行的家庭自动化平台。能够跟踪和控制家庭中的所有设备,并提供自动化控制平台。有一个简单的、适合移动设备的界面来控制你的所有设备,且不会将任何数据存储在云端,以保护个人隐私。

ESPHome 是一个通过简单而强大的配置文件控制您的 ESP8266/ESP32 和 RP2040 的系统,并通过家庭自动化系统远程控制它们。

 
 
 

三、方案介绍

3.1 方案框图

FseIXrqh08gJg1U1hrRjvJOg4eci

如上的框图中所示,依托 ESP32-S3 的连网功能与丰富的外设,对环境温度、湿度进行采集检测,以及控制多种外设。物联网功能可以很方便进行远程控制。

  • 灯光控制,使用 ESP32-S3 的 GPIO 外设产生 PWM 控制灯光的开关与亮度调节。
  • 恒温控制,根据采集到的环境温度进行自动调节加热模块的开关与功率。
  • 过滤控制,控制水质过滤器的功率,如进食完后一段时间需要加大过滤器功率。
  • 喷淋控制,根据采集到的环境湿度自动为乌龟缸中的植物进行喷淋浇水。
  • 喂食控制,使用 ESP32-S3 的定时器与 GPIO 外设控制喂食装置的开关。
  • 远程控制,通过 ESP32-S3 连接 WIFI 使用物联网功能进行远程控制上述功能。

3.2 原理图

Fm0ChLP5_MCnbeuvr0Nw5Rnqj7r9

3.2 PCB效果图

正面Fj7fr_wZ0reA9_df4iGfQ3KYdPjV 

 

背面FvUNMe1qI4MST77ghU4el6mzooXk

 

四、主要器件介绍

ESP32-S3-WROOM-1U

ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM,支持用户配置数据缓存与指令缓存。

ESP32-S3-WROOM-1U 是一款通用型 Wi-Fi + 低功耗蓝牙 MCU 模组,搭载 ESP32-S3系列芯片。除具有丰富的外设接口外,模组还拥有强大的神经网络运算能力和信号处理能力,适用于 AIoT 领域的多种应用场景,例如唤醒词检测和语音命令识别、人脸检测和识别、智能家居、智能家电、智能控制面板、智能扬声器等。 Fn7HJzmTv1N8szLrZIXup5GmgxTn

 

文档链接:https://www.espressif.com.cn/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf

DHT11

DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。

DHT11 为 4 针单排引脚封装,如下图,采用单线制串行接口,只需加适当的上拉电阻,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。FoUY8e_AZBjROaTrYSwU2rbrWgYX

 

文档链接:https://www.semiee.com/file/ASAIR/ASAIR-DHT11.pdf

TC118S

TC118S 是一颗单通道内置功率MOS全桥驱动芯片,有驱动前进、后退、停止及刹车功,有内置迟滞热效应过流保护功,低导通电阻(1.6Ω),最大连续输出电流可达 1.8A 峰值 2.5A ,无需外围滤波电容.

文档链接:https://www.semiee.com/file/FM/FM-TC118S.pdf

六、PCB绘制打板介绍及遇到的问题和解决方法

  1. 设计的两路大功率控制部分走线需要考虑过大电流,在绘制PCB时竞一时找不到方案如何便捷地给走线绘制开窗,通过上锡的方案让走线能尽可能承受大电流。最终只能通过笨办法在Mask层绘制与走线相同宽度的线条来实现,这种方案实在不优雅,好在最终实现了最终目的。
  2. 在绘制原理图时, 由于库里找不到手头使用的一款 NMos SI2302。于是选择了一个与设计型号相近的 NMos。由于使用了默认封装,没注意引脚顺序。这就导致后面的大量返工。
  3. 在绘制完PCB后进行3D预览时,有很多器件都无法渲染出来,这些器件需要进行关3D模型。找了很久才找到编译封装属性里面有3D模型设置。后面也找到硬禾学堂之前发过的一篇文章,也有相应介绍。参考:https://www.bilibili.com/read/cv6320938/
  4. 在进行调试时,舵机的控制没有响应。这个问题困扰了我一周之久,最终找朋友借用了示波器才发现是控制信号错误导致的。原因是和其它PWM控制输出使用了同一个定时器,修改定时器的通道即可。

六、关键代码及说明

本制作由于使用的ESPHome作为固件的开发,因此都是通过配置文件的形式对固件进行配置相应的功能。以下是关键部分说明:

6.1 网络配置

网络配置时如果默认的DNS连不上,需要设置静态IP。否则在 HomeAssistant 中该设置一直是离线状态。

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  manual_ip:
    static_ip: 192.168.2.136
    gateway: 192.168.2.1
    subnet: 255.255.255.0

6.2 基本开关

基本开关一般用于控制只有打开、关闭 两种状态的设备,例如:电灯。 本制作中用于控制两路大功率电器的开关,以及预警灯的开关。

# 开关
switch:
  - platform: gpio
    pin: 46
    name: "水质过滤器开关 1"
  - platform: gpio
    pin: 45
    name: "恒温加热器 2"

6.3 带功率控制开关

带功率控制开关一般适用于可控制功率与开关的场景,例如可调光的灯具,及可调速的风扇等。 本制作中用于控制一路调光灯,用于照明与给乌龟晒背。一路备用,可接可调速风扇或另一路调光灯。

# 灯光控制
light:
  # PWM 控制加热
  - platform: monochromatic
    name: "晒背灯"
    output: pwm_output_1
  # PWM 控制风扇散热
  - platform: monochromatic
    name: "备用 1"
    output: pwm_output_2

output:
  # PWM 控制1
  - platform: ledc
    channel: 2
    id: pwm_output_1
    pin: 11
  # PWM 控制2
  - platform: ledc
    channel: 3
    id: pwm_output_2
    pin: 12

6.4 传感器数据采集

传感器数据用于在 HomeAssaistant 中展示传感器采集到的数据,一般用于设备状态的监控。 本制作中主要监控有4个状态,WIFI的信号质量,喂食器的位置状态,温度与湿度数据。

# 传感器
sensor:
  # WIFI信号检测
  - platform: wifi_signal
    name: "WIFI信号"
    update_interval: 30s
    unit_of_measurement: "dBa"
    accuracy_decimals: 0
  # DHT11 温湿度传感器
  - platform: dht
    id: dht11
    pin: 4
    temperature:
      name: "乌龟缸温度 temperature"
    humidity:
      name: "乌龟缸湿度 humidity"
    update_interval: 60s
    model: DHT11
  # 伺服马达位置传感器
  - platform: template
    name: "伺服马达位置"
    id: servo_sensor

6.5 H桥控制

H桥控制一般用于控制可双向控制的设备,例如控制电机的正反转,窗帘,门锁等。 本制作中用于控制浇花的水泵。

注意如果水泵需要双向控制的话,需要买可双向的水泵。

# 风扇
fan:
  - platform: hbridge
    id: my_fan
    name: "喷淋"
    pin_a: motor_forward_pin
    pin_b: motor_reverse_pin
    # enable_pin: motor_enable
    decay_mode: slow

output:
  # 马达驱动 A相
  - id: motor_forward_pin
    platform: ledc
    pin: 21
  # 马达驱动 B相
  - id: motor_reverse_pin
    platform: ledc
    pin: 47

6.6 伺服控制

伺服控制用于控制伺服电机,通过简单的PWM控制舵机进行位置转动,本制作中用于控制喂食器的打开与关闭及打开的位置,打开时长等。

# 伺服
servo:
  - id: feeding_servo
    output: feeding_servo_output
    auto_detach_time: 1s
    transition_length: 1s

output:
  # SG90 舵机控制输出
  - platform: ledc
    id: feeding_servo_output
    channel: 4 # 注意这里通道必须使用单独的定时器,否则输出的频率不正确无法控制舵机
    pin: 8
    frequency: 50 Hz # 注意这里的频率必须设定为 50Hz

七、功能展示

7.1 电脑端控制界面展示

7.1.1 在线状态显示

FmFZ3MoKQ4-NXkZZgqimtOlS8xFN

 

7.1.2 离线状态显示

Fqh_pSuN22-CifZWexrSirouzxmD

 

7.2 手机端控制界面展示

FkyZlBXNFLsLUD0CEPgoQ7Jrr2xM

 

7.3 控制器实物展示

7.3.1 主控制板

Fg3Gcizy9i0XSj-3qH4NtNWB-APv

 

7.3.2 全家福

FlTEwZww03nAmBKn0Mjv5Kv0eHTu

 

八、结语

第一次参加《FastBond》活动,通过这次活动使我对智能家居产生了浓厚的兴趣,基本清楚了 HomeAssistant 与 ESPHome的开发流程。《FastBond》这活动自由度比较高,最大限度地发挥个人的想象力、创造力进行创作。当然所要求的知识也是比较全面的,一个项目下来能将自己的知识融会贯通,理论结合实践。

最后,感谢硬禾学堂联合 DigiKey 推出的这次活动!此次活动带给我许多宝贵实践经验和机会,我们下期活动再见!

物料清单
附件下载
pcb.tar.gz
PCB KiCad7工程目录压缩包
代码.yaml
ESPHome配置代码
团队介绍
业余爱好者
团队成员
鲜de芒果
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号