天天看点

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)

写在前面

前段时间在某音看见一位技术博主用esp8266加继电器模块实现了小爱同学开关灯,刚好我的手边也有一块esp8266的nodemcu模块,所以就打算自己也动手试试。(天猫精灵自备哦。)

制作期间我参考了论坛很多朋友的博客,每一篇讲的都很详细,适合小白上手,但在硬件连接方面讲的并不是很多,所以我们会着重讲一下硬件的连接。

提示:我这里改的是我的小台灯,不是宿舍的灯哦,大家DIY要注意安全哦!!

准备材料

esp8266nodemcu模块

高电平触发继电器

5V-3V3电平转换模块

小开关

台灯

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)

制作过程

1.arduino开发环境准备

详细的环境搭建步骤就不再赘述了,论坛上教程非常多。

此步骤主要完成:

  • arduino 软件安装
  • esp8266 库安装
  • blinker 库安装
2.blinker环境配置

手机下载blinker软件,应用图标是一个蓝色的LED哦。

设备添加步骤:

右上角“+”号——>独立设备——>网络接入——>阿里云——>注意复制一下key——>打开设备——>右上角添加一个按键和一个数据

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)
3.烧录程序

nodemcu连接电脑串口下载下面的程序

#define BLINKER_WIFI
 #define BLINKER_ALIGENIE_LIGHT //天猫精灵
#include <Blinker.h>
 
char auth[] = "57c********1";   //换成APP获取到的密匙
char ssid[] = "128";          //WiFi账号               
char pswd[] = "xkcz128128";   //WIFI密码
int pinRelay =1; 
 
// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc"); 
// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    if (state=="on") {
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(pinRelay,HIGH);
        // 反馈开关状态
        Button1.print("on");
    } else if(state=="off"){
        digitalWrite(LED_BUILTIN, LOW);
        // 反馈开关状态
        digitalWrite(pinRelay, LOW);
        Button1.print("off");
    }
}
 void heartbeat()  //心跳包
{
      Button1.icon("fas fa-lightbulb");
    Button1.color("#fddb00");
    Button1.text("关灯","打开啦");
  Number1.print(WiFi.RSSI());  //信号强度

}

//天猫精灵
void aligeniePowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);
        digitalWrite(pinRelay, HIGH);
        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, LOW);
        digitalWrite(pinRelay,LOW);
        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();
    }
}

void setup() {
    // 初始化串口
    Serial.begin(115200);
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    pinMode(1, OUTPUT);
    digitalWrite(LED_BUILTIN,LOW);
     digitalWrite(pinRelay, LOW);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    BlinkerAliGenie.attachPowerState(aligeniePowerState);
    Blinker.attachHeartbeat(heartbeat);
}
 
void loop() {
    Blinker.run();
}
           
4.天猫精灵添加设备

程序烧录完成后我们可以在blinkerAPP看见我们添加的设备已经在线了,这时打开天猫精灵APP。

操作步骤如下:

右上角加号——>添加设备——>搜索blinker——>绑定blinker账号——>查看已连接设备

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)
5.硬件连接

这里我以我的接线为准画一个简单的示意图:(水平有限,见谅)

我们可以在继电器的公共端和常开端接一个开关,这样我们就可以通过这个开关手动开灯了。

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)

制作花絮

出于强迫症的我最终把它焊在了一块板子上,动手能力较差的还是推荐面包板和杜邦线连接哦。

下面是制作的一些效果图和最终的成品。

硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)
硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)
硬件篇:智能家居DIY(esp8266+继电器+blinker+天猫精灵实现开关灯)

效果演示

由于视频上传原因,演示视频观看请移步【演示视频】。

本文章仅仅是一个分享,感兴趣的可以看看,大佬勿喷。。

继续阅读