ESP8266 ESP-01/01S 控制WIFI继电器

本文介绍了如何使用ESP-01S模块配合ArduinoIDE进行继电器控制,包括安装ArduinoIDE、添加附加开发板、使用点灯科技APP与天猫精灵集成以及烧录过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个ESP-01S 的继电器控制模块

如图:

这是我DIY的 AC 220V转DC 5V供电模块, (不懂电路的不建议使用220v家用电)

如图模块我这个是支持 5V 直流供电的,可以使用手机充电器一般都是5V,

买一个转接口就行了,正负极不要接反了,不要使用多电压充电器

开发环境为 win7,软件版本为Arduino 1.8.19

1.安装Arduino IDE

下载地址 下载Arduino IDE

2.添加附加开发板地址

打开Arduino IDE菜单 > 文件 >首选项,在 附加开发板管理器网址 输入框中,填入以下网址:
https://arduino.me/packages/esp8266.json

3.安装社区离线包

下载社区打包的esp8266安装包,直接解压运行即可。

https://download.youkuaiyun.com/download/u012841825/88612461

(建议使用这个版本的包 esp8266_package_3.0.1_arduino.cn,因为我的开发环境是win7 的高版本会有问题)

IDE准备工作完成了

点灯科技APP操作

1.下载点灯科技app

点灯科技 (diandeng.tech)

这就是要用到的key

这个按键名和代码中的一样

2.设置天猫精灵 绑定点灯科技APP

我使用的是点灯科技 Blinker天猫精灵接入流程

1.先下载点灯科技SDK

github下载   gitee下载  blinker-library-0.3.10230510资源-优快云文库

2.上代码

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_LIGHT //天猫精灵
#include <Blinker.h>

char auth[] = "";//点灯科技创建应用的key
char ssid[] = "wifi账号";
char pswd[] = "wifi密码";
int pinRelay = 0;

// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
// 按下按键即会执行该函数
void button1_callback(const String & state) {
  BLINKER_LOG("get button state: ", state);
  if (state == "on") {
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(pinRelay, LOW);
    // 反馈开关状态
    Button1.print("on");
  } else if (state == "off") {
    digitalWrite(LED_BUILTIN, HIGH);
    // 反馈开关状态
    digitalWrite(pinRelay, HIGH);
    Button1.print("off");
  }
}
void heartbeat()  //心跳包
{
  Button1.icon("fas fa-lightbulb");
  Button1.color("#fddb00");
  Button1.text("关灯", "打开啦");
  Number1.print(WiFi.RSSI());  //信号强度

}

//天猫精灵
void aligeniePowerState(const String & state)
{
  BLINKER_LOG("need set power state: ", state);

  if (state == BLINKER_CMD_ON) {
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(pinRelay, LOW);
    BlinkerAliGenie.powerState("off");
    BlinkerAliGenie.print();
  }
  else if (state == BLINKER_CMD_OFF) {
    digitalWrite(LED_BUILTIN, HIGH);
    digitalWrite(pinRelay, HIGH);
    BlinkerAliGenie.powerState("on");
    BlinkerAliGenie.print();
  }
}

void setup() {
  // 初始化串口
  Serial.begin(115200);
  // 初始化有LED的IO
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(0, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  digitalWrite(pinRelay, HIGH);
  // 初始化blinker
  Blinker.begin(auth, ssid, pswd);
  Button1.attach(button1_callback);
  BlinkerAliGenie.attachPowerState(aligeniePowerState);
  Blinker.attachHeartbeat(heartbeat);
}

void loop() {
  Blinker.run();
  //Blinker.run()语句负责处理Blinker收到的数据,每次运行都会将设备收到的数据进行一次解析。
  //在使用WiFi接入时,该语句也负责保持网络连接
}

3.安装ESP-01S 烧录器驱动

驱动下载  根据自己的型号下载驱动

win7 部分电脑安装完驱动可能会还显示黄色叹号,安装完补丁重启电脑即可(我的电脑出现了)

KB3033929-x64补丁资源-优快云文库  

在计算机》右键设备管理》端口

4.烧录代码

把ESP-01S插到烧录器上 插到电脑usb会显示串口,如果没有你的型号可以选择第一个

选择要烧录器端口  工具》端口   我是COM4

当你显示到这的时候说明你已经成功了

祝你成功运行代码!

### 基于MicroPython的ESP8266控制继电器模块示例 以下是基于MicroPython编写的一个简单示例代码,用于通过ESP8266开发板(如NodeMCU)来控制继电器模块: #### 示例代码 ```python from machine import Pin # 导入Pin类以便配置GPIO引脚[^1] # 配置继电器连接的GPIO引脚号 (例如 GPIO5 对应 NodeMCU 的 D1 引脚) relay_pin = Pin(5, Pin.OUT) def turn_on_relay(): """打开继电器""" relay_pin.value(0) # 继电器低电平触发时开启[^1] def turn_off_relay(): """关闭继电器""" relay_pin.value(1) # 继电器高电平时关闭[^1] # 测试功能 turn_on_relay() # 打开继电器 print("Relay is ON") import time time.sleep(2) # 等待两秒 turn_off_relay() # 关闭继电器 print("Relay is OFF") ``` 此代码实现了基本的功能: - `turn_on_relay` 函数设置继电器为激活状态。 - `turn_off_relay` 函数设置继电器为非激活状态。 需要注意的是,某些继电器模块可能采用 **反向逻辑**,即当输入信号为低电平时会激活继电器。因此,在实际应用中需验证具体硬件的行为并调整代码中的高低电平设定[^1]。 --- ### 进一步扩展WiFi控制功能 如果希望利用ESP8266WiFi能力远程控制继电器,则可以引入网络通信协议(如HTTP请求)。以下是一个简单的Web服务器实现,允许用户通过浏览器访问特定URL地址来开关继电器: #### Web服务端代码 ```python from machine import Pin try: import usocket as socket except: import socket # 初始化继电器引脚 relay = Pin(5, Pin.OUT) relay.value(1) # 默认关闭继电器 # 创建HTML页面响应内容 html = """ <html> <head> <title>ESP8266 Relay Control</title> </head> <body> <h1>Control the Relay:</h1> <a href="/?action=on"><button>ON</button></a> <a href="/?action=off"><button>OFF</button></a> <p>{status}</p> </body> </html> """ def start_web_server(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('0.0.0.0', 80)) s.listen(5) while True: conn, addr = s.accept() request = str(conn.recv(1024)) if 'GET /?action=on' in request: relay.value(0) # 设置继电器为开启状态 status = "Relay is ON" elif 'GET /?action=off' in request: relay.value(1) # 设置继电器为关闭状态 status = "Relay is OFF" response = html.format(status=status) conn.send('HTTP/1.1 200 OK\n') conn.send('Content-Type: text/html\n') conn.send('Connection: close\n\n') conn.sendall(response) conn.close() start_web_server() ``` 该程序创建了一个简易的Web服务器,监听来自客户端的请求,并根据参数 `/action=on` 或 `/action=off` 来切换继电器的状态[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值