====== Liaison Sans Fil avec module 433 MHz ======
* Nous utiliserons : http://arduinobasics.blogspot.fr/2014/06/433-mhz-rf-module-with-arduino-tutorial.html
== Bibliothèques sans fil interessantes : ==
* https://github.com/sui77/rc-switch
* https://github.com/ninjablocks/433Utils
* http://www.airspayce.com/mikem/arduino/RadioHead/ (supporte plein de protocoles, un peu lourde pour arduino UNO)
* http://www.airspayce.com/mikem/arduino/VirtualWire/ (la plus simple pour une UNO)
== Tutorial de montage ==
* https://www.carnetdumaker.net/articles/communiquer-sans-fil-en-433mhz-avec-la-bibliotheque-virtualwire-et-une-carte-arduino-genuino/
== Sketch réception ==
/**
* Exemple de code pour la bibliothèque VirtualWire – Serveur d'envoi de texte
*/
#include
void setup() {
Serial.begin(9600);
// Initialisation de la bibliothèque VirtualWire
// Vous pouvez changez les broches RX/TX/PTT avant vw_setup() si nécessaire
vw_setup(2000);
vw_rx_start(); // On peut maintenant recevoir des messages
Serial.println("Go !");
}
void loop() {
byte message[VW_MAX_MESSAGE_LEN];
byte taille_message = VW_MAX_MESSAGE_LEN;
// N.B. La constante VW_MAX_MESSAGE_LEN est fournie par la lib VirtualWire
/*
La variable "taille_message" doit impérativement être remise à
la taille du buffer avant de pouvoir recevoir un message.
Le plus simple est d'utiliser une variable locale pour ne pas
avoir à réassigner la valeur à chaque début de loop().
*/
// On attend de recevoir un message
vw_wait_rx();
if (vw_get_message(message, &taille_message)) {
// On copie le message, qu'il soit corrompu ou non
Serial.println((char*) message); // Affiche le message
}
}
== Sketch émission ==
/**
* Exemple de code pour la bibliothèque VirtualWire – Client d'envoi de texte
*/
#include
void setup() {
Serial.begin(9600);
// Initialisation de la bibliothèque VirtualWire
// Vous pouvez changez les broches RX/TX/PTT avant vw_setup() si nécessaire
vw_setup(2000);
Serial.println("Go !");
}
void loop() {
/*
byte message[VW_MAX_MESSAGE_LEN] = {'b','i','p',' ','b','i','p','!'};
// N.B. La constante VW_MAX_MESSAGE_LEN est fournie par la lib VirtualWire
// Lit un message de maximum 26 caractères depuis le port série
int len = Serial.readBytesUntil('\n', (char*) message, VW_MAX_MESSAGE_LEN - 1);
if (!len) {
return; // Pas de message
}
//int len = sizeof(message);
message[len] = '\0'; // Ferme la chaine de caractères
*/
vw_send("hello\0", 6); // On envoie le message
//vw_send(message, len + 1); // On envoie le message
vw_wait_tx(); // On attend la fin de l'envoi
//Serial.println("sending!" + message);
delay(300);
}