ESP8266-12E接入小爱同学自我心得-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9977|回复: 11

[分享] ESP8266-12E接入小爱同学自我心得

[复制链接]
发表于 2020-2-26 10:30 | 显示全部楼层 |阅读模式
初次接触到ESP8266的设备是esp8266-01,但是因为种种原因从而放弃了这一模块,在某一次的某宝购物中无意间看到了NodeMcu ESP8266-12E开发板。这个虽然有点小贵,但是它烧录很方便,适合新手操作,在这里说明一下,blinker,点灯这个软件适合新手0基础操作,配合arduino IDE,可以轻松编辑ESP8266-12E模块,
blinker 点灯可以接入小爱同学,接下来我把代码打到下方,希望能帮助各位初学者。

/*Flash Size至少1M起
2020年2月26日
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//支持小爱同学
#include <Blinker.h>

char auth[] = "5*********a";//app中获取到的Secret Key(密钥)
char ssid[] = "TP-LINK-7d";
char pswd[] = "123456789";

int GPIO = 0; //定义继电器输入引脚为GPIO/0

// 新建组件对象
BlinkerButton Button1("btn-abc");//注意:要和APP组件’数据键名’一致

// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
digitalWrite(GPIO, !digitalRead(GPIO));
Blinker.vibrate();
}

//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
(state == BLINKER_CMD_OFF) {
digitalWrite(GPIO, LOW);
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_ON) {
digitalWrite(GPIO, HIGH);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}
}

void setup() {
// 初始化串口,并开启调试信息,调试用可以删除
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化IO
pinMode(GPIO, OUTPUT);
digitalWrite(GPIO, HIGH);

// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);

//小爱同学务必在回调函数中反馈该控制状态
BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
}
void loop() {
Blinker.run();
}

初次发帖,语言有些不完善,代码中如有错误,请大家在评论区指出。

IBZ%P9@JC~$F058L{XB]ID6.png
发表于 2020-2-26 12:09 | 显示全部楼层
Arduino:1.8.12 (Windows 7), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, UPDATER, Only Sketch, 115200"

sketch_feb26d:3:21: fatal error: Blinker.h: No such file or directory

#include <Blinker.h>

                     ^

compilation terminated.

exit status 1
Blinker.h: No such file or directory

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
发表于 2020-2-26 12:12 | 显示全部楼层
Small_Atom 发表于 2020-2-26 12:09
Arduino:1.8.12 (Windows 7), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return n ...

你库都没装,当然报错了
发表于 2020-2-26 12:25 | 显示全部楼层
blinker-library-master.zip
就是这个库已经安装了


走了几步有提示错误

QQ截图20200226122435.jpg
发表于 2020-2-26 12:26 | 显示全部楼层
Creeper666 发表于 2020-2-26 12:12
你库都没装,当然报错了

谢谢答复
发表于 2020-2-27 21:54 | 显示全部楼层
问一下,你的小爱控制8266,会不会说,“哎呀,设备没反应,先帮你操作啦“;

点灯控制没问题,但是小爱控制会这样,而且延迟要个好几秒
发表于 2020-3-8 17:15 | 显示全部楼层
chuckbei 发表于 2020-2-27 21:54
问一下,你的小爱控制8266,会不会说,“哎呀,设备没反应,先帮你操作啦“;

点灯控制没问题,但是小爱控 ...

应该是你没有注册小爱同学回调函数。
在viod loop()里写BlinkerMIOT.attachPowerState(Button1_miotPowerState);试试
发表于 2020-3-8 17:16 | 显示全部楼层
snjay001 发表于 2020-3-8 17:15
应该是你没有注册小爱同学回调函数。
在viod loop()里写BlinkerMIOT.attachPowerState(Button1_miotPow ...

不对,是在viod setup()里写
发表于 2020-3-8 20:25 | 显示全部楼层
snjay001 发表于 2020-3-8 17:16
不对,是在viod setup()里写

已经写过的啦,我估计是不能连续操作,有个限制;偶尔操作不会这样,如果连着语音指令,就会说那段话;
而且我看串口里好像是提示超时

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

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

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
   
    BlinkerMIOT.attachPowerState(miotPowerState);
    BlinkerMIOT.attachQuery(miotQuery);

    Button1.attach(button1_callback);
}
发表于 2020-3-11 16:53 | 显示全部楼层
chuckbei 发表于 2020-3-8 20:25
已经写过的啦,我估计是不能连续操作,有个限制;偶尔操作不会这样,如果连着语音指令,就会说那段话;
...

连续操作我的也出现这个状况,我还以为是正常现象。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:25 , Processed in 0.265283 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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