首先完成开发环境搭建:https://blog.csdn.net/felix_tao/article/details/113092886

其次完成Blinker_Hello_WiFi(点灯科技-手机APP控制例程):https://blog.csdn.net/felix_tao/article/details/113359707

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

第二步:打开VSCODE->文件->将文件夹添加到工作区->选择工程文件夹Blinker_MIOT_LIGHT->添加到VSCODE中。

第三步:复制以下代码到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);//低电平打开LEDBlinkerMIOT.powerState("on");BlinkerMIOT.print();}else if (state == BLINKER_CMD_OFF) {digitalWrite(LED_BUILTIN, HIGH);//高电平关闭LEDBlinkerMIOT.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的IOpinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式digitalWrite(LED_BUILTIN, LOW);//默认打开LED// 初始化blinkerBlinker.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://download.csdn.net/download/felix_tao/14975837

参考文档:

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

参考例程:

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

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

  1. ESP8266开发之旅 阿里云生活物联网平台篇② 使用云智能App,配置自己的App,无需开发

    文章目录 1.前言 2.云智能App -- 免开发公版App 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥 ...

  2. 利用Nodemcu+Arduino nano+TB6612+点灯科技APP制作简易麦克纳姆轮Wi-Fi遥控小车

    摘要 麦克纳姆轮小车由于车轮本身的特殊结构,可以实现全向行驶,可玩性非常强.麦克纳姆轮原理在这里不做展开,麦克纳姆小车主要是通过控制四个轮胎的转与不转以及转动的方向来实现多方向的运动,其中一种X型车轮 ...

  3. 基于ESP8266+点灯科技+小爱同学控制开门解决方案!

    前言 每次下班回到家就已经很累了,到门口还要到处翻找钥匙,然后开门,是不是觉得很烦,那我们有没有不用通过钥匙开门且成本低的方案了?下面我会教大家基于ESP8266+点灯科技+小爱同学来控制开门的方法 ...

  4. esp8266接入Blinker小爱同学控制WS2812的RGB以及亮度调节

    esp8266接入Blinker小爱同学控制WS2812的RGB以及亮度调节 所需准备的库: Adafruit_NeoPixel Blinker 开发板选择 1.源代码部分: 源代码: //WS281 ...

  5. 月球计划—ESP8266接入小爱同学控制彩灯

    之前的文章「小爱同学控制EP8266点灯」介绍了如何借助Blinker平台接入小爱同学,通过ESP8266控制点灯.Blinker官方例程中使用的是RGB灯,可以调节颜色的,手头刚好找到块RGB彩灯板 ...

  6. 使用siri和小爱同学控制ESP8266引脚电平--资料已配齐,简单操作即可----4.Siri控制一个灯

    新教程已出:https://blog.csdn.net/qishi3250/article/details/119945762 新教程不需要电脑运行服务器脚本,ESP8266内置了HTTP服务器,配网 ...

  7. NRF24L01 + ESP32 通信测试,基于PlatformIO+Arduino框架

    1. 说明 最近做四轴的时候使用到了NRF24L01,但是并没有合适的设备来进行测试.所以为了快速测试通信协议,这里使用了基于Arduino框架的ESP32来进行测试.测试的目标是实现两个ESP之间基 ...

  8. ESP32/ESP8266安装arduino开发板失败的方法(附合宙esp32用blinker固件连接小爱同学提示“要操作的设备好像出问题了等一会再试吧”的解决方法

    如果要挂梯子连GitHub的链接下就太麻烦了 我们直接用中文论坛老哥传好的包 esp32 https://www.arduino.cn/thread-81194-1-1.html esp8266 如果 ...

  9. ESP8266用点灯app接入小爱同学

    ESP8266接入小爱同学-智能LED台灯或风扇 首先用的是arduino IDE对esp8266进行的编译,arduino对8266编译环境的具体配置可参考 1.利用WiFiManager库实现自动 ...

  10. ESP8266 12F 点灯科技APP 控制两个舵机

    第一次写博客,有什么不足,希望大家指正. 文章目录 1.基本功能描述 2.程序 3.接线图 4.配置方法 5.注意事项 custom wifimanager 这个库在云盘在中呢 链接:https:// ...

最新文章

  1. [Nuxt.js]Nuxt项目启动如何跳过“Are you interested in participation?”
  2. 【MySQL】数据库2- MySQL表的增删改查(基础)
  3. 函数的实参 函数的形参 闭包 js
  4. group by 和 having(转载)
  5. c 函数多次声明_C++核心准则C.132:不要没有理由就将函数声明为虚函数
  6. 【算法】 - 滑动窗口
  7. C语言中使用静态函数的好处
  8. android q全局夜间模式,安卓Q新功能全局夜间模式,网友:都9102年了,魅族Flyme早就有...
  9. C#牛人要具备的知识
  10. SQL Server中char与nchar区别
  11. mysql改变授权_mysql8使用grant授权修改
  12. 亲,C/C++/C#居然薄弱叻?不会吧,现在是HTML5+CSS3+javascript的时代?
  13. Web前端大作业 HTML+CSS+JS 防天天生鲜官网 9页 (1)
  14. pytorch-cpn可视化标注信息
  15. Qt示例程序打开失败,出现一个感叹号图标
  16. JAVA编程的第二天JAVA编程环境搭建与JAVA入门案例
  17. GDUT2016年ACM新生杯初赛题解
  18. Autoware 1.14(WSL2) 与LG SVL Simulator(Win11)联合仿真
  19. 菜鸟、京东物流再提速,快递业卷出新高度
  20. 如何修改Android的ro属性

热门文章

  1. 机器学习(周志华)知识点总结——第2章 模型评估与选择(后期上传word/PDF)
  2. python Django音乐推荐系统(课设、毕设、学习)
  3. OpenGL超级宝典第7版 配置环境第一个程序
  4. 深入浅出设计模式(十四):23种设计模式概念总结
  5. 电子游戏发展史话——《doom启示录》读后感(三)
  6. 全面接触PDF:最好用的PDF软件汇总
  7. oracle连接no listener
  8. 如何在vs2020编译c语言程序,如何在使用WIN10 Visual Studio 2015 编译FlightGear源码(2020.1.1版本)(示例代码)...
  9. Java表示语言(文化)代码及国家地区对照表
  10. APP分发渠道的竞争分析