Arduino - komunikacja bezprzewodowa

Bezprzewodowe moduły nadajnika i odbiornika pracują z częstotliwością 315 MHz. Z łatwością mieszczą się w płytce prototypowej i dobrze współpracują z mikrokontrolerami, tworząc bardzo proste bezprzewodowe łącze danych. Z jedną parą nadajnika i odbiornika, moduły będą przekazywać dane tylko w jedną stronę, jednak potrzebne byłyby dwie pary (o różnych częstotliwościach), aby działać jako para nadajnik / odbiornik.

Note- Te moduły są bezkrytyczne i odbierają sporo szumu. Zarówno nadajnik, jak i odbiornik pracują na wspólnych częstotliwościach i nie mają identyfikatorów.

Specyfikacje modułu odbiornika

  • Model produktu - MX-05V
  • Napięcie robocze - DC5V
  • Prąd spoczynkowy - 4mA
  • Częstotliwość odbioru - 315 Mhz
  • Czułość odbiornika - -105DB
  • Rozmiar - 30 * 14 * 7 mm

Specyfikacje modułu nadajnika

  • Model produktu - MX-FS-03V
  • Odległość startu - 20-200 metrów (inne napięcie, różne wyniki)
  • Napięcie robocze - 3,5-12 V.
  • Wymiary - 19 * 19 mm
  • Tryb pracy - AM
  • Szybkość transferu - 4KB / S
  • Moc nadawcza - 10 mW
  • Częstotliwość nadawania - 315 Mhz
  • Antena zewnętrzna - 25cm zwykła linia wielożyłowa lub jednożyłowa
  • Pinout od lewej → prawej - (DATA; V CC ; GND)

Wymagane składniki

Będziesz potrzebował następujących komponentów -

  • 2 × płyta Arduino UNO
  • 1 × nadajnik łącza RF
  • 1 × odbiornik łącza RF

Procedura

Postępuj zgodnie ze schematem obwodu i wykonaj połączenia, jak pokazano na rysunku poniżej.

Naszkicować

Otwórz oprogramowanie Arduino IDE na swoim komputerze. Kodowanie w języku Arduino będzie sterować twoim obwodem. Otwórz nowy plik szkicu, klikając Nowy.

Note- Musisz dołączyć bibliotekę klawiatury do pliku biblioteki Arduino. Skopiuj i wklej plik VirtualWire.lib do folderu bibliotek, jak zaznaczono na zrzucie ekranu podanym poniżej.

Kod Arduino dla nadajnika

//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);
}

Kod do uwagi

To jest prosty kod. Najpierw wyśle ​​znak „1”, a po dwóch sekundach wyśle ​​znak „0” i tak dalej.

Kod Arduino dla odbiornika

//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);
      }
   }
}

Kod do uwagi

Dioda LED podłączona do pinu nr 5 na płycie Arduino zapala się po odebraniu znaku „1” i gaśnie po odebraniu znaku „0”.