因为最近购买了一个天猫精灵,因而就想着能不能本身DIY一个智能灯出来,看看身边的工具,惟一能激起我改造动力的就是身边的这个氛围灯了,由于平时使用它的频率最高,晚上使用也不会刺眼睛,因此它就成了个人不二之选;其实这个灯买回来的时候也挺好的,能红外线控制,调节灯光颜色亮度,以及定时关闭的,但冬天来了,你懂得。。。json
其实对于电子技术这一块其实我一直是保持了解的状态,真正动手去学的时间几乎没有,在通过百度、b站的调教下让我了解到了esp8266这个开发板和arduino,因而通过一番摸索以后,就这样开启了个人改造之旅。服务器
首先固然是搞破坏啦,先把灯给拆了,这是灯原来的样子
网络
焊接充放模块,还原氛围灯移动电源的功能。
ide
这是灯和esp01s(因为不会PCB设计只有买成品,灯恰好是圆形的,12颗灯珠 )
函数
这是链接好的样子
工具
开始组装
测试
安装集成开发环境arduino,提取码: ARDUui
esp8266开发板安装spa
导入Blinker库以及其余库文件,提取码:BLIN,压缩包解压缩后放入。
].net
选择com口和WIFIunio开发板
]
编译代码
上传代码
]
导入Blinker界面配置,并在进行调试,界面配置以下
{¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨light¨¨background¨{¨img¨¨assets/img/bg/1.jpg¨}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨iconfont icon-n1¨¨mode¨Ê¨t0¨¨1平常色¨¨t1¨¨文本2¨¨bg¨Ì¨cols¨Ë¨rows¨Ë¨key¨¨ButtonKey1¨´x´Ë´y´Ì¨speech¨|÷¨lstyle¨Ê¨clr¨¨#EA0909¨}{ß9ßAßB¨iconfont icon-n2¨ßDÊßE¨2舒适色¨ßGßHßIÌßJËßKËßL¨ButtonKey2¨´x´É´y´ÌßN|÷ßOÊßP¨#00A90C¨}{ß9ßAßB¨iconfont icon-n3¨ßDÊßE¨3跑马灯¨ßGßHßIÌßJËßKËßL¨ButtonKey3¨´x´É´y´ÎßN|÷ßOÊßPßU}{ß9ßAßB¨iconfont icon-n4¨ßDÊßE¨4呼吸灯¨ßGßHßIÌßJËßKËßL¨ButtonKey4¨´x´É´y´ÐßN|¦¨act¨¨cmd¨‡¨on¨¨电脑¨ßd´´—÷ßOÊßPßU}{ß9ßAßB¨iconfont icon-n5¨ßDÊßE¨5旋转灯¨ßGßHßIÌßJËßKËßL¨ButtonKey5¨´x´É´y´ÒßN|÷ßOÊßPßU}{ß9¨ran¨ßE¨灯光频率¨ßPßQ¨max¨¤y¨min¨¤FßIÊßJÑßKËßL¨SliderKey¨´x´É´y´¤BßN|÷ßOÉ}{ß9¨col¨ßE¨颜色拾取¨ßP¨#389BEE¨ßIÉßJÏßKÏßL¨RGBKey¨´x´Ë´y´ÎßN|÷ßOÉ}{ß9¨deb¨ßDÉßIÉßJÑßKÌßL¨debug¨´x´É´y´¤DßN|÷}÷¨actions¨|÷¨triggers¨|÷}
数字信号传输引脚说明,esp01s建议选择RXD即PIN为3,否则容易报一些未知的错误,好比我以前选择的TXD做为信号传输的引脚,插上信号线会致使esp01s没法开机。esp8266 NodeMCU版建议选择GPIO14,即D5引脚。
esp01s对应引脚功能说明
esp8266 NodeMCU引脚说明
代码部分
#define PIN 14 //esp8266 输出引脚号(NodeMCU版,D5) #define NUMPIXELS 12 //ws2812 灯数
//天猫颜色模式 void aliGenieColor(const String & color) { BLINKER_LOG("need set color: ", color); if (color == "Red") { colorR = 255; colorG = 62; colorB = 150; } else if (color == "Yellow") { colorR = 255; colorG = 215; colorB = 0; } else if (color == "Blue") { colorR = 0; colorG = 191; colorB = 255; } else if (color == "Green") { colorR = 144; colorG = 238; colorB = 144; } else if (color == "White") { colorR = 255; colorG = 255; colorB = 255; } else if (color == "Black") { colorR = 0; colorG = 0; colorB = 0; } else if (color == "Cyan") { colorR = 0; colorG = 255; colorB = 255; } else if (color == "Purple") { colorR = 155; colorG = 48; colorB = 255; } else if (color == "Orange") { colorR = 255; colorG = 165; colorB = 0; } if (wsState == false) { wsState = true; colorW = 255; } if (colorW == 0) { colorW = 255; } pixelShow(); BlinkerAliGenie.color(color); BlinkerAliGenie.print(); }
void breath()//呼吸灯 { wsState = true; for (int brt = colorW; brt > 0; brt--) { colorW = brt; pixelShow(); if (active()) { break; } delay(1); } for (int brt = colorW; brt <201 ; brt++) { colorW = brt; pixelShow(); if (active()) { break; } delay(1); } }
颜色 | 中文描述 |
---|---|
Red | 红色 |
Yellow | 黄色 |
Blue | 蓝色 |
Green | 绿色 |
White | 白色 |
Black | 黑色 |
Cyan | 青色 |
Purple | 紫色 |
Orange | 橙色 |
模式 | 中文描述 |
---|---|
reading | 阅读 |
movie | 影院 |
sleep | 睡眠 |
holiday | 假日 |
music | 音乐 |
common | 普通 |