Interrupteur lumineux sans fil intelligent : Manipulateur d'interrupteur piloté par Arduino
Composants et fournitures
| Arduino UNO | ×2 (1 maître + 1 esclave) |
| Servomoteur Tower Pro MG996R | ×1 |
| Modules RF 433 MHz (émetteur + récepteur) | ×1 paire |
Outils et machines nécessaires
- Imprimante 3D (support servo mural)
Applications et services en ligne
- Arduino IDE
À propos du projet
Idée
Ne plus avoir à se lever pour éteindre la lumière une fois au lit. Cette solution actionne physiquement l'interrupteur mural via un servo, commandé à distance par liaison radio 433 MHz. Utile aussi pour : enfants trop petits, personnes à mobilité réduite.
Le projet
Basé sur la communication entre deux modules 433 MHz (un émetteur sur la télécommande, un récepteur sur l'actionneur). La fiabilité RF peut varier : si instable, ajustez les seuils dans Slave_Servo.ino :
const unsigned int upperThreshold = 70;
const unsigned int lowerThreshold = 50;
Master_Remote.ino→ Arduino + émetteur + boutonSlave_Servo.ino→ Arduino + récepteur + servo
Câblage
Simple : bouton sur Arduino maître + émetteur ; servo sur Arduino esclave + récepteur. Schémas fournis en section schémas.
Fixation murale (impression 3D)
Le support de servo se colle sur l'interrupteur (bandes Command ou velcro – évitez la colle forte). Conçu sous OpenSCAD (mhacks_lightswitchv4.stl), le trou de passage du levier est paramétrable pour s'adapter à votre interrupteur.
Projet final
Présenté au hackathon MHacks. Pour installation permanente : boîtier Arduino imprimé 3D + breadboard, fixés au mur (bandes Command).
Évolutions futures
- Remplacer les 2 Arduinos par un seul ESP8266/ESP32 (WiFi/BLE).
- Cacher le servo dans un cache-interrupteur design.
- Intégration commande vocale (Alexa/Google Home).
Code
Slave_Servo.ino (Arduino esclave + récepteur + servo)
#define rfReceivePin A0
#define ledPin 13
#include
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);
servo.write(0); // Position OFF
}
if (data > lowerThreshold) {
digitalWrite(ledPin, HIGH);
servo.write(90); // Position ON
}
}
Master_Remote.ino (Arduino maître + émetteur + bouton)
#define rfTransmitPin 4
#define buttonPin 2
#define led 13
void setup() {
pinMode(rfTransmitPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
int 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");
}
}
Pièces personnalisées
- Fichier OpenSCAD :
mhacks_lightswitch_hpXQkie6X4.scad(paramétrable) - STL prêt à imprimer :
mhacks_lightswitchv4.stl - Boîtier Arduino : modèle Thingiverse recommandé
Schémas
Deux schémas : câblage maître (bouton + émetteur 433 MHz) et esclave (récepteur 433 MHz + servo + LED). Disponibles en section schémas.
Processus de fabrication
- Créer un système Ambilight spectaculaire pour moniteur avec Arduino
- Transfert de données magnétique sans fil Arduino + capteur 3D Infineon TLE493D
- Créer un jeu Pong classique sur Arduino UNO avec écran OLED – Tutoriel étape par étape
- Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
- Construisez votre propre Tamagotchi Arduino : Un animal de compagnie numérique DIY
- Adaptateurs MIDI USB-BLE sans fil – Connectivité transparente pour musiciens
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
- Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun