+
27
-

回答

以下是详细方案:

一、硬件准备

核心组件

ESP模块:推荐ESP8266(如NodeMCU开发板)或ESP32,支持Wi-Fi连接和GPIO控制。

继电器模块:选择5V单路光耦隔离继电器(如HHC68B-4Z型号,触点负载10A/250V AC,适合家庭插座)。确保模块带有光耦隔离和续流二极管,避免电磁干扰。

电源模块

ESP供电:5V/2A USB电源或降压模块(如AMS1117-3.3V)。

继电器供电:独立5V电源(旧手机充电器或降压模块),确保与ESP共地。

其他材料

杜邦线、面包板(调试用)、螺丝刀、电工胶带。

电流传感器(可选,用于过载保护,如ACS712模块)。

二、电路连接

继电器模块与ESP连接

ESP GPIO → 继电器模块 IN 引脚(如GPIO12,根据代码配置调整)。

ESP GND → 继电器模块 GND

继电器VCC → 独立5V电源。

插座强电连接

火线(L):从插座进线端断开,连接到继电器 COM 端;继电器 NO 端连接到插座出线端。

零线(N):直接连接插座进线和出线端,无需经过继电器。

地线(PE):保持原连接不变。

注意:操作强电前务必断开总电源,建议由专业电工协助完成。

可选电流传感器连接

将电流传感器串联在火线上,输出引脚连接ESP ADC口(如A0),用于实时监测电流。

三、软件配置(以Arduino IDE为例)

环境搭建

安装Arduino IDE,添加ESP8266开发板支持:

进入 文件 > 首选项,在“附加开发板管理器网址”输入 http://arduino.esp8266.com/stable/package_esp8266com_index.json。

进入 工具 > 开发板 > 开发板管理器,搜索并安装“esp8266 by ESP8266 Community”。

代码编写使用第三方平台(如点灯科技Blinker)简化开发:

#include <ESP8266WiFi.h>
#include <Blinker.h>

char auth[] = "YourDeviceAuthKey";  // 点灯科技设备密钥
char ssid[] = "YourWiFiSSID";       // Wi-Fi名称
char pswd[] = "YourWiFiPassword";   // Wi-Fi密码

BlinkerButton Button1("btn-power");  // 定义按钮组件
int relayPin = D6;                   // 继电器控制引脚(GPIO12)
bool relayState = LOW;               // 继电器初始状态(低电平触发)

void button1_callback(const String &state) {
  if (state == "on") {
    digitalWrite(relayPin, HIGH);   // 打开继电器
    Button1.color("#00FF00");       // APP按钮显示绿色
    Button1.text("已开启");
  } else {
    digitalWrite(relayPin, LOW);    // 关闭继电器
    Button1.color("#FF0000");       // APP按钮显示红色
    Button1.text("已关闭");
  }
  relayState = !relayState;
  Blinker.vibrate();                // APP震动反馈
  Blinker.print("\"power\":\"" + String(relayState) + "\"");  // 同步状态到APP
}

void setup() {
  Serial.begin(115200);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);

  Blinker.begin(auth, ssid, pswd);  // 初始化Blinker
  Button1.attach(button1_callback); // 绑定按钮回调函数
}

void loop() {
  Blinker.run();
  // 可选:过载保护逻辑
  /*
  float current = analogRead(A0) * 0.185;  // 假设使用ACS712-5A传感器
  if (current > 10.0) {  // 超过10A阈值
    digitalWrite(relayPin, LOW);
    Blinker.notify("过载保护触发!");
  }
  */
}

OTA升级(可选)配置HTTP服务器存储固件,修改代码实现远程升级:

#include <ESP8266HTTPClient.h>
#include <Update.h>

void otaUpdate() {
  HTTPClient http;
  http.begin("http://your-server/ota.bin");  // 固件下载地址
  int httpCode = http.GET();
  if (httpCode == 200) {
    Update.begin(UPDATE_SIZE_UNKNOWN);
    http.writeToStream(&Update);
    if (Update.end()) {
      Serial.println("OTA成功,重启中...");
      ESP.restart();
    } else {
      Update.abort();
    }
  }
  http.end();
}

四、手机APP配置

点灯科技Blinker

下载APP,注册账号后添加设备,选择“Wi-Fi设备”,输入Wi-Fi密码和设备密钥(Auth Key)。

在APP中添加按钮组件,设置键名为 btn-power,关联继电器控制逻辑。

其他平台(如MQTT)

自建MQTT服务器(如Mosquitto),使用PubSubClient库实现通信。

手机端安装MQTT客户端(如MQTT Dash),订阅控制主题(如/socket/control),发送on或off指令。

五、安全与优化

电气隔离

使用光耦隔离继电器模块,确保ESP弱电与插座强电物理隔离。

继电器线圈并联续流二极管(如1N4001),抑制反向电动势。

过载保护

串联电流传感器(如ACS712),实时监测电流,超过阈值自动断开继电器。

安装保险丝(如10A),防止短路损坏设备。

固件维护

通过OTA升级功能远程更新固件,避免重复烧录。

定期检查继电器触点,防止氧化导致接触不良。

六、调试与测试

功能验证

通电后,观察ESP指示灯是否正常闪烁,手机APP能否连接设备。

发送指令测试继电器吸合/释放动作,检查插座是否正常通断电。

异常处理

继电器不动作:检查GPIO引脚定义、继电器触发逻辑(高/低电平)及电源是否正常。

APP连接失败:确认Wi-Fi信号强度、设备密钥是否正确,尝试重新配网。

通过以上步骤,即可将普通插座改造成手机远程控制插座。若对电路不熟悉,建议先在面包板上完成原型测试,再接入实际插座。操作强电时务必谨慎,确保安全。

网友回复

我知道答案,我要回答