电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
WIFI插座远程控制
分 享
扫描二维码分享
WIFI插座远程控制
远程控制
esp8266
WIFI插座
夕阳接你
关注
发布时间: 2019-11-15
丨
阅读: 6376
续上一个[节能插座](https://www.icxbk.com/article/detail/1005.html "节能插座"),之后有萌生一个远程控制插座的想法。当然已有的方案很多,作为耐不住寂寞的小白,总想亲手DIY一个属于自己的远程插座。 来了,托电子芯吧客的福,各种组团+秒抢+试用+拼购,手头积了一些货。 基于**不落灰**原则,充分利用手头资源。掏出了“海凌科HLK-PM03 开关电源”和“ESP-10S 2.4G WIFI模块”。 # 硬件搭建 #### 准备硬件材料(如图): 1. 海凌科HLK-PM03 3.3V开关电源模组(体积小是最大的亮点) 2. ESP-10S 2.4G WIFI模块(价格优势) 3. 5V 10A继电器(3.3V竟然可以驱动) 4. 双路独立开关插排(主要是内部空间足够大,可以塞的下控制电路板) 5. 二极管(用来抵消继电器断开的脉冲) 6. 25V 470uF电容(电源3.3V稳压) 7. 2N3904 三极管(提供更强劲开关驱动力) 8. 洞洞板以及线材。。。(DIY必备)  #### 原理图浅析 220V交流市电经过按钮总开关,通过海凌科HLK-PM03变压模块转为3.3V直流电。 经470uf电容稳压,给ESP-01S WIFI模块和继电器提供工作电源。 ESP-01S 模块通过GPIO3(即RX)控制继电器开合,以至于控制双路插座220V交流电的通断。 LED0 为插座通断的指示灯。  #### 硬件DIY 按电路图,将各个器件焊接到洞洞板上,经历一番云牵雾绕的焊接,将小小的板子焊接的满满当当的。  插排空间有限,拆除插座独立开关的其中一个,空出来供控制板安装,(空出按键孔,封上透明塑料,供ESP-01s 模块指示灯显示。。。完美^.^) HLK-PM03 3.3V开关电源刚好可以塞在凸起空槽里,略微修修边可以无缝合上背盖子。 将各个模块按电路连线焊接起来如图。(看起来也没那么剪不断理还乱。。)  #### 上电测试电路 经过三番五次电路检查后,下面就是最紧张的通电环节,要么就是妥妥的,要么就是一阵青烟带着焦糊味,白瞎了两天。 手抖抖的插上电,按下按钮,透过"窗口",ESP-01S电源红色指示灯亮了,蓝色信号指示灯有闪烁. # 忍不住暗喜^_^  # 软件开发 基于容易上手的物联网平台[Blinker](https://diandeng.tech/home "Blinker"),基于arduino IDE 开发环境快速上手。 #### 环境搭建简介: 1.下载ESP8266的[blinker库](https://doc.blinker.app/?file=001-快速开始/02-esp8266-WiFi接入 "blinker库")解压到arduino的labraries下. 2.Arduino IDE进入首选项(Preferences),添加 附加ESP8266开发板管理器地址 http://arduino.esp8266.com/stable/package_esp8266com_index.json 然后,开发板管理器找到并安装ESP8266开发板库。 3.Blinker官网注册账号,手机端安装并登录控制台APP,"+"添加“DIY设备”->Arduino->WiFi接入->记住生成的Secert Key(区分物联网设备的ID)->完成后“所有设备”就有创建的设备图标->右上角铅笔添加控件(开关,滑动条,仪表。。。)->添加“按键”->编辑按键,“数据键名”button1就是代码所定义BlinkerButton变量->保存修改即可。  #### 代码开发 在Arduino 的示例中可以找到blinker提供的Button_wifi的demo模板。稍加修改,实现一个按键的控制ESP8266的GPIO3(试了GPIO0和GPIO2,会断电后出现ESP8266启动不了的问题,查了资料,可能电平是被拉低,避免麻烦,有确保可以串口丢debug信息,就将RX做GPIO控制口)。附上代码: ```cpp #define BLINKER_WIFI #include <Blinker.h> #define SwitchPin 3 BlinkerButton Button1("button1");//数据键名 char auth[] = "Your Device Secret Key";//APP端创建设备生成的Secert Key char ssid[] = "Your WiFi network SSID or name";//你的Wifi名字 char pswd[] = "Your WiFi network WPA password or WEP key";//你的wifi密码 void button1_callback(const String & state) { if (state == BLINKER_CMD_ON) { digitalWrite(SwitchPin, HIGH); // Button1.text(" ","关闭"); Button1.color("#DC143C"); Button1.print("on"); } else { digitalWrite(SwitchPin, LOW); // Button1.text(" ", "打开"); Button1.color("#000000"); Button1.print("off"); } BLINKER_LOG("Set state: ", state); } void setup() { delay(200); Serial.begin(115200); Serial.println("...Start..."); BLINKER_DEBUG.stream(Serial); Blinker.begin(auth, ssid, pswd); pinMode(SwitchPin, OUTPUT); digitalWrite(SwitchPin, LOW); Button1.attach(button1_callback); } void loop() { Blinker.run(); } ``` #### 实用测试 编译下载到ESP-01s模块后,上电测试。 串口会丢出联网信息,不出意外连接成功 “connected”; 此时,手机APP刷新一下设备信息,离线变成在线; 点击按钮,monitor控件会有蓝色控制消息输出,如果ESP-01s收到执行成功,会回复黑色消息并改变按钮颜色,整体交互体验很不错。(如果快速操作,可能是网路有延迟,无法执行成功)  #### 效果如图  远程控制Wifi插座完工,远程烧饭烧水不是梦。。。谢谢芯吧客。。。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
3
)
夕阳接你
关注
评论
(6)
登录后可评论,请
登录
或
注册
雕爷学编程
21
天前...
收藏了,也想做一个
2
回复
发布
夕阳接你
回复
雕爷学编程
352
天前...
支持
0
回复
发布
f015884e9b160ffc
17
天前...
编译下载到ESP-01s模块,这一步是用开发板还是直接用串口下载?
0
回复
发布
夕阳接你
回复
f015884e9b160ffc
352
天前...
我是直接使用USB转TTL串口下载,你可以百度TTL下载接线。
0
回复
发布
51ee6f8dde73f90f
14
天前...
为啥我的选ESP8266编译不了呢
0
回复
发布
夕阳接你
回复
51ee6f8dde73f90f
352
天前...
库对了,应该可以编译,上面代码#include <bl
inker.h> 有转码错误,应该是 #include
inker.h>;
0
回复
发布
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交