精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ESP8266電路使房屋備用開關照明工作

電子設計 ? 來源:電路城 ? 作者:電路城 ? 2021-04-28 14:08 ? 次閱讀

我們可以使用ESP8266電路使房屋中的照明開關更智能,因此,如果沒有WiFi,它將繼續作為普通開關工作。

硬件組件:

NodeMCU Lolin V3模組ESP8266 ESP-12F Wifi× 1個

光耦合器的繼電器模塊× 1個

pc817光耦合器× 1個

AC-DC電源3.3V× 1個

AC-DC電源5V× 1個

電阻組× 1個

軟件應用程序和在線服務:

Arduino IDE

手動工具和制造機:

烙鐵(通用)

多功能工具,螺絲刀

我們可以使用ESP8266電路使房屋中的照明開關更智能,因此,如果出現問題(例如,沒有WiFi或服務器關閉),它將繼續作為普通開關工作。

注意!

以下電路的某些部分在電源電壓下工作。電源電壓不是玩具,需要注意規避風險。

下圖中紅色標記的區域低于電源電壓!

讓我們看一下電路:

我在市電電壓為230V的歐盟使用此電路!如果要使用它,而您所在區域的電源電壓不是230V,則可以通過更換圖中所示的電源來使用。

電路

如果主電源電壓不是230伏,則必須用正確的電壓替換圖中的2個黑色電源模塊。

除了普通的備用開關外,還必須像安裝其他備用開關一樣安裝繼電器模塊。該繼電器模塊具有一個光耦合器,因此ESP8266微控制器是完全光學隔離的。

在圖中,上方的黑色立方體是一個230 V至3.3 V的開關電源(如果電源電壓不是230伏,則必須更換!)。它的230 V輸入連接到燈泡,其輸出通過光耦合器(pc817)路由到ESP8266 D2引腳。這用于監視燈泡是否點亮。輸入D2必須通過上拉電阻切換至3.3V。

下部的黑色立方體為230 V至5 V(如果市電電壓不是230,則還必須更換?。╅_關模式電源,用于為電路的低壓部分供電。

備用開關如何工作

ESP8266微控制器必須經過編程才能使電路正常工作。打開Arduino應用并復制此原理圖。重寫WLAN連接所需的SSID和密碼對以及MQTT服務器的IP地址。完成后,將代碼上傳到ESP8266。

/**************************************/

// https://myhomethings.eu //

// Alternative switch - ESP8266 //

// Board: NodeMCU 1.0 ESP-12E //

/**************************************/

#include 《ESP8266WiFi.h》

#include 《PubSubClient.h》

const char* ssid = “SSID”;

const char* password = “Password”;

const char* mqtt_server = “192.168.x.xxx”;

WiFiClient espClient;

PubSubClient client(espClient);

int relayPin = D5;

int lightControllPin = D2;

long previousMillis = 0;

int relayState = 1;

int switchState = 0;

int switchFlag = 0;

void setup_wifi()

{

delay(100);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)

{

delay(500);

}

randomSeed(micros());

}

void reconnect()

{

while (!client.connected())

{

String clientId = “ESP8266-AlternativeSwitch”;

if (client.connect(clientId.c_str()))

{

client.subscribe(“Light_topic”);

}

else

{

delay(6000);

}

}

}

void callback(char* topic, byte* payload, unsigned int length)

{

payload[length] = ‘