esp-01s接入天猫精灵与relay继电器控制电灯

esp-01s接入天猫精灵与relay继电器控制电灯

学习arduino已经两个多月了,第一次动手做了一个天猫精灵控制的台灯,并且记录和分享一下学习的过程,做的不好,有什么不对的地方还请多多指正

这两个模块加起来才10块钱,也不是很贵

首先需要使用esp8266和blinker的库文件,然后在arduino上选择正确的开发板

Arduino库文件

ESP8266
blinker

下载解压到C:\Program Files (x86)\Arduino\libraries这个文件夹里面

库文件解压后,选择对应的开发板,像这样

在这里插入图片描述

开发板选择后就可以编译程序上传了
如果报错可能是以下原因
1,开发板选择错误;重新检查一下板子对不对
2,库文件的原因;建议重新看一下,解压到Arduino\libraries这个文件夹里面
3,库文件重复,下载多个库文件安装了;还是去Arduino\libraries这个文件夹里,把多余的对应多余的库文件删除
以上都是我曾经遇到过的问题

效果图

这是我接完线安装在台灯线上的效果,虽然不好看,但是挺好用的


## 代码如下

接线

在这里插入图片描述
这个普通的继电器模块,与relay原理一样,接线是公共端和常闭

这里有一些继电器和esp-01s的资料分享给你们

继电器https://pan.baidu.com/s/1H0HfQlp9C5gi6IOaPC4hYA
提取码:1234
esp-01s
https://pan.baidu.com/s/1_U_t_YPj0jjgfFz9vTZtCw
提取码:r0do

esp-01s接入天猫精灵有很多开源的代码可以去接入,不过需要定义继电器才可以使用
接入天猫精灵方法

代码如下

接入blinker,添加设备一定要选择阿里云.

#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_OUTLET

#include <Blinker.h>
#define relay1 0

char auth[] = "2ccc8abc0179";//钥匙
char ssid[] = "c04 111 2.4";//WiFi名称
char pswd[] = "1234567890";//WiFi密码

bool oState = false;

void aligeniePowerState(const String & state)
{
    
    
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
    
    
        digitalWrite(relay1, LOW);

        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();

        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
    
    
        digitalWrite(relay1, HIGH);

        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();

        oState = false;
    }
}

void aligenieQuery(int32_t queryCode)
{
    
    
    BLINKER_LOG("AliGenie Query codes: ", queryCode);

    switch (queryCode)
    {
    
    
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("AliGenie Query All");
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
            BLINKER_LOG("AliGenie Query Power State");
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
        default :
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
    }
}

void dataRead(const String & data)
{
    
    
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
    
    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
}

void setup()
{
    
    
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    pinMode(relay1, OUTPUT);
    digitalWrite(relay1, HIGH);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    
    BlinkerAliGenie.attachPowerState(aligeniePowerState);
    BlinkerAliGenie.attachQuery(aligenieQuery);
}

void loop()
{
    
    
    Blinker.run();
}

更多详细

链接: 点灯科技

猜你喜欢

转载自blog.csdn.net/qq_53514054/article/details/115131535