Bonjour,
Mon projet consiste à faire un système d'émission/réception radiofréquence avec un émetteur et un récepteur séparé, ce qui a été réussi, j’envoie une donnée et j'en reçois une sur le moniteur série d'Arduino. Mais l'autre partie est plus complexe, j'ai deux autres élèves dans mon groupe qui eux ont des sondes reliés a leurs cartes arduino (une pH et une température) et je dois récupérer leurs données et les mettre dans un tableur; je suis un peu perdu concernant cette partie.
Merci d'avance ! (ci-joint la partie que j'ai éffectué)
Edit :
La partie émetteur
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
const char *msg = "Arduino"; // Tableau qui contient notre message
void setup() // Fonction setup()
{
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
Serial.println("Emetteur"); // Petit message de bienvenue
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
}
void loop() // Fonction loop()
{
Serial.print("TX ... "); // On signale le début de l'envoi
vw_send((uint8_t *)msg, strlen(msg)); // On envoie le message
vw_wait_tx(); // On attend la fin de l'envoi
Serial.println("Done !"); // On signal la fin de l'envoi
delay(1000); // Et on attend 1s pour pas flooder
}
La partie Récepteur
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Tableau qui va contenir le message reçu (de taille maximum VW_MAX_MESSAGE_LEN)
uint8_t buflen = VW_MAX_MESSAGE_LEN; // Taille maximum de notre tableau
void setup() // Fonction setup()
{
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
Serial.println("Recepteur"); // Petit message de bienvenue
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
vw_rx_start(); // Activation de la partie réception de la librairie VirtualWire
}
void loop() // Fonction loop()
{
if (vw_wait_rx_max(200)) // Si un message est reçu dans les 200ms qui viennent
{
if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
{
Serial.print("RX : ");
for (byte i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
Serial.print((char)buf[i]);
Serial.println("");
}
}
}