NodeMCU-ESP8266开发(VSCODE+PlatformIO+Arduino框架):第3篇–Blinker_MIOT_LIGHT(点灯科技APP控制+小爱同学控制)

第一步:复制一份Blinker_Hello_WiFi工程,并重命名为Blinker_MIOT_LIGHT。

第三步:复制以下代码到VSCODE中的src->main.cpp里面。

/* ***************************************************************** * 程序功能: * 1.使用开发板:nodemcu-ESP8266(模块ESP-12E) * 2.程序功能:程序功能:使用Blinker 手机APP添加设备并绑定,通过APP远程控制开发板上的灯的亮灭、还有小爱同学控制开发板上的灯的亮灭 * 3.例程文档:https://www.diandeng.tech/doc/xiaoai * 小爱支持的语音指令: 1.灯 打开/关闭{门口}的{灯} 把{卧室}的{灯}调为{红色} 颜色范围为0-16777215(0xFFFFFF) 把{卧室}的{灯}的{亮度调高一点} 亮度范围为1-100 把{门口}的{灯}的{色温}调到{1400} 色温范围为1000-10000 把{卧室}的{灯}调为{月光模式} 查询{卧室}的{灯}的状态 2.插座 打开/关闭{厨房}的{插座} {客厅}的{插座}是否打开 3.传感器 {设备名}室内{温度}/{湿度}/{PM2.5}/{空气质量}/{二氧化碳含量} * *****************************************************************/ //#define LED_BUILTIN 2 //ESP-12E模块自身的LED,对应GPIO2,低电平亮 //#define LED_BUILTIN 16 //nodemcu-esp8266开发板扩展的LED,对应GPIO16,低电平亮 #define BLINKER_WIFI #define BLINKER_MIOT_LIGHT //小爱同学支持LED灯控制 #define BLINKER_WITHOUT_SSL //blinker默认使用加密方式进行远程通信,但通信加密会消耗大量的RAM,如果您对通信安全性无要求, //可以添加宏BLINKER_WITHOUT_SSL用以获得更多可用RAM,BLINKER_WITHOUT_SSL目前仅可用于ESP8266,其他设备的RAM足以进行加密通信 #include <Blinker.h> //使用第三方库 char auth[] = "aabfdfc3b167";//Blinker APP中获取到的Secret Key(密钥),小爱同学接入,需要选择阿里云broker,点灯broker暂不支持语音控制 char ssid[] = "Xiaomi_123"; //wifi名称 char pswd[] = "felix1234"; //wifi密码 // 新建组件对象 BlinkerButton Button1("btn-abc");//组件对象,要和APP组件中的“数据键名”一致 BlinkerNumber Number1("num-abc"); int counter = 0;//计数器 uint8_t colorR, colorG, colorB, colorW; // 按下按键即会执行该函数 void button1_callback(const String & state) { BLINKER_LOG("get button state: ", state);//APP中的Monitor控件打印的信息 digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));//控制LED灯亮灭,低电平亮,高电平灭 } // 如果未绑定的组件被触发,则会执行其中内容 void dataRead(const String & data) { BLINKER_LOG("Blinker readString: ", data); counter++;//未绑定的组件被触发,就会进行计数 Number1.print(counter); } //得到当前的颜色值 uint32_t getColor() { uint32_t color = colorR << 16 | colorG << 8 | colorB; return color; } //小爱电源类回调,例如:开灯/关灯 void miotPowerState(const String & state) { BLINKER_LOG("need set power state: ", state); if (state == BLINKER_CMD_ON) { digitalWrite(LED_BUILTIN, LOW);//低电平打开LED BlinkerMIOT.powerState("on"); BlinkerMIOT.print(); } else if (state == BLINKER_CMD_OFF) { digitalWrite(LED_BUILTIN, HIGH);//高电平关闭LED BlinkerMIOT.powerState("off"); BlinkerMIOT.print(); } } //小爱设置颜色回调,例如:红色/绿色/蓝色 void miotColor(int32_t color) { BLINKER_LOG("need set color: ", color); colorR = color >> 16 & 0xFF; colorG = color >> 8 & 0xFF; colorB = color & 0xFF; BLINKER_LOG("colorR: ", colorR, ", colorG: ", colorG, ", colorB: ", colorB); BlinkerMIOT.color(color); BlinkerMIOT.print(); } //小爱调亮度回调,例如:调亮一些 void miotBright(const String & bright) { BLINKER_LOG("need set brightness: ", bright); colorW = bright.toInt(); BLINKER_LOG("now set brightness: ", colorW); BlinkerMIOT.brightness(colorW); BlinkerMIOT.print(); } //小爱调色温回调,例如:色温调到1400 void miotColoTemp(int32_t colorTemp) { BLINKER_LOG("need set colorTemperature: ", colorTemp); BlinkerMIOT.colorTemp(colorTemp); BlinkerMIOT.print(); } void setup() { // 初始化串口 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); BLINKER_DEBUG.debugAll(); // 初始化有LED的IO pinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式 digitalWrite(LED_BUILTIN, LOW);//默认打开LED // 初始化blinker Blinker.begin(auth, ssid, pswd);//连接WiFi和设备上线 Blinker.attachData(dataRead);//如果没有被绑定的组件被触发就执行这个回调 Button1.attach(button1_callback);//绑定按键 //小爱同学注册回调 BlinkerMIOT.attachPowerState(miotPowerState);//注册小爱电源回调 BlinkerMIOT.attachColor(miotColor);//注册小爱颜色回调 BlinkerMIOT.attachBrightness(miotBright);//注册小爱亮度回调 BlinkerMIOT.attachColorTemperature(miotColoTemp);//注册小爱色温回调 } void loop() { Blinker.run(); }

第四步:在app中添加设备,获取Secret Key。

1)下载APP并进行安装,打开网址https://www.diandeng.tech/doc/getting-start-8266,找到“下载并安装blinker APP“,根据不同的手机平台,下载对应的APP并进行安装。

2)进入App,点击右上角的“+”号,然后选择 添加设备。

3)点击选择Arduino(独立设备)-> WiFi接入。

4)选择要接入的服务商(阿里云、点灯科技、腾讯云、OneNet),例如选择”点灯科技“,如果要接入小爱同学,则要选择”阿里云“。

5)复制申请到的Secret Key到代码中要填写密钥的一栏中。

第五步:修改以下代码。

修改密钥、wifi名称、wifi密码为自己的。

注意:小爱同学接入,需要选择阿里云broker,点灯broker暂不支持语音控制。

char auth[] = "Your Device Secret Key";//Blinker APP中获取到的Secret Key(密钥) char ssid[] = "Your WiFi network SSID or name";//wifi名称 char pswd[] = "Your WiFi network WPA password or WEP key";//wifi密码

第六步:修改完后,进行编译、下载,编译过程中发现有“黄色警告”,不用理会,最后编译是“SUCCESS”就OK。

下载成功后,可以看到开发板上的LED亮了起来,打开VSCODE的串口监视器可以看到打印一些信息,当看到“MQTT Connected!”则证明连接wifi是成功的,当看到"state":"online"则证明设备是在线的。

VSCODE串口监视器打印的信息: ...... [32881] MQTT Connected! //连接wifi成功 [32881] Freeheap: 39456 [48020] Got: {"deviceType":"DiyArduino","data":{"get":"state"},"fromDevice":"eeb71ff85f1d11eb81be5254","toDevice":"C133A71AZPR087CQTZ5FFRXR"} [48022] data: {"get":"state"} [48024] fromDevice: eeb71ff85f1d11eb81be5254 [48028] Authority uuid [48051] available: 1 [48051] checkAvail: 1 [48051] parse data: {"get":"state"} [48051] defined BLINKER_ARDUINOJSON [48052] autoManager begin: 0 0 [48053] autoFormatData key: state, json: "state":"online" //设备在线

第七步:使用手机APP进行远程控制开发板中的LED灯。

1)打开”点灯-blinker”APP。

2)在设备列表页,点击设备图标,例如我的设备是:“房间1号”,点击后进入设备控制面板。

3)点击“点我开关灯”,则看到开发板上的LED灯会进行亮和灭的切换。

4)由于“点我计数”在代码未进行绑定,所以会触发dataRead()函数。

第八步:使用米家APP绑定blinker账号。

1)下载米家APP并打开。通过 我的>其他平台设备>点击添加>点灯科技>绑定账号 ,绑定blinker账号。

2)绑定成功后,支持小爱控制的blinker设备会出现在 我的>其他平台设备>点灯科技 设备列表中。

3)如果设备列表中没有设备,则需要点击“同步设备”。

4)返回到米家APP首页,在首页有一个“语音图标”,点击“语音图标”,说:“关闭房间一号的灯”,则会看到开发板上的LE灯关闭,接着说“打开房间一号的灯”,则会看到LED灯打开。

5)注意:米家APP新版本V6.0以上取消了首页的“语音图标”,需要下载小爱同学APP进行语音控制。

第九步:使用小爱同学APP语音控制。

1)下载“小爱同学”手机APP,并进行安装。

2)打开小爱同学手机APP,使用与米家APP同一个帐号登陆,在“智能家居”一栏中可以看到blinker绑定的设备“房间1号”。

3)点击下方中间的“语音图标”,说:“关闭房间一号的灯”,则会看到开发板上的LE灯关闭,接着说“打开房间一号的灯”,则会看到LED灯打开。

第十步:绑定小爱音箱,使用小爱音箱语音控制。

1)使用米爱APP或小爱音箱APP绑定小爱音箱,例如我的音箱是“小爱音箱pro”。

2)绑定后,打开小爱音箱APP,点击下方“智能家居”一栏,可以看到“房间1号”设备,则可以使用“小爱音箱”来语音控制。

3)对着小爱音箱说:“关闭房间一号的灯”,则会看到开发板上的LE灯关闭,接着说“打开房间一号的灯”,则会看到LED灯打开。

注意事项:

1)如果绑定blinker账号后,点灯科技列表中没有设备,可能是您设备中没有烧写小爱支持程序,或者设备没有成功上线。
2)绑定blinker账号后,通过手机上的小爱同学也可以控制设备。
3)blinker App中对设备进行修改或新增后,可在米家App中,通过 我的>其他平台设备>点灯科技>同步设备 更新设备信息。

参考文档:

点灯科技:https://www.diandeng.tech/doc/xiaoai

参考例程:

点灯科技blinker库:blinker-library-master\examples\Blinker_MIOT\MIOT_LIGHT

原文链接:https://blog.csdn.net/felix_tao/article/details/113467782?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277097916782390593239%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277097916782390593239&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-16-113467782-null-null.nonecase&utm_term=%E7%A7%91%E6%8A%80

© 版权声明
THE END
喜欢就支持一下吧
点赞0打赏 分享
评论 抢沙发
头像
文明发言,共建和谐米科社区
提交
头像

昵称

取消
昵称表情图片