使用nodemcu為計算機新增wi-fi控制的照明

學習如何透過構建一個由NodeMCU和一些基本程式設計組成的DIY-Wi-Fi控制的neopix系統來活躍你的電腦機箱。...

桌面電腦塔已經走過了漫長的道路,因為灰色塑料塔隱藏在辦公桌下的日子。除了滿足不同功能的機箱外,PC機箱還進化出了一種美感,玻璃面板自豪地展示著組件,強大的未來設計佔據了任何驕傲的極客辦公桌的中心舞臺。

led-pc-case

desktop pc side tower led lighting

LED裝置越來越普遍。一個簡單的12v的RGB帶可以買到只要1美元每米,並將照亮一個案件(連同幾乎任何其他)的內部非常好。

但是,我們想做一些比這更特別的事情!今天,我們將使用像素LED來創建Wi-Fi可控的機箱照明,並提供定製的If This Then That(IFTTT)通知。整個系統使用塔內的備用莫仕連接器供電,使其完全獨立。最棒的是,整個項目的成本不到10美元。

本教程以視頻形式提供,或繼續閱讀書面版本。

有頭腦的燈

我們將在這個項目中使用單獨的可尋址LED。有時被稱為neopix,有各種型號可供選擇。這裡使用的LED來自WS2812B條帶,每米大約4美元。

我們將使用NodeMCU板來控制它們。雖然你可以使用任何與Arduino兼容的Wi-Fi板,但NodeMCU是我們作為Arduino**的最愛。

你需要什麼

  1. 1 x 5v像素LED條,Neopixel/WS2811/12/12B
  2. 1個NodeMCU(在AliExpress上為3美元)
  3. 1 x 220-500歐姆電阻器
  4. 1 x 100-1000微法拉電容器
  5. 1 x撥動開關或斷路器
  6. 1個內螺紋莫仕接頭
  7. 1 x試驗板
  8. 1 x 5v電源(用於測試)
  9. 1 x原型板和電線(用於安裝電路)
  10. 各種連接線
  11. 烙鐵和焊料

這張單子上唯一與眾不同的就是莫仕接頭。如今,許多個人電腦用戶根本不使用CD驅動器,儘管電源仍然為他們提供連接。我們可以利用這些備用電源線。我從一箇舊的磁盤驅動器中取出了我的陰性連接器,儘管它們的價格只有0.30美元。

建立你的電路

為了避免不必要的戳在我們的情況下,我們將測試我們的設置使用外部電源。像這樣把你的實驗板放好。

led case breadboard

如果這是您第一次設置這種LED,我建議您先查看我們的深入指南,使用Arduino的這些條帶。

這個開關只是將NodeMCU從電路中斷開。在這個構建中,我將使用一個簡單的斷路器來代替開關。它的功能是讓我們隔離該板的VIN引腳,而它是通過USB連接。雖然我們的LED將消耗的功率相對較小,但避免通過USB消耗過多功率是一個很好的做法。

一旦你的實驗板設置好了,它應該是這樣的:

breadboard setup

在我的例子中,電容器和電阻器已經在proto板上,因為它是從一箇舊的項目打撈上來的,儘管電路是完全相同的。

現在我們已經設置了硬件,讓我們創建代碼。

手術的大腦

您將使用ArduinoIDE對節點MCU進行編碼。對於本例,我們將設置兩種操作模式:主開關和接收電子郵件時的通知信號。我們將使用Blynk[brokenurl Removed],一個物聯網設備的網絡服務來與我們的董事會進行通信。

如果你以前從未使用過Blynk的介紹性文章,請務必查看它。

在Blynk應用程序中,設置一個新項目並選擇NodeMCU作為您的板。授權碼將發送到您在Blynk註冊的電子郵件地址。添加3個按鈕和3個滑塊。

blynk app sliders and butt***

這些按鈕和滑塊應設置為將值發送到虛擬引腳V0-V5。“測試”按鈕將暫時測試我們的電子郵件通知。給另外兩個按鈕貼上電源和自動/手動或類似的標籤,三個滑塊分別是紅色、綠色和藍色。

現在打開Arduino IDE。這個項目需要Blynk和FastLED庫,所以請確保已經安裝了這兩個庫。如果您剛剛開始使用Arduino IDE,請查看我們的Arduino初學者指南。

我們將在這裡把代碼分解成塊,不過如果您更願意下載完整的代碼,您可以在GitHub上找到它。

如果您決定這樣做,請確保在腳本中添加您自己的Wi-Fi詳細信息、授權代碼和相關的NodeMCU pin和指示燈數量。如果你剛剛開始學習編程,我會從頭開始學習,以便了解每個部分是如何工作的。這是掌握編碼的許多方法之一。

創建一個新草圖並用適當的名稱保存它。確保從“工具”>“板和工具”>“端口”菜單中選擇正確的板和端口。首先包括相關的Blynk和FastLED名稱空間:

#define BLYNK_PRINT Serial#include <ESP8266WiFi.h>#include <BlynkSimpleEsp8266.h>#include "FastLED.h"

接下來,為FastLED添加一些定義:

//---FastLED definiti*** and CRGB---#define LED_PIN 3 // GPIO pin for RGB LEDs.#define NUM_LEDS 44 // Number of LEDs connected.#define BRIGHTNESS 64 // Default LED brightness.#define LED_TYPE WS2812B#define COLOR_ORDER GRBCRGB leds[NUM_LEDS];

接下來,我們將為RGB值、自動/手動模式和主開關聲明變量。我們還為稍後使用的FastLED預設所需的基色添加了一個值。

//---variables for our RGB values (0-1023) ---int r = 500;int g = 500;int b = 500;//---variables for On/Off, and Auto/Manual toggleint masterSwitch = 1;int autoMode = 1;//--- int/byte for automatic hue incrementation---uint8_t gHue = 0; // rotating "base color" used by many of the patterns

添加Blynk詳細信息時,請務必在此處填寫您自己的Wi-Fi詳細信息:

//---Blynk auth code and wifi details---char auth[] = "YourAuthCode";//Blynk authorisationchar ssid[] = "YourWifiName";char pass[] = "YourWifiPassword";

我們使用設置功能將LED添加到FastLED,並與Blynk建立通信。

void setup() { // power-up safety delay delay(3000); Serial.begin(9600); //--- add the LEDS to FastLED and set the brightness--- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalSMD5050); FastLED.setBrightness(BRIGHTNESS); #define FRAMES_PER_SECOND 120 //---start communication with the Blynk server --- Blynk.begin(auth, ssid, pass);}

在循環函數中使用if語句根據所處的模式執行不同的操作。

void loop() { Blynk.run(); if(masterSwitch == 0) { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB::Black; FastLED.show(); delay(30); } } if(autoMode == 0 && masterSwitch == 1) { for (int i = 0; i < NUM_LEDS; i++){ leds[i] = CRGB(r, g, b); FastLED.show(); delay(30); } } if(autoMode == 1 && masterSwitch == 1) { fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20) { gHue++; // slowly cycle the "base color" through the rainbow } }}

現在,使用BLYNK\u WRITE函數根據您在BLYNK應用程序中選擇的內容更改這些變量:

//---Master On/Off---BLYNK_WRITE(V0) { masterSwitch = param.asInt();}//--- Red slider value---BLYNK_WRITE(V1) { r = param.asInt();}//--- Green slider value---BLYNK_WRITE(V2) { g = param.asInt();}//--- Blue slider value---BLYNK_WRITE(V3) { b = param.asInt(); }//--- Toggle Auto/Manual Mode ---BLYNK_WRITE(V4) { autoMode = param.asInt();}

最後,做一個函數,讓一系列重複的紅燈作為你的電子郵件通知。這是設計為觸發無論發生什麼事情,這意味著你總是會得到通知,即使燈目前關閉。

//---Email notification light---BLYNK_WRITE(V5) { int g = param.asInt(); if(g == 1) { for(int a = 0; a < 10 ; a++) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10); } } }}

一旦你有了完整的代碼,使用開關/斷路器將NodeMCU與電路隔離,並通過USB將其**。把草圖上傳到黑板上。上傳後,斷開USB電纜,然後連接5v電源。如果一切正常,LED條應在自動模式下啟動,這是FastLED的填充彩虹模式。您可以使用test按鈕測試通知信號。

testing led lights

正如你在這裡看到的,我把我的LED燈大致放在箱子的側面,這樣我就知道我需要多少個。在我的情況下是44,雖然我使用一個迷你塔,所以你可以使用更多。一定要考慮到你使用的發光二極管的功率消耗,以及你的電腦能提供多少電源。

配置ifttt

我們將使用IFTTT的Gmail集成來觸發我們的通知序列。如果你以前從未使用過IFTTT,那麼你會驚奇地發現,你可以通過大量的方式來自動化你最喜歡的web應用程序。

設置新的小程序。對於“This”,從Gmail頻道選擇收件箱中的任**郵件。對於“That”,選擇Maker Webhooks併發出web請求。

URL部分是我們調用通知pin的地方。您需要修改URL才能使用您的項目。格式為http://BlynkIpAddress/YourAuthCode/pin/V5。您可以通過鍵入ping Blynk找到Blynk ip-雲計算在命令提示符下。

ifttt url

選擇PUT作為方法,選擇application/json作為內容類型。最後,將[“1”]添加到Body部分,然後單擊Create Action。

現在,每當一封電子郵件到達與IFTTT相關的Gmail地址的收件箱時,它都會向Blynk服務器上的虛擬pin5發送一條“1”消息,這將觸發我們的通知。試著給自己發封郵件測試一下。耐心點,如果需要時間的話!

你現在可以擺脫測試按鈕在你的Blynk應用程序如果你願意。

把它們放在一起

現在我們已經測試了所有的東西,是時候完成並安裝我們的硬件了。將項目從試驗板移到原型板上。如果你是新的焊接和正在尋找一些提示,看看我們的焊接指南。

在將莫仕連接器連接到電路板之前,請注意要使用的引腳。從您的電腦電源引出的公連接器將有四根電纜。兩條黑色電纜為公共接地電纜,黃色電纜為+12v,紅色電纜為+5v。請確保將陰連接器的相應針腳連接到板上。我選擇只附加兩個引腳,以避免意外炸我的董事會和發光二極管!

molex

我決定在我的主板和LED之間連接杜邦電纜,這樣電腦機箱的側面仍然可以完全卸下,而不必卸下proto主板。我建議把你的LED燈放在箱子上,首先用膠帶把它們固定好,只是為了檢查它們在關上的時候是否適合放在箱子裡。

注:當你焊接你的LED帶在一起,數據線需要在同一個方向流動。這將在條帶上標明。

solder led strips

最後,將你的原型板安裝在你的PC塔內。由於這是我的臨時建設,我選擇絕緣板的背面,並拉鍊綁在我的案件的背面。無論您決定如何連接電路板,請注意不要造成任何短路,並小心內部組件上的靜電造成的危險。

開明的

enlightened led lighting complete

一切正常,你應該有一個功能齊全的Wi-Fi操作燈與自動電子郵件通知。現在你有了這個系統,你可以使用主板上的kill開關,通過USB安全地**NodeMCU並更改代碼。您可以嘗試添加另一個與IFTTT集成的通知(例如,Twitter或Facebook上的藍色指示燈),或者嘗試在FastLED庫中使用自定義設置,使您的指示燈有一點移動。

你在你的電腦塔裡安裝了發光二極管嗎?你為他們設置了什麼很棒的自動化系統嗎?讓我們知道你的項目和計劃在下面的評論部分!

圖片來源:大衛·布朗/Flickr

  • 發表於 2021-03-14 05:31
  • 閱讀 ( 55 )
  • 分類:DIY

你可能感興趣的文章

5個智慧家庭辦公室創意,簡化您的日常生活

... 當你進入辦公室時,使用運動檢測開啟你的燈和電腦。 當辦公室裡沒有人時,使用運動檢測關閉燈光。 當有人到家時,使用家庭**的位置接收“潛在中斷”簡訊通...

  • 發佈於 2021-03-11 16:17
  • 閲讀 ( 96 )

6個最佳arduino替代微控制器

... 1nodemcu:廉價的arduino替代品 ...

  • 發佈於 2021-03-11 16:53
  • 閲讀 ( 72 )

這些diy聖誕電子產品專案的成本都不到5美元

...降低此構建成本的一種方法是去掉Arduino和Wi-Fi遮蔽,改用NodeMCU,因為它與Arduino IDE相容,並且內建Wi-Fi連線。 ...

  • 發佈於 2021-03-12 02:23
  • 閲讀 ( 77 )

智慧照明決戰:藍芽智慧vs wi-fi vs zigbee

... 顧名思義,Bluetooth Smart使用很少的能量,工作在2.4GHz ISM頻段。因此,它具有短連線時間和高資料速率。從那裡,它進入“睡眠模式”,直到重新建立連線,因此它很少使用電源。 ...

  • 發佈於 2021-03-13 09:40
  • 閲讀 ( 53 )

5個實用的方法,讓你的生活更輕鬆自動化你的家

... 越來越多的人轉向網狀網路來解決這類問題。使用網狀網路,您可以將一個單獨的路由器連線到調變解調器,然後在家中新增自我配置的無線電或節點。這樣一來,你就更有可能在每個角落都有無處不在的Wi-Fi覆蓋。 ...

  • 發佈於 2021-03-13 11:26
  • 閲讀 ( 60 )

在下一個專案中不使用正版arduino的5個理由

...廣泛應用,但在大多數情況下,它很容易被取代。我們是NodeMCU董事會的忠實粉絲,這是有充分理由的。 ...

  • 發佈於 2021-03-13 19:08
  • 閲讀 ( 48 )

飛利浦色調還是利福?為你的家挑選最好的智慧燈泡

...芽比Wi-Fi需要更少的功率,但它的範圍非常有限。此外,使用藍芽連線的裝置數量也有限制。 ...

  • 發佈於 2021-03-14 16:31
  • 閲讀 ( 55 )

用這些arduino專案像個怪人一樣控制你的燈光

...宜的,相容Arduino的,內建Wi-Fi功能的呢?我們已經涵蓋了NodeMCU(ESP8266)董事會之前,它是我們的許多專案堅定的最愛。 ...

  • 發佈於 2021-03-15 06:56
  • 閲讀 ( 55 )

如何開啟或關閉燈與你的手機上的便宜

... 智慧照明解決方案透過使用自動控制提供能效。這些產品通常會根據佔用率、日光可用性或其他條件進行照明調整。 ...

  • 發佈於 2021-03-16 08:07
  • 閲讀 ( 53 )

blynk入門:簡單的diy物聯網裝置

...詳細介紹Blynk是什麼,它是如何工作的,並提供兩個關於NodeMCU和Raspberry Pi開發板服務不同用途的簡短示例專案。 ...

  • 發佈於 2021-03-16 11:06
  • 閲讀 ( 62 )