esp8266接入Blinker-小爱同学控制灯的亮度

参考代码

#define BLINKER_PRINT Serial       //用于打开串口
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT

#include <Blinker.h>

char auth[] = "秘钥";
char ssid[] = "TP-LINK";
char pswd[] = "密码";

int colorW; 
unsigned char led_power;

//用户自定义电源类操作的回调函数: 小米小爱
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);
        led_power = 1;
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);
        led_power = 0;
        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
    }
}

//用户自定义亮度控制的回调函数:小爱同学 灯的亮度控制函数 亮度范围为1-100
void miotBright(const String & bright)
{
    BLINKER_LOG("need set brightness: ", bright);

    colorW = bright.toInt();
    analogWrite(LED_BUILTIN,100 - colorW);
    BLINKER_LOG("now set brightness: ", colorW);

    BlinkerMIOT.brightness(colorW);
    BlinkerMIOT.print();
}

//用户自定义设备查询的回调函数:
void miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)
    {   
        case 0:                                             //查询所有设备的情况
            BLINKER_LOG("MIOT Query brightness: ", colorW);
            BlinkerMIOT.brightness(colorW);                 //反馈灯的亮度
            BlinkerMIOT.powerState(led_power ?"on":"off");  //反馈灯的亮灭
            BlinkerMIOT.print();                            //反馈至小爱
            break;
        case BLINKER_CMD_QUERY_PM25_NUMBER :                /* 下面的这些用不到,供参考*/
            BLINKER_LOG("MIOT Query PM25");
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.print();
            break;
        case BLINKER_CMD_QUERY_HUMI_NUMBER :
            BLINKER_LOG("MIOT Query HUMI");
            BlinkerMIOT.humi(20);
            BlinkerMIOT.print();
            break;
        case BLINKER_CMD_QUERY_TEMP_NUMBER :
            BLINKER_LOG("MIOT Query TEMP");
            BlinkerMIOT.temp(20);
            BlinkerMIOT.print();
            break;
        case BLINKER_CMD_QUERY_TIME_NUMBER :
            BLINKER_LOG("MIOT Query Time");
            //BlinkerMIOT.time(millis());
            BlinkerMIOT.print();
            break;
        default :
            BlinkerMIOT.temp(20);
            BlinkerMIOT.humi(20);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
    }
}

void setup()
{
    //开启串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial); //串口打印调试信息

    Blinker.begin(auth, ssid, pswd);

    //初始化LED引脚 LED_BUILTIN是开发版上的引脚
    pinMode(LED_BUILTIN,OUTPUT);
    digitalWrite(LED_BUILTIN,HIGH);

    //注册回调函数 电源类回调函数
    BlinkerMIOT.attachPowerState(miotPowerState);

    //设置灯的亮度调节范围
    analogWriteRange(100); 

    //注册回调函数: 用户自定义设备查询
    BlinkerMIOT.attachQuery(miotQuery);

     //注册回调函数 亮度回调函数
    BlinkerMIOT.attachBrightness(miotBright);

}
void loop()
{
    Blinker.run();  /*每次运行都会将设备收到的数据进行一次解析。
                    //在使用WiFi接入时,该语句也负责保持网络连接*/
}

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值