Blinker接入小爱同学做智能家居RGB灯

如果你有一部非小米手机,怎样连入米家,使用小爱同学语音控制家电呢
此文相关看不懂的知识点
1、esp8266无法下载程序:参考我的另外一篇文章
链接

2、非小米手机小爱同学语音接入
链接

实现功能

小爱同学语音控制客厅灯开关、模式切换、亮度调节
准备工作
1、arduino IDE开发环境
2、一块esp8266 开发板
3、一部手机(我用的是oppo)

Blinker界面配置

第一步blinker配置
右上角加号新建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
于是你就得到一个新的设备
在这里插入图片描述

复制这个密钥到代码中
下面展示一些 内联代码片

char auth[] = "fe5af1cadf0d";//密钥复制到这里
char ssid[] = "L";//你手机的热点名
char pswd[] = "123456789";//wifi密码
#define BLINKER_PRINT Serial
#define BLINKER_WIFI#define BLINKER_MIOT_LIGHT 
#include <Blinker.h>
//#include <Adafruit_NeoPixel.h>
#include "Adafruit_NeoPixel.h"      //灯条库char auth[] = "fe5af1cadf0d";//设备号
char ssid[] = "L";//无线账号
char pswd[] = "123456789";//无线密码int LED_OPEN=0;//氛围灯标志位
int Control_OPEN=0;//氛围灯颜色控制标志位int count=0;//LED翻转计数器
int send_data=0;//发送命令标志位
uint8_t colorR1 ;//用于颜色存储
uint8_t colorG1 ;
uint8_t colorB1 ;
uint8_t colorR2 ;//用于颜色存储2
uint8_t colorG2 ;
uint8_t colorB2 ;
uint8_t colorR_Set= map(  0, 0, 255, 0, 255);//颜色默认值
uint8_t colorG_Set= map(255, 0, 255, 0, 255);//颜色默认值
uint8_t colorB_Set= map(242, 0, 255, 0, 255);;//颜色默认值int LED_R=0,LED_G=0,LED_B=0,LED_Bright=255;// RGB和亮度
char wsMode; //模式#define kled 16//厨房 v
#define roomled 14//卧室灯
#define PIN 15//客厅RGB
#define NUMPIXELS      8//灯珠数量
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);#define RGB_1 "RGBKey"// 新建组件对象
BlinkerButton Button1("LED_Button");//RGB客厅灯
BlinkerButton Button2("Control_Button");//RGB颜色控制
BlinkerRGB RGB1(RGB_1);//RGB调色板BlinkerNumber Number1("num-abc");
int counter = 0;
bool oState = false;//APP端颜色设置回调函数
void rgb1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));BLINKER_LOG("R value: ", r_value);BLINKER_LOG("G value: ", g_value);BLINKER_LOG("B value: ", b_value);BLINKER_LOG("Rrightness value: ", bright_value);uint8_t colorR = map(r_value, 0, 255, 0, bright_value);uint8_t colorG = map(g_value, 0, 255, 0, bright_value);uint8_t colorB = map(b_value, 0, 255, 0, bright_value);colorR2=colorR1 ;//存储colorG2=colorG1 ;colorB2=colorB1 ;colorR1=colorR ;//存储colorG1=colorG ;colorB1=colorB ;Button2.print("on");Control_OPEN=1;//氛围灯颜色调节send_data=1;//运行标志位为1
}// 按下按键1即会执行该函数按下按键1,LED1亮
void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state);digitalWrite(kled, !digitalRead(kled));if(digitalRead(kled)==0){Button1.print("off");LED_OPEN=0;//关闭}else{Button1.print("on");LED_OPEN=1;//开启}send_data=1;//运行标志位为1
}
// 按下按键2即会执行该函数
void button2_callback(const String & state) {BLINKER_LOG("get button state: ", state);digitalWrite(roomled, !digitalRead(roomled));if(digitalRead(roomled)==0){Button2.print("off");Control_OPEN=0;//关闭}else{Button2.print("on");Control_OPEN=1;//开启}send_data=1;//运行标志位为1
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);}
//小爱同学处理函数
void miotPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(roomled, HIGH);LED_OPEN=1;BlinkerMIOT.powerState("on");BlinkerMIOT.print();send_data=1;//运行标志位为1}else if (state == BLINKER_CMD_OFF) {digitalWrite(roomled, LOW);LED_OPEN=0;BlinkerMIOT.powerState("off");BlinkerMIOT.print();send_data=1;//运行标志位为1}
}// 查询设备状态回调函数
void miotQuery(int32_t queryCode)
{BLINKER_LOG("MIOT Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :         // 查询所有设备BLINKER_LOG("MIOT Query All");BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :  // 查询电源类设备BLINKER_LOG("MIOT Query Power State");BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;default :                                   // 查询其他设备BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;}
}//控制rgb灯
void SET_RGB(int R,int G,int B,int bright)
{for (uint16_t i = 0; i < NUMPIXELS; i++) //把灯条变色{pixels.setPixelColor(i,R,G,B);}pixels.setBrightness(bright);//亮度pixels.show();    //送出显示
}
// 灯光亮度控制回调函数
void miotBright(const String & bright)
{BLINKER_LOG("need set brightness: ", bright);int colorW = bright.toInt();BLINKER_LOG("now set brightness: ", colorW);LED_Bright = colorW;SET_RGB(LED_R,LED_G,LED_B,LED_Bright);Serial.printf("亮度调节中...%d",colorW);BlinkerMIOT.brightness(colorW);//反馈小爱控制状态BlinkerMIOT.print();
}// 灯光色温控制回调函数
void miotColor(int32_t color)
{BLINKER_LOG("need set color: ", color);int colorR,colorG,colorB;colorR = color >> 16 & 0xFF;colorG = color >>  8 & 0xFF;colorB = color       & 0xFF;BLINKER_LOG("colorR: ", colorR, ", colorG: ", colorG, ", colorB: ", colorB);SET_RGB(colorR,colorG,colorB,LED_Bright);BlinkerMIOT.color(color);//反馈小爱控制状态BlinkerMIOT.print();
}// 模式控制回调函数
void miotMode(uint8_t mode)
{BLINKER_LOG("need set mode: ", mode);//日光if (mode == BLINKER_CMD_MIOT_DAY) {    SET_RGB(255,255,255,LED_Bright);  }//月光else if (mode == BLINKER_CMD_MIOT_NIGHT) {SET_RGB(255,181,0,LED_Bright);  }//彩光else if (mode == BLINKER_CMD_MIOT_COLOR) {pixels.setPixelColor(0,255,0,20);pixels.setPixelColor(1,0,255,184);pixels.setPixelColor(2,255,231,192);pixels.setPixelColor(3,0,59,255);pixels.setPixelColor(4,209,22,255);pixels.setBrightness(LED_Bright);//亮度pixels.show();    //送出显示}//温馨else if (mode == BLINKER_CMD_MIOT_WARMTH) {SET_RGB(255,38,0,LED_Bright);   }//电视模式else if (mode == BLINKER_CMD_MIOT_TV) {// Your mode functionSET_RGB(255,0,154,LED_Bright); }//阅读模式else if (mode == BLINKER_CMD_MIOT_READING) {// Your mode functionSET_RGB(0,255,164,LED_Bright); }//电脑模式else if (mode == BLINKER_CMD_MIOT_COMPUTER) {// Your mode functionSET_RGB(255,0,0,LED_Bright); }wsMode = mode;BlinkerMIOT.mode(mode);BlinkerMIOT.print();
}void setup() {// 初始化串口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);BLINKER_DEBUG.debugAll();#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endif// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);pinMode(kled, OUTPUT);digitalWrite(kled, LOW);pinMode(roomled, OUTPUT);digitalWrite(roomled, LOW);// 初始化blinkerBlinker.begin(auth, ssid, pswd);pixels.begin();Blinker.attachData(dataRead);Button1.attach(button1_callback);//按键1Button2.attach(button2_callback);//按键2RGB1.attach(rgb1_callback);//小爱回调函数BlinkerMIOT.attachPowerState(miotPowerState); // 电源控制回调BlinkerMIOT.attachQuery(miotQuery);           // 查询设备状态回调BlinkerMIOT.attachBrightness(miotBright);     // 灯光亮度控制回调BlinkerMIOT.attachColor(miotColor);           // 灯光色温控制回调BlinkerMIOT.attachMode(miotMode);             // 模式控制回调}void loop() {Blinker.run();count++;//led计数器if(send_data==1)//运行标志位为1{if(LED_OPEN==1 )//开启{if(Control_OPEN==1)//控制开启{// int r1=colorR2,g1=colorG2,b1=colorB2;for(int n = 0; n < NUMPIXELS; n++){pixels.setPixelColor(n, pixels.Color(colorR1,colorG1,colorB1));pixels.show();} }else{int r=0,g=0,b=0;for(int i = 0; i < NUMPIXELS; i++){pixels.setPixelColor(i, pixels.Color(colorR_Set,colorG_Set,colorB_Set));pixels.show();}}   }else if (LED_OPEN==0)//关闭{uint8_t colorR = map(0, 0, 255, 0, 0);uint8_t colorG = map(0, 0, 255, 0, 0);uint8_t colorB = map(0, 0, 255, 0, 0);for(int i = 0; i < NUMPIXELS; i++){pixels.setPixelColor(i, pixels.Color(colorR,colorG,colorB));pixels.show();}}send_data=0;//运行标志位清0  }else{send_data=0;//运行标志位为0  }if(count==100){digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));count=0;}
}

烧录代码到esp8266
也可以是arduino开发板,不过我没试过arduino
等待一会连上网可以看到设备在线
在这里插入图片描述

进行界面配置

将下面此段代码复制到blinker界面配置
{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/bg/2.jpg¨}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨fal fa-power-off¨¨mode¨Ê¨t0¨¨客厅灯¨¨t1¨¨文本2¨¨bg¨É¨cols¨Ë¨rows¨Ë¨key¨¨LED_Button¨´x´Ï´y´É¨lstyle¨Ê¨clr¨¨#EA0909¨}{ßB¨num¨ßG¨温度¨ßD¨fal fa-question¨ßQßR¨min¨É¨max¨¢1c¨uni¨´℃´ßKÉßLÍßMËßN¨temp¨´x´Ë´y´ÉßP˨rt¨»}{ßBßSßG¨湿度¨ßDßUßQ¨#076EEF¨ßVÉßWº0ßX¨RH¨ßKÉßLÍßMËßN¨humi¨´x´Ë´y´ËßPÌßZ»}{ßB¨deb¨ßFÉßKÉßLÑßMÌßN¨debug¨´x´É´y´¤G}{ßB¨cha¨ßKɨsty¨¨line¨ßQßR¨sty1¨ßi¨clr1¨ßb¨sty2¨ßi¨clr2¨¨#389BEE¨ßLÑßMÌßN´´´x´É´y´ÍßGßTßIßa¨key0¨ßY¨key1¨´´ßPÉ}{ßBßgßKÉßhßißQßbßjßißkßbßlßißmßbßLÑßMÌßN´´´x´É´y´ÐßoßdßGßa}{ßBßSßGßTßD¨fad fa-thermometer-three-quarters¨ßQßRßVÉßWº0ßX´℃´ßKÉßLËßMËßNßY´x´É´y´ÉßPÉßZ»}{ßBßSßGßaßD¨fad fa-humidity¨ßQßnßVÉßWº0ßXßcßKÉßLËßMËßNßd´x´É´y´ËßZ»}{ßBßCßDßEßFÉßG¨控制¨ßIßJßKÉßLËßMËßN¨Control_Button¨´x´Ï´y´ËßPÊßQ¨#00A90C¨}{ßB¨col¨ßG¨颜色拾取¨ßQßnßKËßLÏßMÏßN¨RGBKey¨´x´É´y´¤AßPÉ}÷¨actions¨|÷¨triggers¨|÷ßZ|ßYßdßYßd÷}

在这里插入图片描述

在这里插入图片描述
退出再进来就可以得到这个界面
在这里插入图片描述
一切准备就绪,如果你是小米手机,配置训练指令就可以了,如果你是非小米,请看下一篇文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/54211.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:用Python制作游戏

用Python制作游戏 游戏开发一直是计算机编程中最激动人心的领域之一。Python作为一种流行的编程语言&#xff0c;也可以用来制作游戏。在本文中&#xff0c;我们将介绍如何用Python制作游戏&#xff0c;并探讨用Python进行游戏开发的优点和局限性。 游戏开发的优点 Python作…

chatgpt赋能python:用Python编写游戏

用Python编写游戏 Python是一种用于编写各种应用程序的高级编程语言&#xff0c;它易于阅读和编写&#xff0c;并且在不同的操作系统中都具有广泛的使用。使用Python编写游戏可以使游戏开发人员轻松和快速地创建相当复杂的游戏&#xff0c;同时大幅度增强了游戏体验。 为什么…

chatgpt赋能python:Python怎么做3D游戏?

Python怎么做3D游戏? 随着游戏开发技术的不断更新和改进&#xff0c;Python也被越来越多的游戏开发者和爱好者所使用。事实上&#xff0c;Python可以进行3D游戏开发&#xff0c;并且其简单易学、离散记录和良好的结构化编程可以为游戏开发带来诸多便利。因此&#xff0c;本篇…

chatgpt赋能python:如何利用Python做游戏

如何利用Python做游戏 Python是一种流行的编程语言&#xff0c;可以用来做许多不同的事情&#xff0c;包括编写游戏。在这篇文章中&#xff0c;我们将讨论如何使用Python来制作游戏&#xff0c;并介绍如何优化您的游戏以提高搜索引擎排名。 Python中的游戏编程 Python不是专…

AIGC:OpenAI官方版AutoGPT简介

文章目录 [toc]简介一、聊天界面直接加购物车、发推特布洛克曼&#xff1a;是时候了解AGI了 简介 OpenAI官方AutoGPT&#xff0c;要来了&#xff01;就在AutoGPT项目破10万Star之际&#xff0c;OpenAI也放出重磅炸弹&#xff0c;由联合创始人格雷格布洛克曼&#xff08;Greg B…

销售人员必看的书推荐

一本好的有关销售技巧的书籍可以给销售人员指明方向&#xff0c;找到销售的精髓和正确的销售方法。那么怎样才算是一本好的销售书籍呢&#xff1f;都有哪些好的有关销售技巧的书籍呢&#xff1f;笔者凭借多年的销售经验和阅读经历选出了以下7本经典销售书籍&#xff0c;值得每个…

适合企业老板看的书推荐

老板就是一家企业的灵魂与精神领袖&#xff0c;老板的个人素质和能力大小直接决定一家企业最终能够走多远。 要想在这个变化莫测的竞争环境中拔得头筹&#xff0c;企业老板必须要通过大量的阅读来不断提升自己的管理技能与个人职业素养。商战宛如逆水行舟&#xff0c;不进则退…

经商必看的10本书籍推荐

1、《经理人参阅&#xff1a;商业模式与商业思维》 这本书被誉为商业模式的圣经。该书通过可视化工具&#xff0c;包括商业模式画布和价值主张画布&#xff0c;帮助企业家、创业者和经理人创造创新的商业模式。本书通过图表、图像和实例&#xff0c;详细讲解了商业模式的构建方…

投资类书籍推荐书单

这里分享一个我的投资类书籍的书单。书单不长&#xff0c;不过都是挺有特色、非常值得一读的书。大家有好的书籍也欢迎推荐&#xff0c;并简单写一下推荐理由哦。 其中有的书比较枯燥&#xff0c;有的相对容易读。 关于资产配置 《傻瓜式投资》 飞泥翱空 《不落俗套的成功》…

推荐给创业者看的书

如果你是一名创业者&#xff0c;或者准备创业的人&#xff0c;执行力很重要&#xff0c;下面我推荐几本创业者看的书&#xff0c;希望给大家带来帮助。 精益创业 《精益创业》是创业管理领域的重磅之作&#xff0c;也绝对有潜质经受时间的考验&#xff0c;成为创业管理的经典图…

值得一看的创业书籍推荐

行业相关&#xff0c;这些年亲自读了不少创业书籍。 而要说哪本创业书籍最值得推荐&#xff0c;个人认为还是12Reads的《创业必读12篇》这本。 P.S.很多小伙伴向笔者抱怨说这本书买不到&#xff0c;我只想说请善用搜索引擎&#xff0c;这本书只能从其官网获得。对于一名创业者…

创业方面的书籍推荐:成功创业秘诀都在这本书里了!

每一天&#xff0c;都有不计其数的人投身创业大潮​。 在这一过程中&#xff0c;有些人最终将获得别人不可企及的成功&#xff0c;但更多的人则是饱尝失败的痛苦与打击&#xff0c;暗自躲在角落里&#xff0c;被整个世界所遗忘。 同样都是创业&#xff0c;同样站在同一个起跑…

创业方面的书籍推荐:《经理人参阅:创业管理学》

创业、经商需要看什么书&#xff1f;有哪些创业书籍值得推荐&#xff1f; 作为一名草根创业者&#xff0c;一路走来跌跌撞撞、踩过不少坑也走过很多弯路&#xff0c;今天想给大家推荐的这本创业书籍叫《经理人参阅&#xff1a;创业管理学》。 需要说明的是&#xff0c;这本书跟…

关于企业战略管理的书,这些经典教材值得推荐

本期给大家推荐的这些战略管理书籍都是经典中的经典&#xff0c;学企业战略&#xff0c;看这些书足矣&#xff01; 1.《战略管理必读12篇》 在全球化、数字化&#xff0c;而且多变化的商业环境中&#xff0c;企业想要永续经营&#xff0c;除了必须跟上&#xff0c;甚至超越快速…

创业书籍推荐,这些书经商必读

对于许多想要创业的人来说&#xff0c;成功的关键在于掌握正确的知识和技能。虽然创业的实际经验是无可替代的&#xff0c;但是通过阅读经验丰富的人士写的书籍&#xff0c;可以提前了解创业、经商过程中可能遇到的挑战&#xff0c;并为成功奠定基础。在这篇文章中&#xff0c;…

关于创新创业的书,看这两本就够了

创新与创业之间有着千丝万缕的紧密联系。创新是创业的基础&#xff0c;创业并非拿来主义&#xff0c;没有创新就难谈创业&#xff1b;而没有创业的大胆创举&#xff0c;创新也将无处安放。 ​然而你该如何创新&#xff1f;创新的方法有哪些&#xff1f;创业维艰&#xff0c;你…

创业书籍推荐,这本书最经典!

创业类的书籍有不少&#xff0c;今天要给大家推荐的这本《创业必读12篇》作为其中比较有代表性的经典著作&#xff0c;在本人看来是最适合创业者看的书。 虽然这本书目前仅能从官网购得&#xff0c;并且价格要高于其他同类创业书籍&#xff0c;但这些都丝毫不能阻挡我想要将这本…

今日创见|2022创业者必读的七本好书推荐

如今的企业经济都是关于速度、增长和保持不破产。随着消费者行为、数字化技术和全球化发生翻天覆地的变化&#xff0c;不断创新和挑战现状比以往任何时候都更为重要。我们做了一份企业家“必读”清单&#xff0c;其中包括最近几年发布的一些最新、实用和鼓舞人心的建议。我们的…

经商必读的创业类书籍推荐

创业之路虽然坎坷&#xff0c;但创业者也不要忘了适时给自己充电的重要性。 没有人能随随便便创业成功&#xff0c;80%的人都看不到明天的日出。成功的创业者总是懂的自我提升的重要性&#xff0c;无论有多忙&#xff0c;他们都能找时间静下心来好好读一本专业书籍或是听一堂课…

关于如何创业的书籍推荐

关于如何创业的好书有哪些值得推荐&#xff1f; 这是我在社区被私信最多的一个问题。 创业方面的书籍有很多&#xff0c;但能称得上是好书的确不多。如果非要说有什么“好书”推荐的话&#xff0c;那么我推荐《创业必读12篇》。&#xff08;注意&#xff0c;这本书是只能从官…