0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用继电器板和ESP8266实现家居自动化

454398 来源:工程师吴畏 2019-07-31 17:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

硬件

此版本的主要组件是一个简单的继电器板,可用于切换高达250V AC的电压和10安培的最大电流:

用于高压项目的简单继电器板。

它将由基于ESP8266IoT开发板控制,该开发板与Arduino IDE完全兼容。或者,您也可以使用标准的Arduino和ESP8266(或类似的)分线板。

ESP8266。

你只有需要在这些设备之间建立两个连接。其中一个是接地,另一个是用于切换继电器的控制线,我选择连接到开发板的D2(数字引脚2)。

继电器和MCU需要连接到一个五伏电源,在我的情况下,用一个简单的直流插孔完成。

除此之外,你还需要一个标准的电源插座,一个IEC插头,最好是一个带有接地的插头。引脚和用于打开和关闭MCU的开关。此外,还需要一个外壳。我选择使用标准灰色项目框:

使用标准灰色项目框来容纳构建。

构建

构建此设备的过程非常简单。首先在机箱中制作必要的剪切:

在项目框中进行必要的剪切。

创建它们后,你可以安装组件。大多数组件都会卡入到位。我仍然决定添加热胶来密封外壳,这样灰尘就不会轻易进入:

使用胶水确保没有任何动作,并使盒子不易受灰尘影响。

完成后,是时候连接这些组件和其他电子设备了。我在三根电源线的一侧添加了电缆鞋并将它们连接到IEC连接器:

在三根电源线的一侧添加电缆鞋并连接到IEC连接器。

可以交换相位和中性线(欧洲的棕色和蓝色,美国的黑色/红色和白色)。然而,地球连接必须在中间。我将相连接到电源插座并将中性线连接到继电器的COM2端子,然后将继电器的NO2(常开)端子连接到插座:

将相位连接到电源插座并将中性线连接到COM2端子在将继电器的NO2(常开)端子连接到插座之前的继电器。

然后我将必要的电缆添加到DC插头。它们用于向微控制器和继电器提供电压。最后要做的是连接继电器和MCU,如上所述。然后我将热缩管添加到关键部分以防止短路并测试组件:

将必要的电缆添加到DC插头。

一旦一切都适合,收起电缆并关闭外壳。

软件

在MCU上运行的软件将您连接到无线网络,并像在Web服务器上一样接受端口80上的客户端请求。然后,您可以通过任何Web浏览器访问该设备:

通过任何网络浏览器访问设备。

我不会讨论详细的代码,以保持文章简短。但是,我详细记录了源代码,因此应该很容易理解。它可以在文章末尾找到。

结论

正如你所看到的,它是构建这样的设备并不是非常困难。大部分工作都是由软件完成的。虽然这是最基本的方法,但您可以添加传感器,计时器和其他设备来自动控制连接的设备。此外,如果您计划在无人看管的情况下使用此设备,我建议添加保险丝

完整的项目代码

#include

#define RELAY_PIN D2

const char* ssid = “YOUR_WIFI_NETWORK”;

const char* pass = “YOUR_NETWORKS_PASSWORD”;

WiFiServer server(80);

void setup()

{

Serial.begin(9600);

// You could add an EEPROM to store the last state if the device gets powered off.

// See: https://maker.pro/arduino/tutorial/how-to-permanently-store-data-on-your-arduino

//

// It‘s also possible to store the website and stylesheets/additional scripts on an SD

// card and display the files to a client when they connect.

// See: https://maker.pro/arduino/tutorial/how-to-use-an-sd-card-with-your-arduino

//

// However, this simple example will always start with the relay turned on and a very

// basic HTML page with two buttons.

pinMode(RELAY_PIN, OUTPUT);

digitalWrite(RELAY_PIN, HIGH);

// Connect to your local network

WiFi.begin(ssid, pass);

while (WiFi.status() != WL_CONNECTED)

delay(250);

Serial.print(“Connected to network: ”);

Serial.println(ssid);

// Start the server

// A client will connect to this server to change the state of the relay

server.begin();

Serial.print(“Server started with address: ”);

Serial.print(“http://”);

Serial.print(WiFi.localIP());

Serial.println(“/”);

}

void loop()

{

// Check for incoming connections

WiFiClient client = server.available();

if (!client)

return;

// Wait for the client to send data

while(!client.available())

delay(5);

// Read the first line of the HTTP request

// which will contain something like

// METHOD /requested_url HTTP_VERSION

// for example:

// PUT /dev2?relay=1&state=on HTTP/1.1

// However, for the sake of simplicity this device will

// respond to GET requests so that they can be sent with

// any web browser. Requests to this device will look

// similar to this:

// GET /state=on HTTP/1.1

String request = client.readStringUntil(’ ‘);

client.flush();

int state = 0, error = 0;

// Check, whether the request contains “/state=”

if (request.indexOf(“state=”) != -1)

{

// HIGH and LOW are swapped in this program because my

// relay is turned on when its input pin is pulled LOW.

if(request.indexOf(“state=on”) != -1)

{

digitalWrite(RELAY_PIN, HIGH);

state = LOW;

}

else if (request.indexOf(“state=off”) != -1)

{

digitalWrite(RELAY_PIN, LOW);

state = HIGH;

}

else

{

error = 1;

Serial.print(“Unknown request: ”);

Serial.println(request);

}

}

// Return the response

// If no error occurred, send an HTML page with two buttons

// so that the device can be managed.

// Otherwise, send an error message

if(error == 0)

{

// Return a response header

client.println(“HTTP/1.1 200 OK”);

client.println(“Content-Type: text/html”);

// The HTTP response body is separated from the header by an empty line

// (actually a line containing , but this will work)

client.println(“”);

// Return the response body (an html page)

client.println(“”);

client.println(“”);

client.println(“”);

client.println(“”);

client.println(“”);

client.print(“The relay is turned ”);

client.print(state==HIGH?“on”:“off”);

client.println(“

”);

client.println(“Change state:”);

client.println(“Device on”);

client.println(“Device off”);

client.println(“”);

client.println(“”);

}

else

{

// Return a response header

client.println(“HTTP/1.1 400 Bad Request”);

client.println(“Content-Type: text/html”);

client.println(“”);

client.println(“”);

client.println(“Unknown request parameter supplied!

”);

client.println(“Back to main page”);

client.println(“”);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 继电器
    +关注

    关注

    133

    文章

    5586

    浏览量

    155298
  • ESP8266
    +关注

    关注

    51

    文章

    972

    浏览量

    49810
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32/ESP8266开发单向多对一ESP-NOW无线通信

    本实验通过ESP-NOW无线通信协议实现多个ESP32/ESP 8266开发
    的头像 发表于 03-30 10:14 187次阅读
    <b class='flag-5'>ESP</b>32/<b class='flag-5'>ESP8266</b>开发<b class='flag-5'>板</b>单向多对一<b class='flag-5'>ESP</b>-NOW无线通信

    ESP32/ESP8266开发单向一对多ESP-NOW无线通信

    通过ESP-NOW无线通信协议实现ESP32开发向多个ESP32/ESP
    的头像 发表于 03-13 09:23 287次阅读
    <b class='flag-5'>ESP</b>32/<b class='flag-5'>ESP8266</b>开发<b class='flag-5'>板</b>单向一对多<b class='flag-5'>ESP</b>-NOW无线通信

    ESP8266系列】WT8266-S3模组规格书

    概述ESP-07S(WT8266-S3)Wi-Fi模块是由启明云端科技开发的、低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的
    的头像 发表于 02-05 18:04 239次阅读
    【<b class='flag-5'>ESP8266</b>系列】WT<b class='flag-5'>8266</b>-S3模组规格书

    ESP8266系列】WT8266-S5模组规格书

    概述ESP-12F(WT8266-S5)WiFi模块是由启明云端科技开发的、低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的需
    的头像 发表于 02-05 18:03 360次阅读
    【<b class='flag-5'>ESP8266</b>系列】WT<b class='flag-5'>8266</b>-S5模组规格书

    ESP8266系列】WT8266-S6模组规格书

    ESP-12S(WT8266-S6)Wi-Fi模块是由启明云端科技开发的、低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的需求
    的头像 发表于 02-05 18:03 379次阅读
    【<b class='flag-5'>ESP8266</b>系列】WT<b class='flag-5'>8266</b>-S6模组规格书

    ESP8266系列】WT8266-S1模组产品介绍

    WT8266-S1WiFi模块是由启明云端科技开发的、低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的需求。该模块核心处理器ESP82
    的头像 发表于 01-29 18:22 682次阅读
    【<b class='flag-5'>ESP8266</b>系列】WT<b class='flag-5'>8266</b>-S1模组产品介绍

    ESP8266系列】WT8266-S6模组产品介绍

    ESP-12S(WT8266-S6)Wi-Fi模块是由启明云端科技开发的、低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的需求
    的头像 发表于 01-29 18:22 455次阅读
    【<b class='flag-5'>ESP8266</b>系列】WT<b class='flag-5'>8266</b>-S6模组产品介绍

    【瑞萨RA6E2地奇星开发试用】基于RA6E2+ESP8266在STA模式下数据透传到Python服务器整体系统演示总结

    自动重连。 7. 整体总结: 本文介绍了【瑞萨 RA6E2 地奇星开发】驱动 esp8266 WiFi模块实现:基于RA6E2+ESP8266
    发表于 12-28 20:16

    【瑞萨RA6E2地奇星开发试用】使用`RA6E2`驱动 `ESP8266 WiFi模块`,调试AT指令。

    ) 5. 工程运行效果 6. 总结 本文介绍了【瑞萨 RA6E2 地奇星开发】驱动 esp8266 WiFi模块实现串口打印调用AT指令响应的项目设计, 包括串口调试和配置、esp8
    发表于 12-25 10:08

    【瑞萨RA6E2地奇星开发试用】使用RA6E2驱动 esp8266 WiFi模块进行串口通信【已修复】

    1. 需求描述 使用RA6E2驱动 esp8266 WiFi模块,串口调试助手显示 esp8266WiFi模块响应数据。 具体来说: 串口调试助手发送 AT 指令到 瑞萨RA6E2 开发
    发表于 12-17 10:13

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)ESP8285/ESP8266芯片匹配测试OKESP8285其实是ESP8266的升级版
    的头像 发表于 11-21 15:37 4969次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发常见的2种下载方式

    ESP32和ESP8266是性价比很高而且使用较为广泛的的Wi-Fi模块,在物联网(IoT)领域的DIY项目中可以首先考虑这2款产品。 两款芯片都属于32位处理器。ESP32是低功耗双核80MHz
    的头像 发表于 11-10 20:30 1393次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32开发<b class='flag-5'>板</b>常见的2种下载方式

    ESP8266ESP32开发常见的2种下载方式

    ESP8266全IO口引出,直接下载无需复位! ESP32功能框图 基于arduino的ESP32/ESP8266开发环境搭建 1.在arduino ide文件里选择首选项,然后选
    发表于 10-24 18:04

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智云平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智云平台,烧录ESP8266
    的头像 发表于 07-15 18:54 1441次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并控制<b class='flag-5'>继电器</b>开关(平台配置、代码生成、代码移植)

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机
    的头像 发表于 05-24 11:04 2408次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云一键配网教程