完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
自制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连接,上电进入运行模式。我按照以上呈现烧录成功后,在连接小爱语言控制不管用,小爱也显示打开了设备,但继电器没有跳转。 |
|
|
|
只有小组成员才能发言,加入小组>>
3318 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9063 浏览 16 评论
4088 浏览 18 评论
1185浏览 3评论
611浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2337浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1897浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:48 , Processed in 1.033286 second(s), Total 45, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号