スマートワイヤレス照明スイッチコントローラー:Arduinoで物理スイッチを遠隔操作
部品と材料
| Arduino UNO ×2(送信側・受信側) |
| サーボモーター(Tower Pro MG996R) ×1 |
| 433MHz 送受信モジュール ×1セット |
必要な工具と機械
- 3Dプリンター(汎用)
アプリとオンラインサービス
- Arduino IDE
プロジェクトについて
アイデア
ベッドに入ってから電気を消すために起き上がるのが面倒……そんな経験はありませんか? 就寝前の読書後に手元で照明を消せる装置を作りました。さらに、以下のような用途にも応用できます。
- スイッチに手が届かない子供
- 身体の不自由な方
プロジェクト概要
433MHz RFモジュール同士の通信で制御します。通信が不安定な場合は、受信側(Slave_Servo.ino)の閾値を調整してください。
const unsigned int upperThreshold = 70; // 上限閾値
const unsigned int lowerThreshold = 50; // 下限閾値
Master_Remote.ino→ 送信側Arduino(ボタン+送信モジュール)Slave_Servo.ino→ 受信側Arduino(受信モジュール+サーボ)
配線
配線はシンプルです。添付画像と「回路図」を参照してください。

※ ボタンは送信側Arduino、サーボは受信側Arduinoに接続します。
壁面マウント
サーボを壁面スイッチに固定するマウントは3Dプリンターで出力します。OpenSCADで設計しているため、スイッチの形状に合わせて穴位置を調整可能です。mhacks_lightswitchv4.stlをまず出力してください。出力後、サーボを固定し、コマンドストリップ(粘着テープ)などでスイッチプレートに貼り付けます(強力接着剤は非推奨)。
完成品
オンラインハッカソン「MHacks」に提出した最終形態です。より恒久的にするなら、Arduinoケースとブレッドボードも壁面に固定すると良いでしょう。
今後の発展案
- ESP8266ベースのボードでWi-Fi制御化(2台のArduinoを1台に集約)
- サーボを内蔵したスマートスイッチプレートの設計
- Alexa対応で音声制御化
コード
Slave_Servo.ino(受信側・サーボ制御)
#define rfReceivePin A0 // RF受信ピン = アナログピン0
#define ledPin 13 // オンボードLED = デジタルピン13
#include <Servo.h>
Servo servo;
unsigned int data = 0;
const unsigned int upperThreshold = 70;
const unsigned int lowerThreshold = 50;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
servo.attach(9);
}
void loop() {
data = analogRead(rfReceivePin);
if (data < upperThreshold) {
digitalWrite(ledPin, LOW);
Serial.println(data);
servo.write(0); // スイッチOFF位置
}
if (data > lowerThreshold) {
digitalWrite(ledPin, HIGH);
Serial.println(data);
servo.write(90); // スイッチON位置
}
}
Master_Remote.ino(送信側・ボタン操作)
#define rfTransmitPin 4 // RF送信ピン = デジタルピン4
#define buttonPin 2
#define led 13
void setup() {
pinMode(rfTransmitPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
int buttonState = 0;
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(rfTransmitPin, HIGH);
digitalWrite(led, HIGH);
Serial.println("transmit");
delay(10);
} else {
digitalWrite(rfTransmitPin, LOW);
digitalWrite(led, LOW);
Serial.println("no");
}
}
CADファイル
mhacks_lightswitch_hpXQkie6X4.scad(OpenSCADソース)- Arduinoケース:Thingiverseで公開中
回路図


製造プロセス
- Arduinoで作るモニター用Ambilightシステム:没入感アップの自作ガイド
- ArduinoとInfineon 3D磁気センサーで作る無線磁気データ転送
- Arduino UNOとOLEDディスプレイでクラシックPongゲームを自作:ステップバイステップチュートリアル
- Arduinoオーディオ周波数検出器 – 高感度サウンドモジュールで最大音量ピークの周波数を測定
- Arduinoで作る自作デジタルペット「Tamaguino」─ 3Dプリンター製ケース付き完全ガイド
- USB-MIDI機器をBluetooth LEでiOSに無線接続 ─ Arduinoベースの3つのアダプター設計
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- Arduino Nanoで作るスマートな動体検知水鉄砲
- SparkFun 7セグメントディスプレイで作る信頼性の高いArduinoカウントダウンタイマー
- Arduino向日葵:太陽を追尾する電子ヒマワリの製作
- Arduinoで自作RCポルシェカー:ステップバイステップガイド