背景
你是否有過曾經試圖在晚上安靜地起床,結果卻被什么東西絆倒,結果把整個房子的人都吵醒了的經歷?小心地安裝在床下的運動感應夜燈可提供足夠明亮的低光,引導您繞過那些散落的樂高積木;同時又足夠暗,因此不會使你在熟睡的時候醒來。除了感應運動外,還可以在固定(或不確定)的時間長度內將燈光編程為您選擇的顏色。它們?yōu)槿魏闻P室增添了涼爽的光芒和氛圍。使用一些基本套件、一些額外的部件,你可以在幾個小時內相對輕松地安裝這些燈。
第 1 步:測量床
將床翻轉到一側,以便輕松夠到底座。為控制箱找一個合適的位置,我們選擇了靠近床頭的稍高的區(qū)域(見圖)。測量床的周長及其長度和寬度(見圖)。記下您的測量值。確定三個傳感器的位置。您需要一個面向不靠墻的床的三個側面中的每一個。我們選擇了靠近床邊但不可見的位置。測量傳感器位置到控制箱的距離。
第 2 步:剪斷電線和 LED 燈條
將 LED 燈條剪到床圍的長度。接下來,剪斷電線:每個傳感器需要三個,LED 燈條需要三個,每個都通向控制箱 - 總共 12 個。取三段不同顏色的線,切成合適的尺寸。我們使用了黃色、綠色和橙色——公認的慣例是紅色代表電源,黑色代表接地,另一種(粗體)顏色代表信號。
第 3 步:將電纜焊接到運動傳感器
我們將運動傳感器安裝在 3D 打印的外殼中。這步并不是必要的,但可以讓傳感器更整潔一點,并且更容易放在床底。如果您使用的是 3D 打印的外殼,請先將三根不同顏色的電線穿過蓋子。運動傳感器具有三個不同的引腳:接地 (GND)、電源 (VCC) 和信號 (S)。當如圖所示握住傳感器時(即,引腳位于模塊底部邊緣),將三種不同顏色的電線連接到各自的引腳并將它們焊接到位。然后,使用熱收縮覆蓋電線。對三個傳感器中的每一個切割的電線重復此操作。之后,將運動傳感器的圓頂推入主外殼上的孔。
第 4 步:連接 LED 燈條
LED 燈條具有三個相同的連接:電源、信號和接地 - 除了信號引腳是輸入。這些 LED 接收來自 Arduino 的指令,每一個都是可尋址的。我們可以改變顏色(RGB)和亮度。將三根彩色電線焊接到 LED 燈條上,這些將用于稍后連接到 Arduino。
第 5 步:電源開關
如果您使用的是 3D 打印控制箱,則需要安裝電源開關并將其連接到電線上。首先,確保插頭末端沒有任何東西,如果有,請將其切斷。將電線穿過盒子前面的孔,然后再次穿過緊挨著它的開關的孔。剝去 AC 線的外殼,以便可以看到 10 厘米的三根內線(火線、零線和接地線)。然后,剪掉 8 厘米長的火線(紅色)和零線(藍色)線,留待以后使用。使用交流插頭線末端的剩余 2 厘米,將火線(紅色)和零線(藍色)焊接到底部兩個插腳的開關上(如圖所示)。下一個,將您之前剪下的 8 厘米長的火線(紅色)和零線(藍色)線焊接到開關頂部的兩個插腳上(如圖所示) - 這些線將連接到控制器內的電源盒盒子。首先拉出電線,將開關推入盒子中的孔中。
第 6 步:連接電源
將電源放入盒子中,使接線點朝向開關。將開關的火線(紅色)和零線(藍色)連接到電源上的火線和零線連接點(分別標記為 l 和 n)。電源上的連接點是螺釘,一旦電線就位,請確保這些連接點擰緊。
第 7 步:連接 Arduino
電源具有 5V 和接地的輸出連接(見圖)。拿起 Arduino 并剪下大約 8 厘米長的電源線(通常為紅色)。通過將電源線的一端擰入“5V”連接點并將另一端焊接到 Arduino 上的“VIn”,將 Arduino 連接到電源。使用接地線(黑色或您選擇的任何顏色)重復此過程,連接電源和 Arduino 上的“GND”。
第 8 步:將 LED 燈條連接到電源和 Arduino
將 LED 燈條的電線穿過盒子中剩余的空孔。剝去 LED 燈條的電源線和地線。將電源(紅色)線連接到電源的“5V”連接點(Arduino 已連接到此),將接地(黑色)線連接到電源“GND”連接點(Arduino 已連接到此,也)。將 LED 燈條的信號線焊接到 Arduino 的數字引腳 9。
第 9 步:將運動傳感器連接到 Arduino
將運動傳感器的電線(總共 9 條)穿過 LED 燈條電線所在的孔。將三根電源線焊接到 Arduino 的 +5V,將地線焊接到 Arduino 的地線,并將各個信號線焊接到 Arduino 引腳 10、11 和 12。
第 10 步:對 Arduino 進行編程
使用“motion_sensing_lights.ino”的代碼。然后使用 Arduino 軟件,將代碼上傳到您的 Arduino 模塊。代碼非常簡單:它會不斷檢查運動傳感器是否輸出信號,如果是,則啟動計時器并打開 LED 燈條以發(fā)光,保持亮著一分鐘,然后發(fā)光下來。
第 11 步:模擬
關閉控制箱 - 它外面唯一的東西應該是 LED 燈條和交流插頭。將盒子貼在您選擇的位置的床底 - 我們使用強力雙面膠帶做到這一點。然后,使用雙面膠帶將運動傳感器連接到床底。運動傳感器應沿著床的三個側面朝外,而不是沿著墻壁。接下來,將 LED 燈條安裝在床的周圍。雖然 LED 燈條有一個粘性背面,但這不足以支撐它的重量。因此,我們使用塑料線夾將其固定在床底。插上電源并打開控制箱,然后將床正確向上轉動。
第 12 步:調整、測試和實戰(zhàn)
測試您的運動感應床下照明。您可以通過將螺絲刀穿過外殼頂部的孔并扭轉靈敏度電阻來調整運動傳感器的靈敏度。
第 13 步:更進一步(可能的擴展)
使用 ESP8266 模塊而不是 Arduino,可以通過將 LED 燈條鏈接到開源家庭自動化平臺Home Assistant來用手機或 Alexa 控制 LED 燈條。
Motion Sensing LEDs:
/*
? ?T3chFlicks - Motion Sensing Under Bed Lighting
? ?Free to use and distribute.
? ?Find the tutorial and parts list at https://t3chflicks.com/shop/kit/motion-sensing-under-bed-lights/
*/
#include "FastLED.h"
#define LED_DATA_PIN 9
#define NUM_LEDS 250
CRGB leds[NUM_LEDS];
int onTime = 30*1000; // 30 seconds
int motion_sensor_left = 10;
int motion_sensor_right = 11;
int motion_sensor_front = 12;
int fadeTimeDiff = 50;
void setup() {
? FastLED.addLeds
? pinMode(motion_sensor_left, INPUT);
? pinMode(motion_sensor_right, INPUT);
? pinMode(motion_sensor_front, INPUT);
}
void loop() {
? if (digitalRead(motion_sensor_left) == 1 || digitalRead(motion_sensor_right) == 1 || digitalRead(motion_sensor_front) == 1) {
? ? fadeIn();
? ? delay(onTime);
? ? fadeOut();
? }
}
void fadeIn() {
? for (int led = 0; led < NUM_LEDS; led++) {
? ? leds[led] = CRGB( 150, 60, 15);
? }
? for (int b = 0; b < 255; b += 2) {
? ? FastLED.setBrightness(b);
? ? FastLED.show();
? ? delay(fadeTimeDiff);
? }
}
void fadeOut() {
? for (int led = 0; led < NUM_LEDS; led++) {
? ? leds[led] = CRGB( 150, 60, 15);
? }
? for (int b = 255; b > 0; b -= 2) {
? ? FastLED.setBrightness(b);
? ? FastLED.show();
? ? delay(fadeTimeDiff);
? }
? for (int led = 0; led < NUM_LEDS; led++) {
? ? leds[led] = CRGB::Black;
? }
? FastLED.show();
}
}
for (int led = 0; led 《 NUM_LEDS; led++) {
leds[led] = CRGB::Black;
}
FastLED.show();
}
評論