
标准版
ESP8266低功耗4位插座
3.0k
0
0
9
简介
ESP8266 制作的低功耗 4位智能插座
简介:ESP8266 制作的低功耗 4位智能插座开源协议
:GPL 3.0
创建时间:2022-05-13 09:58:57更新时间:2022-05-23 02:27:42
描述
打印机等设备太多,长期通电待机功耗大,不同电,使用时又不方便,之前一直使用小K 一位智能插座,连接排插,定时开关所有设备。知道最近玩起ESP8266,学习了Arduino,所以产生了自己DIY智能插座的项目。
目前已实现功能:1.低功耗设计,采用4只磁保持继电器,只在开关动作时继电器线圈通电,其余时间只有ESP8266待机耗电,用USB电流表测试整个PCB待机电流0.08A,单个继电器动作时电流0.15A。
2.断网状态 4位插座可独立使用按键控制,相应LED指示通断状态。
3.采用MQTT协议接入Home Assistant,可使用Home Assistant WEB或者手机客户端控制每位开关,同时插座会反馈按键开关操作插座的状态,按动任意按键,插座将局域网IP发送给MQTT订阅主题
4.使用ESP8266 WEBserver服务,可网页操作开关通断(同时支持POST参数控制,可接入其他自动控制设备或程序)
5.使用ESP8266 EEPROM存储开关状态,重启上电可分别设置每位开关状态为 关闭/开启/保持上次状态(使用WEB配置)
6.WEB界面可设置4位开关备注名称
7.上电长按第3个按键(电源线端为按键1),可重置EEPROM参数
8.WIFI账号密码配网,使用过WiFiManager中文库做WEB配网,但偶尔程序跑飞,所以改成WEB页面配网,断码请自行完善
9.WEB配网及内置定时开关功能正在完善中,敬请期待
注意,插座带有220V交流电,非专业人士请勿拆开和改造!该文章仅为展示,如仿制请自行注意安全!!!
本开源项目遵循GPL3.0开源协议,但是如果商用,请您捐助所得净利的20%给慈善项目并且将整个捐款订单公开,如果做不到请不要商用






WEB配置及控制界面


Home Assistant WEB界面 支持插座反馈状态


固件升级页面,直接WEB上传bin文件升级

Home Assistant 配置文件
configuration.yaml 文件添加 “ switch: !include switchs.yaml”
switchs.yaml 文件如下这是1个插座,多个插座自行更改设备名及订阅主题
- platform: mqttname: "GN-B3043-1F773D-K1" #设备名称,自己设置state_topic: "GN-B3043-1F773D/state/K1" # “GN-B3043-1F773D” MQTT订阅主题,即插座的设备名称,可网页自行设置,设置成Auto 则自动用MAC生产,该地址即自动生成command_topic: "GN-B3043-1F773D/set/K1"unique_id: "32b33778a2614be0a3290f81afdeaba9" #实体ID,任意,不重复就行,不设置,Home Assistant会提示无唯一实体ID payload_on: "1"payload_off: "0"state_on: "1"state_off: "0"optimistic: falseqos: 0retain: falseicon: mdi:monitor- platform: mqttname: "GN-B3043-1F773D-K2"state_topic: "GN-B3043-1F773D/state/K2"command_topic: "GN-B3043-1F773D/set/K2"unique_id: "32b33778a2614be0a3290f81afdeabaa"payload_on: "1"payload_off: "0"state_on: "1"state_off: "0"optimistic: falseqos: 0retain: false- platform: mqttname: "GN-B3043-1F773D-K3"state_topic: "GN-B3043-1F773D/state/K3"command_topic: "GN-B3043-1F773D/set/K3"unique_id: "32b33778a2614be0a3290f81afdeabab"payload_on: "1"payload_off: "0"state_on: "1"state_off: "0"optimistic: falseqos: 0retain: falseicon: mdi:television-classic- platform: mqttname: "GN-B3043-1F773D-K4"state_topic: "GN-B3043-1F773D/state/K4"command_topic: "GN-B3043-1F773D/set/K4"unique_id: "32b33778a2614be0a3290f81afdeabac"payload_on: "1"payload_off: "0"state_on: "1"state_off: "0"optimistic: falseqos: 0retain: false
#include#include#include#include#include#include#include#includeTicker flipper;//定义定时器//#define PIN_POWER 4 //指示灯位于GPIO4#define PIN_LED 13 //指示灯位于GPIO2#define KEY1 0 //KEY对应值GPI14#define KEY2 2 //KEY对应值GPI14#define KEY3 4 //KEY对应值GPI14#define KEY4 5 //KEY对应值GPI14int dspin = 16;//74HC595的14脚 数据输入引脚SI 数据int clkpin = 12;//74hc595的11脚 时钟线 SCK 时钟int latpin = 14;//74hc595的12脚 输出存储器锁存线RCK 锁存String AutoRigName = "";// 设备名 如果“Auto”则使用MAC自动生成)String RIG_IDENTIFIER ; // EEPROM 地址 120String K1_name = "开关1"; //开关1名称 EEPROM 地址 200String K2_name = "开关2"; //开关2名称 EEPROM 地址 220String K3_name = "开关3"; //开关3名称 EEPROM 地址 240String K4_name = "开关4"; //开关4名称 EEPROM 地址 260const char ssid[] = "*****"; //WiFi名 EEPROM 地址 140const char pass[] = "****"; //WiFi密码 EEPROM 地址 160ADC_MODE(ADC_VCC);//设置ADC模式为读取系统电压int wifi_flg = 0;//WIFI状态标志 0 未连接 1 连接中 2 配网中 3 WIFI已连接 4 MQTT已连接int power_time = 0;//倒计时关机int K1_flg;//定义开关1状态标志位 EEPROM 地址 101int K2_flg;//定义开关1状态标志位 EEPROM 地址 102int K3_flg;//定义开关1状态标志位 EEPROM 地址 103int K4_flg;//定义开关1状态标志位 EEPROM 地址 104int O595_1_flg = 255;//定义595 1 标志位int O595_2_flg = 255;//定义595 1 标志位int K1_ACflag = 2; // EEPROM 地址 181int K2_ACflag = 2; // EEPROM 地址 182int K3_ACflag = 2; // EEPROM 地址 183int K4_ACflag = 2; // EEPROM 地址 184uint32_t t=0;//按键计时WiFiClient espClient;PubSubClient client(espClient);const char* mqtt_server = "*******.f3322.org";//mqtt服务地址const char* clientID ="8266-001"; // 设备id//WiFiUDP Udp;//实例化WiFiUDP对象//unsigned int localUdpPort = 4321; // 自定义本地监听端口//unsigned int remoteUdpPort = 8629; // 自定义远程监听端口//char incomingPacket[255]; // 保存Udp工具发过来的消息//char replyPacket[] = "Hi, this is esp8266\n"; //发送的消息,仅支持英文void callback(char *topic, byte* payload, unsigned int length); //回调函数声明,用于传入mqtt客户端构造函数作为参数//void write_String(int a,String str);//EEPROM写字符串//参数: MQTT服务器地址,端口号,回调函数名,承载的连接(WIFI)PubSubClient mqttClient(mqtt_server, 1833, callback, espClient);ESP8266WebServer server(80);ESP8266HTTPUpdateServer httpUpdater;//变量常量定义:String postForms(){String htmlCode = "\n";htmlCode += "\n";htmlCode += "GN-B3034智能插座\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "GN-B3034智能插座控制页面
\n";htmlCode += "请输入0或1控制开关
\n";htmlCode += "\n";htmlCode += " 0为关,1为开
\n";htmlCode += "开关1htmlCode += K1_flg;htmlCode += "\" size=\"5\" initial-scale = 2.0 autocomplete=\"off\">(";htmlCode += K1_name;htmlCode += ")
\n";htmlCode += "开关2htmlCode += K2_flg;htmlCode += "\" size=\"5\" initial-scale = 2.0 autocomplete=\"off\">(";htmlCode += K2_name;htmlCode += ")
\n";htmlCode += "开关3htmlCode += K3_flg;htmlCode += "\" size=\"5\" initial-scale = 2.0 autocomplete=\"off\">(";htmlCode += K3_name;htmlCode += ")
\n";htmlCode += "开关4htmlCode += K4_flg;htmlCode += "\" size=\"5\" initial-scale = 2.0 autocomplete=\"off\">(";htmlCode += K4_name;htmlCode += ")
\n";htmlCode += "
\n";htmlCode += "系统参数设
\n";htmlCode += "\n";htmlCode += "网络名称\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "网络密码\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "设备名称htmlCode +=read_String(120);htmlCode += "\" size=\"20\" initial-scale = 2.0 autocomplete=\"off\">\n";htmlCode += "(为Auto时系统自动生成)\n";htmlCode += "上电开关状态(关闭/开启/保持上次)\n";
htmlCode += "开关1 | 开关2 | 开关3 | 开关4
\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "if(K1_ACflag == 0){htmlCode += " selected=\"selected\"";}htmlCode += ">关闭\n";htmlCode += "if(K1_ACflag == 1){htmlCode += " selected=\"selected\"";}htmlCode += ">开启\n";htmlCode += "if(K1_ACflag == 2){htmlCode += " selected=\"selected\"";}htmlCode += ">不变\n";htmlCode += "\n";htmlCode += "\n";htmlCode += "if(K2_ACflag == 0){htmlCode += " selected=\"selected\"";}htmlCode += ">关闭\n";htmlCode += "if(K2_ACflag == 1){htmlCode += " selected=\"selected\"";}htmlCode += ">开启\n";
设计图
原理图
PCB
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | RPD5W05E3V3L | 3V1 | RPD5W05E3V3L | 1 |
2 | 100nF | C1,C2,C3,C4,C5,C6,C7 | 0603 | 7 |
3 | 100uF | C12 | CAP-SMD_BD6.3-L6.6-W6.6-FD | 1 |
4 | LS4148 | D1,D2,D3,D4,D5,D6,D7,D8 | LL-34_L3.5-W1.5-RD | 8 |
5 | HF3F-L/5-1HL2T | J1,J2,J3,J4 | HF3F-L/5-1HL2T V1.0 | 4 |

添加到专辑
0
0
分享
侵权投诉
评论