首页 > 编程语言 >用ESP32(ESP32-CAM)(Micropython)、水位传感器、继电器、水泵 做根据水位自动加水的设备时遇到的问题记录

用ESP32(ESP32-CAM)(Micropython)、水位传感器、继电器、水泵 做根据水位自动加水的设备时遇到的问题记录

时间:2024-06-12 18:11:44浏览次数:28  
标签:Micropython https ESP32 继电器 水位 CAM 固件

基本流程

水位传感器放在水缸内上方位置,水位到达水位传感器所在的位置时,水位传感器触发,并输出信号给到ESP32(ESP32CAM)。然后ESP32(ESP32CAM)控制继电器闭合,水泵启动并工作60S。之后还是根据传感器信号,决定继电器是闭合还是断开,一直循环下去。

main.py

点击查看 main.py
from machine import Pin
from time import sleep

# 水位传感器
sensor = Pin(26, Pin.IN)
# 继电器
relay = Pin(18, Pin.OUT)

# 断开继电器
relay.value(1)
sensorValue = sensor.value()

while True:
    if sensor.value() != sensorValue:
        sensorValue = sensor.value()
        print("Current sensor value is " + str(sensorValue))

        if sensorValue == 0:
            relay.value(0)
            print("继电器闭合")
            print("sleeping ...")
            sleep(60)
        else:
            relay.value(1)
            print("继电器断开")

过程中遇到的问题和记录

ESP32刷入Micropython固件

直接用thonny写入Micropython官方的ESP32固件即可

Which GPIO Pins should I use ?
接入继电器之后,却不能控制其闭合或者断开(水位传感器也是,单独供电时,传感器信号没能正常传入ESP32)

原因分析:
ESP32的GPIO引脚最高输出为3.3V电压,无法驱动继电器工作。继电器本质上依赖电压高低差而实现电磁的吸合以及断开

高电平--电压5v---断开

低电平---低电平触发---触发电压0-1.2v---接合

解决方案:
将继电器的VCC输入使用3.3v,不要用5v,然后正常接GPIO,此时低电平0v,高电平3.3v,压差为3.3v,可以稳定工作。

(继电器的电源及信号输入都要来自ESP32)
(水位传感器的也是如此,电源独立时,传感器信号不能正确传递)

参考:

ESP32-CAM 刷入 Micropython 固件

使用 USB转TTL-CH340 连接 ESP32-CAM,用flash_download_tool,把micropython 固件写入 0x1000。模式选DIO,波特率可能需要改成921600,如果默认的115200不成功的话。点击下载之后,如果进度条一直不动,则按一下ESP32-CAM上的RST按钮。
另外,最开始直接用thonny刷入ESP32-CAM的固件,没能成功(ESP32可以直接用thonny刷入Micropython的官方固件)。

ESP32-CAM的引脚

如果不使用SD卡时,GPIO 2、4、12、13、14 和 15可以用作普通的GPIO口

参考:

其他参考资料

标签:Micropython,https,ESP32,继电器,水位,CAM,固件
From: https://www.cnblogs.com/passacaglia/p/18244230

相关文章

  • 【esp32 学习笔记】让SD卡发光发热~
    原理图:图 SD卡部分图MCU中与SD卡相关的接口连接关系如下:[ESP32IO26–CSMICROSD][ESP32IO23–MOSI(DI)MICROSD][ESP32IO19–MISO(DO)MICROSD][ESP32IO18–SCKMICROSD][ESP32GND–GNDMICROSD][3.3V–VCCMICROSD] 软件:我们将使用SD卡库用于沟......
  • ESP32学习笔记:NVS分区永久保存数据
    程序示例:/*ESP32startupcounterexamplewithPreferenceslibrary.ThissimpleexampledemonstratesusingthePreferenceslibrarytostorehowmanytimestheESP32modulehasbooted.ThePreferenceslibraryisawrapperaroundtheNon-volatilestorage......
  • 【esp32 项目】使用I2C
    原理图:图I2C接口的RTC芯片图单片机I2C部分引脚图 软件启动I2C启动Wire库并作为主机或者从机加入总线,这个函数调用一次即可,参数为7位从机地址,不带参数就以主机的形式加入总线。Wire.begin();Wire.begin(address);主设备从从设备请求字节由主设备向从设备请求字节,之......
  • 【esp32 项目】使用I2C第一篇——I2C的科普
    https://www.eepw.com.cn/zhuanlan/315431.html 天我们来玩儿I2C。I2C概述I2C全称是Inter-IntegratedCircuit,是飞利浦半导体公司(06年迁移到NXP了)在1982年发明的,是使用非常广泛的一种通信协议,很多传感器、存储芯片、OLED等,都是在使用I2C。标准输出模式下能达到100kbps的传输......
  • 【esp32 项目】使用esp32的wifi
    原文:《老宇哥带你玩转ESP32:13终于到WiFi功能的使用了》链接:https://www.eepw.com.cn/zhuanlan/315164.html 今天我们来说说ESP32的WiFi。ESP32的WiFi我们之所以使用ESP32做一些小项目,最重要的就是看中了ESP32的WiFi功能,ESP32相当于一个强大的单片机+无线WiFi+蓝牙多合一......
  • 【esp32 项目】中断读取按键
    原理图:图 按键部分图 单片机部分程序:KEY_USR 引脚配置成上拉输入在Arduino中,配置一个IO为上拉输入可以使用pinMode()函数和digitalWrite()函数。pinMode()函数用于设置引脚模式,而digitalWrite()函数用于设置上拉电阻。以下是一个示例代码,展示如何将Arduino的数字引脚3配......
  • 基于51单片机水塔水位控制系统
    基于51单片机水塔水位控制(仿真+程序)功能介绍具体功能:1.用滑动变阻器模拟水位,ADC0809将模拟信号转换为数字信号;2.LCD1602显示当前水位和水位阈值;3.当水位超过设定阈值,蜂鸣器+LED声光报警,并且电机转动(模拟排水);4.三个按键可以设定水位阈值;​演示视频:基于51单片机水塔......
  • 基于ESP32+arduino+platformIO驱动小米模组接入米家app(以温湿度传感器为例)
    1.选择开发板以及开发环境1.ESP32-C3-DevKitC-02作为主控(以下称为ESP32模块)相关文档:ESP32-C3-DevKitC-02-ESP32-C3-—ESP-IDF编程指南latest文档https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitc-02.ht......
  • 如何在 Proteus 中添加 esp32 库进行仿真
    前言:    最近有B站粉丝问到如何使用proteus进行ESP32仿真,然后自己去查阅了很多资料进修了一下,整理了出这篇文章,分享一下如何将ESP32库添加到proteus中并进行仿真。  在Proteus中添加ESP32库进行仿真下面具体介绍步骤:1.打开Proteus,转到"库"->"库管理"......
  • 水位雨量监测站解析
    水位雨量监测站是一种集水位和雨量监测功能于一体的重要气象和水文监测设备。其设计和功能旨在实时、准确地监测和记录河流水位、降雨量等关键数据,为气象、水文、环保等领域提供重要的信息支持。以下是关于水位雨量监测站的详细扩写:系统组成水位雨量监测站通常由以下几个主要......