ESP8266-12E接入小爱同学自我心得
初次接触到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();
}
初次发帖,语言有些不完善,代码中如有错误,请大家在评论区指出。
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
在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
Small_Atom 发表于 2020-2-26 12:09
Arduino:1.8.12 (Windows 7), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return n ...
你库都没装,当然报错了 blinker-library-master.zip
就是这个库已经安装了
走了几步有提示错误
Creeper666 发表于 2020-2-26 12:12
你库都没装,当然报错了
谢谢答复 问一下,你的小爱控制8266,会不会说,“哎呀,设备没反应,先帮你操作啦“;
点灯控制没问题,但是小爱控制会这样,而且延迟要个好几秒
chuckbei 发表于 2020-2-27 21:54
问一下,你的小爱控制8266,会不会说,“哎呀,设备没反应,先帮你操作啦“;
点灯控制没问题,但是小爱控 ...
应该是你没有注册小爱同学回调函数。
在viod loop()里写BlinkerMIOT.attachPowerState(Button1_miotPowerState);试试 snjay001 发表于 2020-3-8 17:15
应该是你没有注册小爱同学回调函数。
在viod loop()里写BlinkerMIOT.attachPowerState(Button1_miotPow ...
不对,是在viod setup()里写 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);
} chuckbei 发表于 2020-3-8 20:25
已经写过的啦,我估计是不能连续操作,有个限制;偶尔操作不会这样,如果连着语音指令,就会说那段话;
...
连续操作我的也出现这个状况,我还以为是正常现象。
页:
[1]
2