记一次esp01s小度语音控制灯实现(小白记录)

1、网上购买低价模块。包括(esp01s、继电器模块、AC-DC模块)全部下来在15元以下

2、arduino

 下载esp8266最新库

    1)设置-附加开发板管理网址:http://arduino.esp8266.com/stable/package_esp8266com_index.json

    2)管理库增加8266最新库

    3)开发板选择‘Generic ESP8266 Module’

3、注册点灯科技,并下载app,进行添加设备操作

4、代码
 

#define BLINKER_WIFI
#define BLINKER_DUEROS_OUTLET

#include <Blinker.h>

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)小度音响控制,偶尔会出现,暂时不能控制音响的状况。(再说一次关闭/打开灯解决)