自制ESP-01远程继电器控制开关灯电路

      前几天翻找出1个esp-01模块,家里有个卧室的灯是厨房改造的,电灯开关在外面,使用起来很不方便。于是打算利用这个模块做个可以在局域网控制的开关电路。因为是新手,从网上查找学习到利用业余时间制作用了一个星期。

一 前期准备

2 制作元器件准备

Esp-01模块 1个

5V光耦继电器模块模块(非光耦的也可以) 1个

旧手机5V充电器头 1个

SE8117T33三端稳压芯片(这个是从旧电信猫中拆的)1个

10uf和100nf瓷片电容 各1个

二 制作过程

1 对旧手机充电器改造

1.1 制作esp-01插座

自己封装CentOS 自己封装esp_下载工具

自己封装CentOS 自己封装esp_#define_02

1.2 安装3.3V三端稳压芯片

因为esp-01要求3.3V电源,所以要对手机充电器进行降压处理。开始用串联整流二极管的方法降压,但串的4个电压还在4.4V,效果不明显,所以放弃了这个方案。从旧猫中拆解了个SE8117T33三端稳压芯片。这个芯片专门安装在排针上增加散热。

SE8117T33三端稳压芯片参数:采用三脚SOT-223贴片封装。最大输入电压9V,输出电流1A,输出电压3.3V可调。

自己封装CentOS 自己封装esp_单片机_03

自己封装CentOS 自己封装esp_单片机_04

自己封装CentOS 自己封装esp_自己封装CentOS_05

自己封装CentOS 自己封装esp_自己封装CentOS_06

SE8117T33三端稳压芯片按照图纸焊接瓷片滤波电容。

自己封装CentOS 自己封装esp_自己封装CentOS_07

1.3 连接继电器模块

具体esp-01模块连接继电器和模块烧录程序的方法借鉴了以下博客内容

自己封装CentOS 自己封装esp_自己封装CentOS_08

管脚定义

自己封装CentOS 自己封装esp_下载工具_09


#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "888888888";  //设备key,打开点灯app,添加设备,选择arduino设备,选择wifi接入,这里就会获得一个密钥,把密钥填写在这里。
char ssid[] = "**********";  //路由器wifi ssid
char pswd[] = "88888888";  //路由器wifi 密码

int GPIO=0;//定义GPIO口用于控制继电器

#define BUTTON_1 "ButtonKey"


BlinkerButton Button1("key");//这里需要根据自己在BLINKER里面设置的名字进行更改

void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(GPIO,!digitalRead(GPIO));
    Blinker.vibrate(); 
}



void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ",state);

    if (state == BLINKER_CMD_OFF) {//如果语音接收到是关闭灯就设置GPIO口为高电平
        digitalWrite(GPIO, HIGH);

        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_ON) {
        digitalWrite(GPIO, LOW);
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
    }
}


void setup() {
    Serial.begin(115200);
    pinMode(GPIO,OUTPUT);
    digitalWrite(GPIO,HIGH);//初始化,由于继电器是低电平触发。所以刚开始设为高电平
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    BlinkerMIOT.attachPowerState(miotPowerState);//这段代码一定要加,不加小爱同学控制不了,务必在回调函数中反馈该控制状态


}

void loop()
{
    Blinker.run();
}

自己封装CentOS 自己封装esp_下载工具_10

自己封装CentOS 自己封装esp_#define_11

1.4 固定在废旧电路板后的成品

自己封装CentOS 自己封装esp_单片机_12

自己封装CentOS 自己封装esp_物联网_13

三 成品测试视频

自制esp-01远程控制开关灯电路

四 制作过程的一些问题

    在esp-01连接电脑烧录程序的时候,第一次用了一个USB转TTL串口下载工具一直与电脑无法识别,后来换了个下载工具好了,分析原因是前面用的串口工具供电不足造成的。另外,在烧录前要将GIO0接GND(下载模式),然后上电进行烧录。烧录完成后断电,取消GIO0和GND连接,上电进入运行模式。我按照以上呈现烧录成功后,在连接小爱语言控制不管用,小爱也显示打开了设备,但继电器没有跳转。