自制ESP-01远程继电器控制开关灯电路
前几天翻找出1个esp-01模块,家里有个卧室的灯是厨房改造的,电灯开关在外面,使用起来很不方便。于是打算利用这个模块做个可以在局域网控制的开关电路。因为是新手,从网上查找学习到利用业余时间制作用了一个星期。
一 前期准备
1 相关资料的查找学习
主要是在某宝中下载有关成品商家提供的资料,然后在CSDN网站看其他人的制作博客。
2 制作元器件准备
Esp-01模块 1个
5V光耦继电器模块模块(非光耦的也可以) 1个
旧手机5V充电器头 1个
SE8117T33三端稳压芯片(这个是从旧电信猫中拆的)1个
10uf和100nf瓷片电容 各1个
二 制作过程
1 对旧手机充电器改造
1.1 制作esp-01插座
1.2 安装3.3V三端稳压芯片
因为esp-01要求3.3V电源,所以要对手机充电器进行降压处理。开始用串联整流二极管的方法降压,但串的4个电压还在4.4V,效果不明显,所以放弃了这个方案。从旧猫中拆解了个SE8117T33三端稳压芯片。这个芯片专门安装在排针上增加散热。
SE8117T33三端稳压芯片参数:采用三脚SOT-223贴片封装。最大输入电压9V,输出电流1A,输出电压3.3V可调。
SE8117T33三端稳压芯片按照图纸焊接瓷片滤波电容。
1.3 连接继电器模块
具体esp-01模块连接继电器和模块烧录程序的方法借鉴了以下博客内容
管脚定义
#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI
#include
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();
}
1.4 固定在废旧电路板后的成品
三 成品测试视频
自制esp-01远程控制开关灯电路
四 制作过程的一些问题
在esp-01连接电脑烧录程序的时候,第一次用了一个USB转TTL串口下载工具一直与电脑无法识别,后来换了个下载工具好了,分析原因是前面用的串口工具供电不足造成的。另外,在烧录前要将GIO0接GND(下载模式),然后上电进行烧录。烧录完成后断电,取消GIO0和GND连接,上电进入运行模式。我按照以上呈现烧录成功后,在连接小爱语言控制不管用,小爱也显示打开了设备,但继电器没有跳转。
自制ESP-01远程继电器控制开关灯电路
前几天翻找出1个esp-01模块,家里有个卧室的灯是厨房改造的,电灯开关在外面,使用起来很不方便。于是打算利用这个模块做个可以在局域网控制的开关电路。因为是新手,从网上查找学习到利用业余时间制作用了一个星期。
一 前期准备
1 相关资料的查找学习
主要是在某宝中下载有关成品商家提供的资料,然后在CSDN网站看其他人的制作博客。
2 制作元器件准备
Esp-01模块 1个
5V光耦继电器模块模块(非光耦的也可以) 1个
旧手机5V充电器头 1个
SE8117T33三端稳压芯片(这个是从旧电信猫中拆的)1个
10uf和100nf瓷片电容 各1个
二 制作过程
1 对旧手机充电器改造
1.1 制作esp-01插座
1.2 安装3.3V三端稳压芯片
因为esp-01要求3.3V电源,所以要对手机充电器进行降压处理。开始用串联整流二极管的方法降压,但串的4个电压还在4.4V,效果不明显,所以放弃了这个方案。从旧猫中拆解了个SE8117T33三端稳压芯片。这个芯片专门安装在排针上增加散热。
SE8117T33三端稳压芯片参数:采用三脚SOT-223贴片封装。最大输入电压9V,输出电流1A,输出电压3.3V可调。
SE8117T33三端稳压芯片按照图纸焊接瓷片滤波电容。
1.3 连接继电器模块
具体esp-01模块连接继电器和模块烧录程序的方法借鉴了以下博客内容
管脚定义
#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI
#include
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();
}
1.4 固定在废旧电路板后的成品
三 成品测试视频
自制esp-01远程控制开关灯电路
四 制作过程的一些问题
在esp-01连接电脑烧录程序的时候,第一次用了一个USB转TTL串口下载工具一直与电脑无法识别,后来换了个下载工具好了,分析原因是前面用的串口工具供电不足造成的。另外,在烧录前要将GIO0接GND(下载模式),然后上电进行烧录。烧录完成后断电,取消GIO0和GND连接,上电进入运行模式。我按照以上呈现烧录成功后,在连接小爱语言控制不管用,小爱也显示打开了设备,但继电器没有跳转。
举报