Ce guide montre comment utiliser un Arduino pour décoder les signaux 433 MHz des télécommandes RF et les envoyer avec un Arduino et un émetteur 433 MHz pour contrôler à distance les prises des interrupteurs secteur.
Pourquoi décoder les signaux RF ?
J’ai essayé différentes méthodes de contrôle de la tension secteur, mais certaines méthodes nécessitent :
- Expérience avec la tension alternative
- Ouvrir des trous dans votre mur/plafond/interrupteurs
- Modification du tableau électrique
- Connaître les règles électriques de chaque pays
Il est difficile de trouver une solution qui soit sûre et qui fonctionne pour tout le monde. L’un des moyens les plus simples et les plus sûrs de contrôler à distance les appareils connectés au secteur consiste à utiliser des prises contrôlées par radiofréquence (RF). Pourquoi? L’utilisation de prises télécommandées présente 5 avantages :
- Assez bon marché
- Facile à avoir
- Fonctionne avec ESP8266 et Arduino
- Sûr à utiliser
- Fonctionne dans n’importe quel pays
Pièces requises
Pour ce tutoriel, vous avez besoin des pièces suivantes :
Noter: vous devez acheter des prises télécommandées qui fonctionnent à un RF de 433 MHz. Ils doivent indiquer le RF de fonctionnement soit sur la page du produit, soit sur l’étiquette.
Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !
Exemple
Voici à quoi ils ressemblent :
Réglage des canaux RF
J’ai réglé ma télécommande sur je position.
Les prises doivent être à la fois sur le je position. J’ai sélectionné des chaînes 3 et 4 pour les points de vente (vous pouvez utiliser n’importe quel canal que vous voulez).
Si vous les branchez sur une prise, vous devriez pouvoir contrôler les prises télécommandées avec votre télécommande.
Installation de la bibliothèque de commutateurs RC
La bibliothèque RC Switch offre un moyen simple d’utiliser votre ESP8266, ESP32 ou Arduino pour faire fonctionner des appareils radiocommandés à distance. Cela fonctionnera très probablement avec toutes les prises de courant populaires à faible coût.
- Cliquez ici pour télécharger la bibliothèque RC Switch. Vous devriez avoir un dossier .zip dans votre Téléchargements dossier
- Décompressez le dossier .zip et vous devriez obtenir dossier rc-switch-master
- Renommez votre dossier de
rc-switch-maîtreà rc_switch - Bouge le rc_switch dossier dans le dossier des bibliothèques d’installation de votre IDE Arduino
- Ensuite, rouvrez votre IDE Arduino
Ouverture de l’esquisse du décodeur
Vous devez décoder les signaux envoyés par votre télécommande, afin que l’Arduino ou l’ESP8266 puisse reproduire ces signaux et finalement contrôler les prises.
La bibliothèque est livrée avec plusieurs exemples de croquis. Dans le logiciel Arduino IDE, tu dois aller à Déposer > Exemples > Commutateur_RC > ReceiveDemo_Advanced. Cette esquisse suivante s’ouvre :
/*
Example for receiving
https://github.com/sui77/rc-switch/
If you want to visualize a telegram copy the raw data and
paste it into http://test.sui.li/oszi/
*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
}
void loop() {
if (mySwitch.available()) {
output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
}
}
Vous devez ouvrir l’exemple en utilisant Fichier > Exemples > RC_Switch > ReceiveDemo_Advanced, de sorte qu’il charge automatiquement aussi le sortir déposer.
Après avoir connecté une carte Arduino à votre ordinateur, suivez ces instructions :
- Allez à la Outils languette
- Sélectionner Arduino UNO Conseil
- Sélectionnez le COM Port
- appuyez sur la Télécharger bouton.
Décodeur – Schémas
Après avoir téléchargé le croquis, connectez un récepteur RF 433 MHz à la broche numérique 2 de votre carte Arduino UNO :
Décoder les signaux RF (codes)
Ouvrez le moniteur série Arduino IDE et commencez à appuyer sur les boutons. Comme le montre la vidéo de démonstration ci-dessous :
Après avoir appuyé une fois sur chaque bouton, vous pouvez voir le code binaire de chaque bouton (il est surligné en rouge) :
Enregistrez vos codes binaires pour chaque pression sur un bouton (vous pouvez également utiliser les codes décimaux ou tri-état) :
- Bouton 3 ON = (24Bit) Binaire : 000101010101000101010101
- Bouton 3 OFF = (24Bit) Binaire : 000101010101000101010100
- Bouton 4 ON = (24Bit) Binaire : 000101010101010001010101
- Bouton 4 OFF = (24Bit) Binaire : 000101010101010001010100
Enregistrez votre durée d’impulsion : 416 microsecondes et protocole : 1.
Envoyer les signaux RF (codes)
Vous devrez personnaliser le prochain croquis avec vos codes binaires, la durée d’impulsion et le protocole :
/*
Based on the SendDemo example from the RC Switch library
https://github.com/sui77/rc-switch/
*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
// Transmitter is connected to Arduino Pin #10
mySwitch.enableTransmit(10);
// Optional set pulse length.
mySwitch.setPulseLength(REPLACE_WITH_YOUR_PULSE_LENGTH);
// Optional set protocol (default is 1, will work for most outlets)
mySwitch.setProtocol(REPLACE_WITH_YOUR_PROTOCOL);
// Optional set number of transmission repetitions.
// mySwitch.setRepeatTransmit(15);
}
void loop() {
// Binary code - button 3
mySwitch.send("000101010101000101010101");
delay(1000);
mySwitch.send("000101010101000101010100");
delay(1000);
// Binary code - button 4
mySwitch.send("000101010101010001010101");
delay(1000);
mySwitch.send("000101010101010001010100");
delay(1000);
}
Dans mon cas, la longueur d’impulsion et le protocole ressemblent à ceci :
// Optional set pulse length. mySwitch.setPulseLength(416); // Optional set protocol (default is 1, will work for most outlets) mySwitch.setProtocol(1);
Voici un exemple d’expéditeur binaire (vous devez remplacer par vos propres codes binaires) :
mySwitch.send("000101010101000101010101");
Schémas de l’expéditeur
Après avoir téléchargé le croquis sur votre carte Arduino, assemblez ce circuit :
Vos deux prises doivent s’allumer et s’éteindre en permanence.
Conclusion
J’espère que vous avez trouvé ce guide utile. Si vous aimez cet article, vous aimerez probablement mes prochains, alors assurez-vous de vous abonner au blog RNT.
Vous pouvez utiliser les concepts appris dans ce tutoriel avec votre ESP8266 ou ESP32.
Merci d’avoir lu.