Arduino - Communication sans fil

Les modules émetteur et récepteur sans fil fonctionnent à 315 Mhz. Ils peuvent facilement s'intégrer dans une maquette et fonctionner bien avec des microcontrôleurs pour créer une liaison de données sans fil très simple. Avec une paire d'émetteur et de récepteur, les modules ne fonctionneront que pour communiquer des données dans un sens, cependant, vous auriez besoin de deux paires (de fréquences différentes) pour agir comme une paire d'émetteur / récepteur.

Note- Ces modules sont indiscriminés et reçoivent une bonne quantité de bruit. L'émetteur et le récepteur fonctionnent à des fréquences communes et n'ont pas d'identifiant.

Spécifications du module récepteur

  • Modèle de produit - MX-05V
  • Tension de fonctionnement - DC5V
  • Courant de repos - 4mA
  • Fréquence de réception - 315 Mhz
  • Sensibilité du récepteur - -105DB
  • Taille - 30 * 14 * 7mm

Spécifications du module émetteur

  • Modèle de produit - MX-FS-03V
  • Distance de lancement - 20-200 mètres (tension différente, résultats différents)
  • Tension de fonctionnement - 3,5-12 V
  • Dimensions - 19 * 19 mm
  • Mode de fonctionnement - AM
  • Taux de transfert - 4KB / S
  • Puissance d'émission - 10 mW
  • Fréquence d'émission - 315 Mhz
  • Une antenne externe - ligne ordinaire multicœur ou monocœur de 25 cm
  • Brochage de gauche à droite - (DATA; V CC ; GND)

Composants requis

Vous aurez besoin des composants suivants -

  • 2 × carte Arduino UNO
  • 1 × émetteur de liaison Rf
  • 1 × récepteur de liaison Rf

Procédure

Suivez le schéma de circuit et effectuez les connexions comme indiqué dans l'image ci-dessous.

Esquisser

Ouvrez le logiciel Arduino IDE sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez un nouveau fichier d'esquisse en cliquant sur Nouveau.

Note- Vous devez inclure la bibliothèque de clavier dans votre fichier de bibliothèque Arduino. Copiez et collez le fichier VirtualWire.lib dans le dossier des bibliothèques comme mis en évidence dans la capture d'écran ci-dessous.

Code Arduino pour l'émetteur

//simple Tx on pin D12
#include <VirtualWire.h>
char *controller;

void setup() {
   pinMode(13,OUTPUT);
   vw_set_ptt_inverted(true);
   vw_set_tx_pin(12);
   vw_setup(4000);// speed of data transfer Kbps
}

void loop() {
   controller="1" ;
   vw_send((uint8_t *)controller, strlen(controller));
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(13,1);
   delay(2000);
   controller="0" ;
   vw_send((uint8_t *)controller, strlen(controller));
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(13,0);
   delay(2000);
}

Code à noter

Ceci est un code simple. Tout d'abord, il enverra le caractère «1» et après deux secondes, il enverra le caractère «0» et ainsi de suite.

Code Arduino pour récepteur

//simple Rx on pin D12
#include <VirtualWire.h>

void setup() {
   vw_set_ptt_inverted(true); // Required for DR3100
   vw_set_rx_pin(12);
   vw_setup(4000); // Bits per sec
   pinMode(5, OUTPUT);
   vw_rx_start(); // Start the receiver PLL running
}

void loop() {
   uint8_t buf[VW_MAX_MESSAGE_LEN];
   uint8_t buflen = VW_MAX_MESSAGE_LEN;
   if (vw_get_message(buf, &buflen)) // Non-blocking {
      if(buf[0]=='1') {
         digitalWrite(5,1);
      }
      if(buf[0]=='0') {
         digitalWrite(5,0);
      }
   }
}

Code à noter

Le voyant connecté à la broche numéro 5 sur la carte Arduino est allumé lorsque le caractère «1» est reçu et éteint lorsque le caractère «0» est reçu.