モーションセンサー搭載ベッド下LEDライト:静かでスマートな夜間照明
必要な部品と材料
| 部品 | 数量 |
|---|---|
| 電源(5V 6A) | 1 |
| WS2812B LEDストリップ | 1 |
| ワイヤークリップ | 1 |
| モーションセンサー(PIR) | 3 |
| ロッカースイッチ | 1 |
| ACプラグ | 1 |
| 電線 | 1式 |
| Arduino Nano R3 | 1 |
必要な工具と機器
- はんだごて
- ハンマー
- 3Dプリンター(センサーケースとコントロールボックス用)
使用するアプリとオンラインサービス
- Arduino IDE
プロジェクト概要
夜中にベッドから静かに起きようとして、物につまずいて家族を起こしてしまった経験はありませんか? ベッド下に目立たないように設置したモーションセンサー付きナイトライトなら、床に散らばったレゴブロックを避けるのに十分な明るさで足元を照らしつつ、眠りを妨げない程度の柔らかな光を提供します。動きを検知するだけでなく、好きな色で一定時間(または無制限に)点灯するようプログラムすることも可能です。どんな寝室にもクールな光と雰囲気をプラスします。基本的なキットと少しの追加パーツ、T3ch Flicksのチュートリアルと動画があれば、数時間で比較的簡単に設置できます。
製作手順
ステップ1:ベッドの採寸
ベッドを横倒しにしてフレーム底面にアクセスできるようにします。コントロールボックスの設置場所を決めます(ヘッドボード側の少し高くなっている部分がおすすめ)。ベッドの外周長、長さ、幅を測り、メモします。3つのセンサーの取り付け位置を決めます。壁に接していない3辺のそれぞれに1つずつ、ベッドの縁近くでかつ目立たない場所を選びます。各センサー位置からコントロールボックスまでの距離を測ります。

ステップ2:電線とLEDストリップのカット
LEDストリップをベッドの外周長に合わせてカットします。次に電線をカットします。センサー1つにつき3本、LEDストリップ用に3本、すべてコントロールボックスまで伸ばすので合計12本必要です。色分けされた3色の電線を適切な長さに切ります(例:黄・緑・橙)。一般的に赤を電源、黒をグラウンド、もう1色を信号線としますが、自分で管理できればどの色でも構いません。
ステップ3:モーションセンサーへの配線とはんだ付け
モーションセンサーは3Dプリントしたケースに収めます(ファイルリンクは後述)。必須ではありませんが、センサーをすっきりベッド底面に固定するのに役立ちます。ケースを使う場合、蓋の穴から3色の電線を通します。センサーにはGND、VCC、S(信号)の3ピンがあります。ピンが下向きになるように持ったら、それぞれの色線を対応するピンにはんだ付けし、熱収縮チューブで絶縁します。これを3センサー分繰り返します。センサーのドーム部分をケースの穴から押し込みカチッとはめ、蓋を閉めて背面の穴から3色の線を出します。



ステップ4:LEDストリップの配線
LEDストリップにも電源、信号、グラウンドの3接点があります(信号は入力)。各LEDはArduinoから個別に制御可能で、色(RGB)と明るさを変えられます。LEDストリップに3色の電線をはんだ付けし、後でArduinoに接続します。

ステップ5:電源スイッチの取り付け
3Dプリントしたコントロールボックスを使う場合、電源スイッチを取り付けて配線します。ACプラグの先端に何かあれば切り落とします。ボックス前面の穴から電線を通し、すぐ隣のスイッチ用の穴から再び出します。ACコードの外皮を剥き、内部の3芯線(赤:ライブ、青:ニュートラル、アース)を10cm露出させます。ライブ線(赤)とニュートラル線(青)を8cm切り取って後で使うために取っておきます。残り2cmの端をスイッチの下側2つの端子にはんだ付けします。先に切っておいた8cmの赤・青線をスイッチの上側2端子にはんだ付けします(これらはボックス内の電源ユニットに繋ぎます)。電線を引きながらスイッチをボックスの穴にはめ込みます。


ステップ6:電源ユニットの接続
電源ユニットをボックス内に入れ、接続端子がスイッチ側を向くようにします。スイッチからのライブ線(赤)とニュートラル線(青)を、電源ユニットの「L」と「N」端子にそれぞれ接続し、ネジをしっかり締めます。

ステップ7:Arduinoの接続
電源ユニットの出力側(5VとGND)を使います。約8cmの電源線(慣例的に赤)を用意し、一方を電源ユニットの「5V」端子にネジ止め、もう一方をArduinoの「Vin」にはんだ付けします。同様にグラウンド線(黒)で電源ユニットの「GND」とArduinoの「GND」を接続します。


ステップ8:LEDストリップを電源とArduinoに接続
LEDストリップの電線をボックスの残りの穴から通します。電源線(赤)を電源ユニットの「5V」端子に(Arduinoと共用)、グラウンド線(黒)を「GND」端子に(Arduinoと共用)接続します。信号線をArduinoのデジタルピン9にはんだ付けします。
ステップ9:モーションセンサーをArduinoに接続
3つのセンサーの電線(計9本)をLEDストリップと同じ穴から通します。3本の電源線をArduinoの5Vピンに、3本のグラウンド線をGNDピンに、3本の信号線をそれぞれピン10、11、12にはんだ付けします。
ステップ10:Arduinoへのプログラム書き込み
以下のコード(motion_sensing_lights.ino)をダウンロードし、Arduino IDEでArduino Nanoに書き込みます。やり方が不明な場合はこちらを参照してください。コードは単純で、3つのモーションセンサーのいずれかが信号を出力したらタイマーを開始し、LEDストリップをフェードインさせ、1分間点灯した後フェードアウトさせます。
ステップ11:ベッドへの取り付け
コントロールボックスを閉じます(外に出るのはLEDストリップとACプラグのみ)。強力な両面テープでボックスをベッド底面の決めた位置に固定します。モーションセンサーも両面テープでベッド底面に貼り付け、壁に接していない3辺の外側を向くようにします。LEDストリップをベッドの周囲に沿って取り付けます。ストリップ裏の粘着テープだけでは重みで剥がれるため、付属のプラスチックワイヤークリップをハンマーでベッド底面に打ち込んで固定します。ACプラグを差し込みスイッチを入れ、ベッドを元の向きに戻します。


ステップ12:調整・テスト・鑑賞
モーションセンサーの感度は、ケース上部の穴からドライバーを差し込み、感度調整用の可変抵抗を回すことで調整できます。

ステップ13:さらに発展させるには
Arduinoの代わりにESP8266モジュールを使えば、スマホやAlexaからLEDストリップを制御できるようになります。オープンソースのホームオートメーションプラットフォーム「Home Assistant」と連携すれば可能です。詳しいチュートリアルはこちらで公開されています。

ステップ14:自作が面倒な方へ
同様の製品はすでに市販されており、Amazonで購入可能です。でも、自分で作る楽しさは味わえませんよね!
ソースコード
/* T3chFlicks - Motion Sensing Under Bed Lighting
* Free to use and distribute.
* Tutorial & parts list: 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秒
int motion_sensor_left = 10;
int motion_sensor_right = 11;
int motion_sensor_front = 12;
int fadeTimeDiff = 50;
void setup() {
FastLED.addLeds(leds, NUM_LEDS);
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();
}
回路図

製造プロセス
- ティアラの芸術と職人技:歴史、素材、現代デザイン
- ベッドシーツ完全ガイド:歴史、素材、現代製造
- ホリデーライトの進化と職人技:古代伝統から現代エンジニアリングへ
- 有刺鉄線:歴史、構造、現代の用途
- 集積回路(IC):現代エレクトロニクスを支える微小強力チップ
- Raspberry PiでPIRモーションセンサーとLEDを制御
- 都市環境における自律走行車のリアルタイムモーションプランニング:縮小プロトタイプ研究
- Leap Motionで操作するレーザー戦車の製作 – Arduino、Raspberry Pi、RGB LED
- MotionSense: ArduinoとESP8266で作るスマート侵入検知システム
- Arduino MKRバンドルで作るセキュアIoTパズルボックス:ステップバイステップガイド
- MOSMusicプロジェクトキット: MOSFET、Arduinoで音楽同期照明制御