因爲最近購買了一個天貓精靈,因而就想着能不能本身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 | 普通 |