Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: caiyq52

[分享] 点灯·blinker-3 天猫精灵接入8266+继电器控制灯

[复制链接]
 楼主| 发表于 2020-3-4 23:07 | 显示全部楼层

都可以,可以用手机充电器插电后插上USB线把USB线拆开接红+ 黑-,5V
也可以接充电宝5V。都不影响。
发表于 2020-3-5 14:43 | 显示全部楼层
大神我想问下。我也按照你说的接了天猫精灵和8266开发板通讯正常,但是就是连接继电器后,始终控制不了灯的开关。继电器那个LED的红灯,是很微弱的狂闪。工作不正常是个怎么回事。麻烦回复一下,谢谢~我的代码附下


#define BLINKER_WIFI
#define BLINKER_ALIGENIE_OUTLET   //caiyq52-天猫精灵

#include <Blinker.h>


char auth[] = "052989865ef5"; //caiyq52-改成自己在点灯app中生成的key码
char ssid[] = "TP-M4_C73F_vip"; //caiyq52-改成自己的WIFI名称
char pswd[] = "yanglei19871006";  //caiyq52-改成自己的WIFI密码



BlinkerButton Button1("btn-abc");     //caiyq52-此组件未点灯app中自己设置的按键,改名"btn-abc"必须与自己APP中设定的名称一致
bool oState = false;
int Pin = 0;    //caiyq52-定义控制引脚
void AliGeniePowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {     //caiyq52-天猫精灵控制开命令
        digitalWrite(0, LOW);
        delay(200);
        digitalWrite(0, HIGH);
        BlinkerAliGenie.powerState("on");

        BlinkerAliGenie.print();

        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {   //caiyq52-天猫精灵控制关命令
        digitalWrite(0, LOW);
        delay(200);
        digitalWrite(0, HIGH);
        BlinkerAliGenie.powerState("off");

        BlinkerAliGenie.print();

        oState = false;
    }
}

void AliGenieQuery(int32_t queryCode)      //caiyq52-天猫精灵控制
{
    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 button1_callback(const String & state)     //点灯app内控制按键触发
{
     BLINKER_LOG("get button state: ", state);
    digitalWrite(0,LOW);
    delay(200);
    digitalWrite(0, HIGH);
}

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

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

    pinMode(LED_BUILTIN, OUTPUT);              //定义io口为输出
    digitalWrite(LED_BUILTIN, LOW);           //定义io默认电平

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
   
    BlinkerAliGenie.attachPowerState(AliGeniePowerState);
    BlinkerAliGenie.attachQuery(AliGenieQuery);
    Button1.attach(button1_callback);      
}

void loop()
{
    Blinker.run();
}
微信图片_20200305143942.jpg
微信图片_20200305143948.jpg
发表于 2020-3-5 16:39 | 显示全部楼层
怎么吧天猫精灵换成小爱同学啊?
 楼主| 发表于 2020-3-5 21:55 | 显示全部楼层
yl279005469 发表于 2020-3-5 14:43
大神我想问下。我也按照你说的接了天猫精灵和8266开发板通讯正常,但是就是连接继电器后,始终控制不了灯的 ...

参考https://www.arduino.cn/thread-94382-1-2.html
发表于 2020-3-6 08:04 | 显示全部楼层

大神我想问下。我也按照你说的接了天猫精灵和8266开发板通讯都正常,我想要点动模式,代码要怎样改啊,
 楼主| 发表于 2020-3-6 08:46 | 显示全部楼层
本帖最后由 caiyq52 于 2020-3-6 08:49 编辑
lslqjh 发表于 2020-3-6 08:04
大神我想问下。我也按照你说的接了天猫精灵和8266开发板通讯都正常,我想要点动模式,代码要怎样改啊, ...

把控制打开的程序改成这样
[mw_shl_code=arduino,true] if (state == BLINKER_CMD_ON) {     //caiyq52-天猫精灵控制开命令
        digitalWrite(Pin, LOW);
        delay(200); //定义点动开的时间,单位毫秒
        digitalWrite(Pin, HIGH);
        BlinkerAliGenie.powerState("on");        
       BlinkerAliGenie.print();

        oState = true;
    }[/mw_shl_code]

发表于 2020-3-6 13:11 | 显示全部楼层
623277327 发表于 2020-2-22 22:20
我的什么操作都一样,唯独就是继电器没反应,不工作,点下开关开发板蓝色的灯也会闪一下 ...

我的是插在继电器上然后通电的时候亮一下蓝灯,然后就没有反应了,你的问题解决了吗?
 楼主| 发表于 2020-3-6 23:35 | 显示全部楼层
ksbb4920355 发表于 2020-2-25 16:56
问题 找到了 天猫精灵 无法使用之定义设备名称控制!!!!太可恶了, 呼叫天猫精灵 只能说 “打开插 ...

最近发现天猫精灵对这类外联设备是支持自定义名称的。也就是说你可以通过自定义设备的名称,来实现自定义语音控制。比较“打开鱼缸灯”、“打开电脑电源”。
我试过定义为“电脑”显示冲突,我定义成“电脑电源”就可以了。你也试试吧!
0c5119d75c78bf14b24d046e1697f49.jpg
发表于 2020-3-7 14:01 | 显示全部楼层
本帖最后由 admin1314 于 2020-3-7 14:33 编辑

还是连不上WIFI,之前写过其他固件,没问题。有没有什么可以测试的东西可以查看一下?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-3 03:50 , Processed in 0.078853 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表