问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用NodeMCU-ESP8266开发板和继电器制作WiFi智能开关

创作时间:
作者:
@小白创作中心

使用NodeMCU-ESP8266开发板和继电器制作WiFi智能开关

引用
CSDN
1.
https://blog.csdn.net/2301_80771046/article/details/136637347

本文将介绍如何使用NodeMCU-ESP8266开发板和继电器制作一个WiFi智能开关。通过手机APP“点灯•Blinker”,你可以远程控制家中的电器设备,实现智能化管理。

概述

本文主要讲述利用NodeMCU-ESP8266开发板和继电器通过手机APP“点灯•Blinker”制作一款能够由手机控制的WiFi智能开关,从而实现智能物联。NodeMCU是基于Lua的开源固件,ESP8266-NodeMCU是一个开源硬件开发板,支持WiFi功能,所以在物联网(IOT)领域具有很广泛的用途。

硬件准备

1. NodeMCU-ESP8266开发板

2. 继电器


手机软件准备

1. 软件名:点灯•Blinker

2. 软件官网链接

硬件引脚及电路图解

1. NodeMCU开发板

(1). 引脚图

2. ESP8266-12模块

(1). 引脚图

(2). 原理图

(3). 引脚说明

(4). 主要参数

(5). 参考资料文档

3. EXP8266EX芯片

(1). 管脚图

(2). 管脚说明

(3). 电路原理图

(4). 功能原理图

(5). 主要参数

4. 继电器

(1). 引脚图

(2). 引脚说明

引脚
说明
DC+ (输入端)
接直流(DC)电源正极
DC- (输入端)
接直流(DC)电源负极
IN (输入端)
通过高低电平控制继电器的吸合
NO (输出端)
继电器常开端口(吸合后短接)
COM (输出端)
继电器公共端口
NC (输出端)
继电器常闭端口(吸合后悬空)

硬件组装

硬件连接

NodeMCU开发板
继电器
说明
D1
NO
通过开发板D1引脚产生高电平,使常开端口为高电平,从而吸合短接
VCC、GND
开发板和继电器分别接入各自电源(继电器可引用开发板5V、GND作为电源)

手机软件配置

1. 打开手机端APP:点灯·blinker

2. 点击“添加设备”

3. 点击“点灯”中的“独立设备”

4. 点击“网络接入”

5. 完成设备添加

6. 打开设备并点击右上角进行配置

7. 添加按键并点击按钮进行配置

8. 按照如下图所示进行按键配置

9. 配置完成如下所示

10. 我们通过软件可以对设备进行如下图修改配置

(如不了解相关项请勿修改)

电脑代码编辑器软件配置

1. 代码编辑器软件:Arduino IDE

2. 软件下载安装与使用的相关参考资料

3. Arduino IDE的配置

(1). 点击“文件”中的“首选项”,“在其他开发板管理器地址”栏中输入“http://arduino.esp8266.com/stable/package_esp8266com_index.json”,点击“确定”

(2). 在“工具”中点击“开发板”,然后点击“开发板管理器”

(3). 在“开发板管理器”中输入“esp8266”并搜索,在搜索结果中找到“esp8266 by ESP8266 Community”点击安装

(4). 等待开发板资源安装完成,安装完成如下图所示

4. 添加开发板(NodeMCU 0.9/1.0)

5. 添加Blinker库

(1). 点击“工具”中的“管理库”

(2). 输入Blinker安装库

测试硬件代码程序

把以下代码输入到Arduino IDE中

/*
   该代码由孟俊宇工作室根据Arduino IDE中blinker示例修改制作
*/
#define BLINKER_WIFI
#define relay1 D1                //定义引脚
#include <Blinker.h>             //引用Blinker库
char auth[] = "在此处输入Blinker密钥";             //Blinker密钥(Secret Key)
char ssid[] = "在此处输入WiFi名称";                //WiFi名称
char pswd[] = "在此处输入WiFi密码";                //WiFi密码
// 新建组件对象
BlinkerButton Button1("relay1");
BlinkerNumber Number1("num-abc");
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(relay1, !digitalRead(relay1));
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}
void setup()
{
    // 初始化串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    
    // 初始化IO
    pinMode(relay1, OUTPUT);
    digitalWrite(relay1, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
}
void loop() {
    Blinker.run();
}

测试

将代码上传至硬件,并将各硬件接通电源进行测试。确保桥接WiFi正常,打开手机APP进行调试即可。

总结

参考相关资料:

1. 硬件参考

2. 规格书

3. 原理图

4. 出厂默认固件

5. Lua源码

6. NodeMCU文档

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号