智能燈改造計劃

智能燈改造計劃

寫在前面

  • 因爲最近購買了一個天貓精靈,因而就想着能不能本身DIY一個智能燈出來,看看身邊的工具,惟一能激起我改造動力的就是身邊的這個氛圍燈了,由於平時使用它的頻率最高,晚上使用也不會刺眼睛,因此它就成了個人不二之選;其實這個燈買回來的時候也挺好的,能紅外線控制,調節燈光顏色亮度,以及定時關閉的,但冬天來了,你懂得。。。json

  • 其實對於電子技術這一塊其實我一直是保持瞭解的狀態,真正動手去學的時間幾乎沒有,在通過百度、b站的調教下讓我瞭解到了esp8266這個開發板和arduino,因而通過一番摸索以後,就這樣開啓了個人改造之旅。服務器

硬件部分

  • 必須: 電烙鐵、esp826601s開發板(體積小,NodeMcu也行)、esp8266-01的燒錄器、WS2812B燈、電池充放模塊、18650鋰電池、杜邦線、DC口(其餘電源輸入口也行)。
  • 非必須: pcb電路板、電阻、單排母座、帶線頭子、天貓精靈(其餘語音助手也行)、燈罩(推薦使用鹽燈, 配合全綵燈帶效果驚豔)
  • 改裝成品展現
    rCbmA1.md.png
  • 鹽燈示意圖:(圖來源自網絡)
    rCbVB9.png

實現原理

  • 天貓精靈>MQTT服務器>blinker硬件(esp8266)>家居設備

實現功能

  • 廣域網中能夠經過手機遠程控制,來調節燈光顏色並控制開關
  • 局域網中能夠經過天貓精靈語音助手進行控制(其餘語音助手須要修改代碼)

改造過程

  • 首先固然是搞破壞啦,先把燈給拆了,這是燈原來的樣子
    在這裏插入圖片描述網絡

  • 焊接充放模塊,還原氛圍燈移動電源的功能。
    在這裏插入圖片描述ide

  • 這是燈和esp01s(因爲不會PCB設計只有買成品,燈恰好是圓形的,12顆燈珠 )
    rCbntx.md.png函數

  • 這是鏈接好的樣子
    rCbNNt.md.png工具

  • 開始組裝
    rCbGBd.md.png測試

軟件部分

開發環境

  • IDE:arduino
  • 語言:C++
  • 物聯網接入平臺:Blinker
  • 使用到的函數庫:FastLED、Adafruit_NeoPixel(WS2812系列燈珠庫)、Blinker

開發步驟

  1. 安裝集成開發環境arduino,提取碼: ARDUui

  2. esp8266開發板安裝spa

    • 首先選擇開發板管理網址,輸入http://arduino.esp8266.com/stable/package_esp8266com_index.json
      rCbuh6.pngrCbM9K.md.png
      rCbQ1O.md.png
  • 搜索esp8266選擇安裝
    rCb1je.md.png
    注: 若是網絡安裝不了,請下載離線版本進行安裝。提取碼:8266
  1. 導入Blinker庫以及其餘庫文件,提取碼:BLIN,壓縮包解壓縮後放入。
    rCb8nH.md.png].net

  2. 選擇com口和WIFIunio開發板
    rCbU4P.md.png]

  3. 編譯代碼
    rCbJHA.md.png

  4. 上傳代碼
    rCbtAI.md.png]

  5. 導入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¨|÷}
  • 配置好,界面以下圖
    rCbBjg.md.png

部分代碼說明

  • 數字信號傳輸引腳說明,esp01s建議選擇RXD即PIN爲3,否則容易報一些未知的錯誤,好比我以前選擇的TXD做爲信號傳輸的引腳,插上信號線會致使esp01s沒法開機。esp8266 NodeMCU版建議選擇GPIO14,即D5引腳。

  • esp01s對應引腳功能說明
    rCbd9f.md.png

  • esp8266 NodeMCU引腳說明
    rCb0gS.md.png

  • 代碼部分

#define PIN            14        //esp8266 輸出引腳號(NodeMCU版,D5)                    
#define NUMPIXELS      12       //ws2812 燈數
  • 修改該代碼中的RGB,能夠實現語音顏色的調節,因爲官方默認的大紅大紫接受不了,因此我已經修改了RGB值,若是相關的通知想要修改參數,可自行百度RGB顏色表,進行修改。但喚醒口令仍不變。
//天貓顏色模式
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 普通
  • 測試過程當中發現天貓精靈只支持顏色模式和閱讀與睡眠模式的調節,好比音樂模式等沒法正常開啓,可是Blinker中能夠正常開啓,致使這一現象的緣由多是天貓精靈官方改變了這些模式的接口,致使Blinker沒法正常讀取。(若是您解決或者知道這一問題,煩請告知。)
相關文章
相關標籤/搜索