Intelligenter kabelloser Lichtschalter-Controller: Arduino-basierter Fernschalter-Manipulator
Komponenten und Zubehör
| Arduino UNO | 2 |
| Servo (Tower Pro MG996R) | 1 |
| 433 MHz Sende- und Empfangsmodul | 1 |
Notwendige Werkzeuge und Maschinen
- 3D-Drucker (generisch)
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Idee
Ich stehe nicht gerne auf, sobald ich mich entschieden habe, einzuschlafen. Manchmal möchte ich noch etwas lesen und brauche Licht. Also baute ich diesen Lichtschalter-Manipulator.
Ich erkannte, dass dies weitere Anwendungen hat:
- Kinder, die zu klein sind, um den Schalter zu erreichen
- Menschen mit eingeschränkter Mobilität
Das Projekt
Basiert weitgehend auf 433 MHz RF-Modulen, die miteinander kommunizieren. Das kann manchmal knifflig sein. Falls der Code nicht gut funktioniert, versuchen Sie, diese Werte in Slave_servo.ino anzupassen:
const unsigned int upperThreshold = 70; // oberer Schwellenwert
const unsigned int lowerThreshold = 50; // unterer Schwellenwert
Master_Remote.ino→ Arduino mit SenderSlave_Servo.ino→ Arduino mit Empfänger
Verkabelung
Die Verkabelung ist einfach – nutzen Sie die Bilder unter „Schaltpläne“ und diesen Link:
Hinweis: Der Taster kommt zum Arduino mit Sender, der Servo zum Arduino mit Empfänger.
Wandmontage
Für die Servo-Halterung an der Wand benötigen Sie einen 3D-Drucker. Das Modell wurde in OpenSCAD erstellt – Sie müssen eventuell die Lochposition anpassen. Die OpenSCAD-Datei ist enthalten, um Lochparameter zu modifizieren. Drucken Sie zunächst mhacks_lightswitchv4.stl.
Nach dem Druck: Servo einsetzen und Halterung am Schalter befestigen (z. B. Command Strips; Superkleber nicht empfohlen, falls man es später entfernen möchte).
Endprojekt
Hier ist das finale Projekt (eingereicht für den Online-Hackathon „Mhacks“).
Für eine dauerhaftere Installation: Arduino-Gehäuse drucken (z. B. dieses Thingiverse-Modell). Gehäuse und Breadboard mit Command Strips an der Wand montieren.
Zukünftige Entwicklungen
- ESP8266-basiertes Board statt 2 Arduinos für Servo-Steuerung
- Lichtschalter-Abdeckung, die Servo eleganter integriert
- Alexa-Integration für Sprachsteuerung
Code
Slave_Servo.ino (Arduino)
#define rfReceivePin A0
#define ledPin 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);
}
if (data > lowerThreshold) {
digitalWrite(ledPin, HIGH);
Serial.println(data);
servo.write(90);
}
}
Master_Remote.ino (Arduino)
#define rfTransmitPin 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-Dateien
mhacks_lightswitch_hpXQkie6X4.scad
Arduino-Gehäuse
CAD-Datei auf thingiverse.com
Schaltpläne
Herstellungsprozess
- Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
- Kabellose Datenübertragung per Magnetfeld: Arduino & Infineon 3D-Sensor (TLE493D)
- Klassisches Pong-Spiel auf Arduino UNO mit OLED-Display bauen – Schritt-für-Schritt-Tutorial
- Arduino Audio-Frequenz-Detektor – Lauteste Schallpeaks mit hochsensiblem Modul messen
- Selbstbau-Tamagotchi: Digitales Haustier mit Arduino
- USB-BLE MIDI-Adapter – Kabellose Verbindung für Musiker
- Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
- Intelligente, bewegungsaktivierte Wasserpistole mit Arduino Nano
- Zuverlässigen Arduino-Countdown-Timer mit SparkFun 7-Segment-Display bauen
- Arduino-Sonnenblume: Elektronischer Sonnen-Tracker selbst bauen