小爱同学脱离局域网远程控制开关?

这是几个月前做的一个小项目,也是从大佬那里学来的,为了防止忘记过程,自己做个记录,同时分享给需要的人

这个项目需要用到的东西有:电脑端Arduino IDE,小米手机小爱同学,手机APP点灯·blinker,esp8266nodemcu,以及杜邦线面包板小灯


1、Arduino IDE根据自己的系统安装合适的版本 我目前用的是1.8.9版本

安装esp8266拓展,这里点灯科技提供了资源,需要的小伙伴去找官方开发文档

以及下载安装blinker-Arduino库:
方法一:打开软件IDE,在项目–》加载库–》管理库下搜索blinker进行安装
安装最新版本

方法二:找到点灯科技官方开发文档,快速入门esp8266WiFi接入

点击下载,根据要求安装

到目前为止,电脑端的配置就完成了

现在点灯科技需要使用最新的库文件

我将库文件上传至该文章

解压至Arduino的安装目录下的libraries文件夹即可

2、手机APP点灯下载

这样获取到secret Key,到时候代码里要用到

3、打开IDE 新建文件 输入代码

#define BLINKER_WIFI
#define BLINKER_MIOT_MULTI_OUTLET    //设置为小爱多个插座的模式#include <Blinker.h>
BlinkerButton Button1("btn-km");     //设置blinkerapp内数据键名
BlinkerButton Button2("btn-kckm");   //这里只用了其中三个
BlinkerButton Button3("btn-gckm");
BlinkerText Text1("text_1");char i;char auth[] = "密钥(secret Key)";
char ssid[] = "WiFi名称";
char pswd[] = "WiFi密码";bool oState[5] = { false };    //设置5路开关控制void miotPowerState(const String & state, uint8_t num)     //小爱同学控制指令
{BLINKER_LOG("need set outlet: ", num, ", power state: ", state);   if(num==1){i=D1;          //指定每一路开关对应在开发板上的通道接口}else if(num==2){i=D2;}else if(num==3){i=D5;}if (state == BLINKER_CMD_ON) {      digitalWrite(i, HIGH);      //这里控制模式都是点动模式 BlinkerMIOT.powerState("on", num);BlinkerMIOT.print();oState[num] = true;}else if (state == BLINKER_CMD_OFF) {digitalWrite(i, LOW);BlinkerMIOT.powerState("off", num);BlinkerMIOT.print();oState[num] = false;if (num == 0){for (uint8_t o_num = 0; o_num < 5; o_num++){oState[o_num] = false;}}}
}void miotQuery(int32_t queryCode, uint8_t num)
{BLINKER_LOG("AliGenie Query outlet: ", num,", codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("MIOT Query All");BlinkerMIOT.powerState(oState[num] ? "on" : "off", num);BlinkerMIOT.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("MIOT Query Power State");BlinkerMIOT.powerState(oState[num] ? "on" : "off", num);BlinkerMIOT.print();break;default :BlinkerMIOT.powerState(oState[num] ? "on" : "off", num);BlinkerMIOT.print();break;}
}void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);Blinker.vibrate();uint32_t BlinkerTime = millis();Blinker.print("millis", BlinkerTime);
}void button1_callback(const String & state)     //点灯app内控制按键触发
{BLINKER_LOG("get button state: ", state);digitalWrite(D1, HIGH);Blinker.print("开门命令已经处理");Text1.print("shuju");}void button2_callback(const String & state)     //点灯app内控制按键触发
{BLINKER_LOG("get button state: ", state);digitalWrite(D2, HIGH);}void button3_callback(const String & state)     //点灯app内控制按键触发
{BLINKER_LOG("get button state: ", state);digitalWrite(D5, HIGH);}void setup()
{Serial.begin(115200);BLINKER_DEBUG.stream(Serial);pinMode(D1, OUTPUT);digitalWrite(D1, LOW);pinMode(D2, OUTPUT);digitalWrite(D2, LOW);pinMode(D5, OUTPUT);digitalWrite(D5, LOW);Blinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);BlinkerMIOT.attachPowerState(miotPowerState);BlinkerMIOT.attachQuery(miotQuery);Button1.attach(button1_callback); Button2.attach(button2_callback); Button3.attach(button3_callback);
}void loop()
{Blinker.run();
}

我们的esp8266长这样,在代码中主要用了3路接口,如果有基础的可以看出,分别是D1、D2和D5,看不懂的也没有关系,主要是在这三处:

如果需要小改动的可以用其他端口代替,当然代码中还有其他的地方需要替换

从这里可以看出,在启动后,三个端口的电平为低电平,灯不亮

以及这里可以看出,当小爱同接收到适当命令时,端口输出高电平
废话不多说了,我们将程序烧录,接线

4、打开IDE,连接esp8266

选择开发板,确定端口
在IDE上先验证,再上传

再进行硬件连接:


D1接红灯正极,D2接蓝灯正极,D5接绿灯正极,三个小灯的负极一起接到开发板的GND

5、打开点灯app可以看到设备在线

6、我们进入米家APP,在我的–》其他平台设备–》添加点灯科技,关联账号,就可以看到我们有了5个插座开关,其中前面三个是我们三个小灯的开关:

7、我们再进入小爱同学APP新建训练,假如我们D1灯泡是红灯,我们就可以设置你对小爱说的话:打开我的红灯,小爱的回应就是设备控制,选择小灯插座一,打开插座:

以此类推我们就有了打开三个灯泡的指令,关闭三个灯泡的指令


感兴趣的小伙伴快来试试吧

小爱同学脱离局域网远程控制开关?相关推荐

  1. 利用esp01s模块和光耦817实现天猫精灵、小爱同学实现电脑远程开关机

    利用esp01s模块和光耦817实现天猫精灵.小爱同学实现电脑远程开关机(由于电脑电源开机线是5V,需要另外加两个5V转3.3V模块对esp01s提供电源和反馈开关机状态). /** 利用esp01s ...

  2. (含代码)ESP8266+舵机 制作wifi灯控开关(arduino,点灯科技,小爱同学/天猫精灵实现)

    目录 项目涉及的主代码 前言 一.环境搭建 二.开发步骤 1.注册点灯科技平台 2.在点灯科技平台注册设备,获取Secret Key 3.在Arduino IDE中编写代码,写入ESP8266 4.编 ...

  3. ESP8266 Nodemcu 开发板 + Blinker 电脑远程开机支持小爱同学和手机APP

    文章目录 前言 一.物联网是什么? 二.效果展示 1.使用的硬件 2.接线展示 三.TMP模块供电,状态检测 四 代码解析 1. 指定PIN,定义一些按钮 2.这是小爱同学的代码,BLinker还支持 ...

  4. ESP8266+Blinker+小爱同学舵机控制开关

    ESP8266 文章目录 ESP8266 一.简介 二.硬件连接 三.代码 四.blinker软件配置 总结 一.简介 最近想着用我们的小爱同学语音控制卧室的灯,这样就可以在睡觉的时候不用下床了,之前 ...

  5. ESP8266 Blinker 小爱同学 本地控制 手机配网 四路开关 物联网 arduino编程详细注释

    作为一名注册12年CSDN的电脑爱好者,没有从事喜欢的IT行业还是颇有那么一丝丝的想念. 通过一段时间的arduino编程和ESP8266学习,参考示例程序等,完善了自己的一份小爱同学四开关控制的程序 ...

  6. ESP8266-NodeMCU项目(二):ESP8266-NodeMCU+Blinker+DHT11+小爱同学

    错开の折腾经历:ESP8266 NodeMCU 文章目录 前言 一.Blinker 1.Blinker--点灯科技 特性: blinker应用场景: 二.任务开始 1.实验材料 2.安装库文件 3.安 ...

  7. 浪潮云完成6亿元B轮融资,正推进上市;VMware收购AI初创公司Bitfusion;小爱同学App在苹果应用商店下架……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  8. 小爱同学100个奇葩回复_小米小爱音箱Pro开箱评测,看到的不仅是全面升级更是小米loT的高速发展...

    Hello,大家好,这里是科技能量站,今天有何大家见面了,本期小编给大家带来的是小米最新推出的小爱同学"小米小爱音箱Pro",小米在前两年推出了自家的小米AI音箱,那一刻起,智能语 ...

  9. 从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座

    从零开始使用ESP8266 + Blinker 实现小爱同学可控可读取状态的多路插座 前言 一直对8266很感兴趣,放寒假嘛,也挺闲,刚好手头有原来买下的Nodemcu,就拿来做个多路开关 参考资料我 ...

  10. 小爱同学指令大全_小爱同学有哪些隐藏功能?小爱同学实用隐藏功能大汇总

    小爱同学有哪些隐藏功能?小爱同学是小米手机的智能语音助手,我们经常用它定闹钟.做备忘录.发信息.查询天气等等.今天小编为大家带来了小爱同学实用隐藏功能大汇总,感兴趣的朋友快来了解一下吧. 小爱同学实用 ...

最新文章

  1. 快速排序 python菜鸟教程-十大编程算法助程序员走上高手之路
  2. 丑数 Humble Numbers
  3. OpenCV:没有GUI的情况下使用OpenCV无缝克隆模块(附完整代码)
  4. fiddler几种功能强大的用法(一)转自:http://www.cnblogs.com/chenshaoping/p/5785010.html
  5. Android Studio升级后报 method not found: 'runProguard'的错误
  6. java基础---File类
  7. linux比较两个文件md5,linux下如何批量比对两个文件的MD5值是否一致,SHA1是否一致。...
  8. 算法提高 数的划分 动态规划 无序
  9. ECSHOP删除商品名称或文章标题后的省略号
  10. linux非编工作站,高清EDIUS非编网络系统建设 在线非编系统
  11. Java解决找不到主类或者无法加载主类
  12. rocketMq错误日志所在位置
  13. OpenCV之鼠标操作
  14. installanywhere's LAX Properties
  15. jQuery入门基础
  16. linux下od命令的使用教程,linux od命令详解
  17. c语言编程实现合取析取,C++实现离散数学求主合取范式和主析取范式
  18. 第1节 中华人民共和国网络安全法
  19. 计算机无法访问指定设备路径或文件怎么回事,window无法访问指定设备 路径或文件是怎么回事...
  20. 【OpenCV】PNG图片压缩方法

热门文章

  1. 广播地址为什么只能作为目的地址,不能作为源地址?
  2. GAMES101-现代计算机图形学入门-闫令琪 - lecture7 着色(Shading) - 课后笔记
  3. SAS: PROC IMPORT简单入门介绍
  4. 物联网技术,主要包括哪些核心技术
  5. SQL server 还原数据库遇到正在使用的解决方法:
  6. 一代「博雅」大师离世!缅怀复旦大学原校长、中国科学院院士杨福家教授
  7. shader 重建世界坐标
  8. 点对点视频分发:从早期互联网到ZB字节(Zettabyte)时代的分布式网络
  9. gif动态表情包怎么制作?
  10. 【漏洞分析】流行开源电子邮件程序Roundcube v1.2.2命令执行漏洞分析