使用Blinker控制esp01s Relay继电器模块

一、ESP-01s和ESP-01区别

ESP8266-01简称ESP-01;ESP8266-01s简称ESP-01s。

外观区别

  1. ESP01模块上电和信号传输在天线区域右下角有2个LED灯,红色LED上电的时候闪烁,串口通讯的时候蓝色LED闪烁;ESP01s整个模块上只有一个蓝色LED,上电和串口通讯都是蓝色LED闪烁。如图左边是ESP01s,右边是ESP01(图片来源https://www.cnblogs.com/easyidea/p/11525197.htm)
    在这里插入图片描述
  2. ESP01s模块背面有引脚说明,ESP01背面没有。
    在这里插入图片描述

电路区别

ESP01s内部电路相较于ESP01做了优化,

  • LED灯的管脚发生变化,由ESP01的TXD0变成ESP01s的GPIO2引脚;
  • ESP01s模块的IO0、RST、EN引脚上加了上拉电阻,也就是说在连接了3v3引脚后这三个引脚也自动连接上高电平,无需再EN引脚上外接高电平。
    在这里插入图片描述

二、ESP-01s引脚

管脚示意图

在这里插入图片描述

管脚功能定义

在这里插入图片描述

电路原理图

在这里插入图片描述

三、控制esp01s Relay

具体arduino IDE配置看前边使用arduion IDE开发ESP8266,我是使用点灯科技Blinker来远程控制ESP01s的继电器模块。

安装blinker arduino库

  1. 从点灯科技官网下blinker arduino库https://diandeng.tech/dev,下载下来是个.ZIP格式的压缩包,打开arduion IDE导入该压缩包。
    在这里插入图片描述
  2. Arduino IDE打开:项目-加载库-添加.ZIP库知道刚刚下载的库导入(另一种方法是直接放到arduino IDE软件下载的libraries文件夹下,进入IDE文件-示例-Blinker
  3. 在这里插入图片描述

申请Secret Key

  1. 下载安装blinker APP,从GIthub上下载https://github.com/blinker-iot/app-release/releases或者从手机应用商店搜blinker下载我这里用小米的应用商店没有搜到
  2. 进入App没有账号先注册一个然后进入点击右上角的+,选择独立设备网络接入随便选择一个通信服务商申请一个密钥复制保存留用。如果忘记了可以进入APP后点击左上角三条横线那进入侧边菜单栏选择设备管理点击已经申请的设备就能看见密钥。(免费的最多可以申请五个设备的密钥)
3. 申请完后进入页面会有向导页,跟着导向页提示载入示例就可以。

Demo控制继电器通断

根据说明书我们可以看到ESP01s芯片通过GPIO0引脚控制的继电器工作,且是高电平有效。
在这里插入图片描述
在这里插入图片描述
其中COM是公共端,NC常闭触点,NO常开触点,当GPIO0输出为高电平的时候NC常闭触点就打开,而NO常开触点关闭。

#define BLINKER_WIFI //以WIFI方式接入,BLINKER_BLE以蓝牙方式接入
#include <Blinker.h>
//配置wifi联网模块
char auth[] = "Blinker中申请的密钥";
char ssid[] = "WIFI名字";
char pswd[] = "WIFI密码";
int GPIO = 0;
BlinkerButton Button1("btn-abc");//新建组件和Blinker app上的数据键名一样
// 按下按键就会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(GPIO, HIGH);
    Blinker.delay(500);//操作延时
}
void setup() {
    // 初始化串口
    Serial.begin(115200);
    // 初始化控制继电器的GPIO引脚
    pinMode(GPIO, OUTPUT);
    digitalWrite(GPIO, LOW);//低电平默认继电器关闭
    // 初始化WIFI设置
    Blinker.begin(auth, ssid, pswd);
   //数据管理,当收到指令的时候会调用该回调函数
    Button1.attach(button1_callback);
}
//让程序一直运行
void loop() {
    Blinker.run();
}

四、程序烧录

在arduino IDE中写完程序后,经过编译没有问题后直接上传烧录,接线引脚如下:

  • 3V3——3V3
  • GND——GND
  • RX——TXD
  • TX——RXD
  • IO0——GND(烧录下载模式必须使得IO0引脚处于低电平,接地)
    在这里插入图片描述
    在这里插入图片描述

参考

esp-01与esp-01s的区别 ESP8288-01S与ESP8288-01的区别
详解ESP8266 ESP-01SRealy继电器模块天猫精灵语音控制实现
WIFI模块ESP8266-01S
点灯科技的官方文档

<think>我们正在处理一个关于ESP32远程控制继电器的问题。用户要求提供教程和示例代码。根据引用内容,我们可以整合相关信息。引用[1]提到了ESP系列入门教程,其中包含用继电器驱动LED的示例,但具体到ESP32的引脚图和代码实现,需要参考其内容。引用[2]提到了MicroPython网络服务器使用ESP32/ESP8266远程控制家用交流电器,并有一个详细的教程。引用[3]则提到了点灯科技实现远程开关,并解释了使用LED_BUILTIN的原因,但这里我们关注的是继电器的控制。我们重点参考引用[2],因为它直接提到了使用MicroPython网络服务器控制ESP32/ESP8266远程控制家用电器(通过继电器)。虽然引用[2]没有给出具体代码,但提到了有相似的教程详细解释了每一行代码,并给出了链接(尽管是外部链接,但我们不能直接使用外部链接,但可以基于已知知识编写)。因此,我们可以设计一个基于MicroPython的简单Web服务器,运行在ESP32上,通过网页控制继电器的开关。步骤:1.硬件连接:-ESP32的GPIO引脚(例如GPIO5)连接到继电器模块控制引脚(IN)。-继电器模块的VCC和GND分别连接到ESP32的3.3V(或5V,根据继电器模块要求)和GND。-注意:继电器模块控制电压要匹配,有些继电器模块是低电平触发,有些是高电平触发,这里假设为高电平触发。2.编写MicroPython代码:-创建一个简单的Web服务器,监听80端口。-当访问根URL时,返回一个简单的网页,上面有开关按钮。-当点击按钮时,向ESP32发送控制命令(例如打开或关闭继电器)。3.代码实现:注意:由于ESP32的MicroPython固件可能不同,需要先烧录MicroPython固件。以下是一个示例代码:```pythonimportnetworkimportsocketimportmachine#配置Wi-FiSSID='your_SSID'PASSWORD='your_PASSWORD'#设置GPIO引脚(这里使用GPIO5,根据实际连接修改)relay_pin=machine.Pin(5,machine.Pin.OUT)#连接Wi-Fiwlan=network.WLAN(network.STA_IF)wlan.active(True)wlan.connect(SSID,PASSWORD)#等待连接whilenotwlan.isconnected():passprint('ConnectedtoWi-Fi:',wlan.ifconfig())#创建TCP套接字并监听80端口s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind(('',80))s.listen(5)#网页模板html="""<!DOCTYPEhtml><html><head><title>ESP32RelayControl</title></head><body><h1>ESP32RelayControl</h1><ahref="/on"><button>TurnON</button></a><ahref="/off"><button>TurnOFF</button></a></body></html>"""whileTrue:conn,addr=s.accept()print('Gotaconnectionfrom%s'%str(addr))request=conn.recv(1024)request=str(request)print('Content=%s'%request)#根据请求路径控制继电器ifrequest.find('/on')!=-1:relay_pin.value(1)#高电平触发,打开继电器elifrequest.find('/off')!=-1:relay_pin.value(0)#关闭继电器#发送响应response=htmlconn.send('HTTP/1.1200OK\n')conn.send('Content-Type:text/html\n')conn.send('Connection:close\n\n')conn.sendall(response)conn.close()```4.使用说明:-将代码中的'your_SSID'和'your_PASSWORD'替换为你的Wi-Fi信息。-将继电器控制引脚连接到ESP32的GPIO5(或其他可用引脚,需相应修改代码)。-上传代码到ESP32并运行。-在浏览器中输入ESP32的IP地址(在串口打印中会显示),即可看到控制页面。注意:此示例代码非常基础,没有考虑安全性和复杂的网络环境,仅用于演示。实际应用中可能需要添加密码保护或使用更安全的协议。引用说明:引用[2]提到了使用MicroPython网络服务器控制ESP32/ESP8266,我们的代码正是基于这一思想实现的。相关问题:1.如何为ESP32烧录MicroPython固件?2.继电器模块有几种触发方式?如何区分?3.如何增强这个远程控制系统的安全性?</think>### ESP32 远程控制继电器教程 #### 硬件准备 1. **ESP32开发板**(如ESP32-DevKitC) 2. **继电器模块**(建议5V/10A规格) 3. **电源适配器**(5V/2A为ESP32和继电器供电) 4. **杜邦线**(连接电路) 5. **被控设备**(如LED灯、小风扇等) #### 接线方式 ```mermaid graph LR ESP32[ESP32 GPIO] -->|控制信号| RELAY[继电器IN引脚] 5V[5V电源+] -->|供电| RELAY GND[电源GND] -->|共地| ESP32_GND[ESP32 GND] GND --> RELAY_GND[继电器GND] RELAY -->|输出端| LOAD[被控设备] ``` #### MicroPython示例代码 ```python import network import socket import machine # 配置Wi-Fi SSID = "your_wifi" PASSWORD = "your_password" # 继电器控制引脚(根据实际接线修改) relay = machine.Pin(23, machine.Pin.OUT) # 连接Wi-Fi def connect_wifi(): sta_if = network.WLAN(network.STA_IF) sta_if.active(True) sta_if.connect(SSID, PASSWORD) while not sta_if.isconnected(): pass print('IP地址:', sta_if.ifconfig()[0]) # 创建Web服务器 def start_server(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 80)) s.listen(5) while True: conn, addr = s.accept() request = conn.recv(1024).decode() # 解析控制指令 if 'GET /on' in request: relay.value(1) # 打开继电器 elif 'GET /off' in request: relay.value(0) # 关闭继电器 # 返回控制页面 html = """<html><body> <h1>ESP32继电器控制</h1> <a href="/on"><button>开启</button></a> <a href="/off"><button>关闭</button></a> </body></html>""" conn.send('HTTP/1.1 200 OK\nContent-Type: text/html\n\n') conn.send(html) conn.close() # 主程序 connect_wifi() start_server() ``` #### 操作步骤 1. **硬件连接**: - ESP32的GPIO23 → 继电器IN引脚 - ESP32的GND → 继电器GND - 继电器VCC → 5V电源正极 - 继电器输出端 → 被控设备电路 2. **代码部署**: - 使用Thonny IDE将代码上传到ESP32 - 修改代码中的Wi-Fi账号密码 - 重启设备运行程序 3. **远程控制**: - 在浏览器访问ESP32的IP地址(串口会打印) - 点击网页按钮控制继电器状态 - 继电器动作时会发出"咔嗒"声 > **安全提示**:控制大功率设备时,务必确保继电器规格匹配负载功率,避免直接接触强电部分[^3]。 #### 进阶应用 - 添加微信小程序控制(需使用Blinker等IoT平台) - 设置定时开关功能 - 增加状态反馈LED指示 - 实现多路继电器控制
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值