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”.