单片机学习小组
直播中

王萍

7年用户 1204经验值
私信 关注

如何实现esp01s小度语音控制灯?

如何实现esp01s小度语音控制灯?

回帖(1)

徐非姗

2022-1-19 10:16:21
1、网上购买低价模块。包括(esp01s、继电器模块、AC-DC模块)全部下来在15元以下
2、arduino
下载esp8266最新库
    1)设置-附加开发板管理网址:
    2)管理库增加8266最新库
    3)开发板选择‘Generic ESP8266 Module’
3、注册点灯科技,并下载app,进行添加设备操作
4、代码

#define BLINKER_WIFI
#define BLINKER_DUEROS_OUTLET

#include

char auth[] = "**";
char ssid[] = "**";
char pswd[] = "**";

BlinkerButton Button1("btn-abc");

#define LED_BUILTIN_LIGHT 0

void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);

    if (state == BLINKER_CMD_ON) {
        Button1.print("on");
    }
    else if (state == BLINKER_CMD_OFF) {
        Button1.print("off");
    }
    digitalWrite(LED_BUILTIN_LIGHT, !digitalRead(LED_BUILTIN_LIGHT));
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

void duerPowerState(const String & state)
{

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN_LIGHT, 1);

        BlinkerDuerOS.powerState("on");
        BlinkerDuerOS.report();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN_LIGHT, 0);

        BlinkerDuerOS.powerState("off");
        BlinkerDuerOS.report();
    }
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, 0);

    pinMode(LED_BUILTIN_LIGHT, OUTPUT);
    digitalWrite(LED_BUILTIN_LIGHT, 0);

    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);

    BlinkerDuerOS.attachPowerState(duerPowerState);
}

void loop()
{
    Blinker.run();
}
代码主要为点灯科技demo稍微改动
5、遇到的问题
    1)PC调试没问题,实际运行总是断线?
         其中一个可能(我遇到的问题)为,esp01s供电电压为3.3V,超出3.3V电压会导致上边问题。
         网上买的esp01s继电器应该是转换到3.3V的,但是转出来为3.33V,后续中间加了根杜邦线使电压降到3.3V以下解决问题
6、未解决的问题
    1)小度音响控制,偶尔会出现,暂时不能控制音响的状况。(再说一次关闭/打开灯解决)   
举报

更多回帖

发帖
×
20
完善资料,
赚取积分