Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser ;)

En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.

Topic "Transmettre et recevoir en 433MHz (en rapport avec le tuto "Communiquer sans fil en 433MHz avec la bibliothèque VirtualWire et une carte Arduino / Genuino")"

Flux RSS des posts récents dans ce topic ( Flux Atom)


Pas de photo de profil

Rayane

Membre

#626 | Signaler ce message


Bonjour,

je voulais savoir si quelqu'un pourrait m'aider pour la partie transmission de mon projet qui consiste à afficher sur un écran LCD une température, l'heure en temps réelle, et la l'état du chauffage (marche ou arrêt) dans un système domotique, et d'afficher en plus sur une page HTML la température en temps réelle. (Une carte que j'ai réaliser moi même permet l'affichage LCD et l'envoie de la température grâce à un émetteur 433MHz sur un système composée d'une carte Arduino Uno et Shield ethernet et du coup elle même branchée sur un récepteur 433MHz, et qui transmet ensuite l'info sur la page HTML)

Mais voilà pour la partie transmission de la température je galère à envoyer une variable float par émission en 433MHz même après avoir étudié le tuto de skywodd: https://www.carnetdumaker.net/articles/communiquer-sans-fil-en-433mhz-avec-la-bibliotheque-virtualwire-et-une-carte-arduino-genuino/

Voici mon code qui pour l'instant bien-sûr ne fonctionne pas à la réception:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <VirtualWire.h>
int tempSensorPin = A0;


void setup()                                      // Fonction setup()
{
  vw_setup(2000);                                 // initialisation de la bibliothèque VirtualWire à 2000 bauds
  vw_set_tx_pin(12);                               // broche utilisée pour transmettre les données
}



void loop()
{
  float val_celsus = ((5.0 * analogRead(tempSensorPin) * 100.0) /1024);
  vw_send((byte *) &val_celsus, sizeof(float));                                // On envoie le message
  vw_wait_tx();                                                                // On attend la fin de l'envoi
}

Si vous êtes un peu bidouilleur sur arduino (1.8.1) sa serai vraiment sympas de m'éclairer sur le sujet merci d'avance :)

Derniére modification le par Rayane


Photo de profil de skywodd

skywodd

Membre

Membre du staff

#630 | Signaler ce message


Bonjour,

Je ne vois pas d'erreur dans le code d'envoi.

Il serait cependant plus simple (et fiable) de transmettre directement le nombre entier sur deux octets retourné par la fonction analogRead(), sans autre forme de traitement côté émission.

Sinon, à quoi ressemble la partie réception ?