Moduł radiowy 433 MHz podłączysz do Arduino przez trzy podstawowe sygnały: VCC, GND i DATA. Nadajnik oraz odbiornik pracują zwykle w trybie ASK/OOK, dlatego do przesyłania danych potrzebujesz dwóch modułów, anteny z przewodu o długości około 17 cm i biblioteki, na przykład RadioHead. Pamiętaj, że jest to komunikacja jednokierunkowa.
Czym są moduły 433 MHz?
Najtańsze zestawy składają się z nadajnika TX i odbiornika RX. Nadajnik wysyła dane, a odbiornik je przechwytuje. Taki układ sprawdza się przy prostych projektach Arduino, na przykład bezprzewodowym odczycie temperatury, sterowaniu przekaźnikiem lub przesyłaniu stanu czujnika.
Modulacja ASK/OOK upraszcza konstrukcję, ale ma też ograniczenia. Moduły nie tworzą pełnego dwukierunkowego połączenia, nie zapewniają szyfrowania i są podatne na zakłócenia. Nadajnik i odbiornik muszą więc mieć własne mikrokontrolery, a komunikacja przebiega w jednym kierunku.
Wyprowadzenia nadajnika i odbiornika
Najpierw sprawdź oznaczenia na płytce. Tanie moduły mogą różnić się układem pinów, dlatego przed podłączeniem porównaj nadruk z dokumentacją konkretnego egzemplarza.
Typowy nadajnik ma trzy wyprowadzenia:
| Pin | Opis |
|---|---|
| VCC | Zasilanie modułu. Napięcie zależy od wersji, często mieści się w zakresie 3–12 V. |
| DATA | Wejście danych z cyfrowego pinu Arduino. |
| GND | Masa, którą trzeba połączyć z masą Arduino. |
Odbiornik ma zazwyczaj cztery piny, przy czym dwa wyprowadzenia DATA są często połączone wewnętrznie i mogą służyć jako równoważne wyjścia:
| Pin | Opis |
|---|---|
| VCC | Zasilanie odbiornika. W popularnych wersjach odbiornik wymaga 5 V. |
| DATA | Wyjście odebranych danych do cyfrowego pinu Arduino. |
| DATA | Drugie, równoważne wyjście danych w wielu modułach. |
| GND | Masa połączona z GND Arduino. |
Nie zakładaj, że każdy moduł ma identyczny pinout. Pomylenie VCC z DATA może uniemożliwić działanie, a w niektórych przypadkach doprowadzić do uszkodzenia elementu.
Jak podłączyć moduł radiowy 433 MHz do Arduino?
Do prostego testu potrzebujesz dwóch płytek Arduino, nadajnika, odbiornika oraz przewodów połączeniowych. Przygotuj także antenę z odcinka sztywnego przewodu:
- Arduino lub inny kompatybilny mikrokontroler
- Moduł nadajnika 433 MHz
- Moduł odbiornika 433 MHz
- Przewody połączeniowe i antena z drutu
Połączenia wykonaj w następującej kolejności:
- Połącz pin GND nadajnika z GND pierwszego Arduino.
- Podłącz VCC nadajnika do napięcia wymaganego przez konkretny moduł. Pin DATA nadajnika połącz z wybranym cyfrowym pinem Arduino, na przykład D12.
- Po stronie odbiornika połącz GND z masą drugiego Arduino, a VCC z właściwym napięciem zasilania. W popularnych odbiornikach tego typu jest to 5 V, ale sprawdź dokumentację wersji, którą posiadasz.
- Jeden z pinów DATA odbiornika połącz z cyfrowym pinem Arduino, na przykład D12. Drugie wyjście DATA możesz pozostawić niepodłączone.
- Do pola antenowego nadajnika i odbiornika dolutuj pionowy przewód o długości około 17 cm. Nie zwieraj go z masą ani z sąsiednimi pinami.
Bez anteny zasięg może wynosić zaledwie kilka centymetrów. Odcinek około 17 cm odpowiada w przybliżeniu jednej czwartej długości fali dla 433 MHz. Antena nie gwarantuje konkretnego zasięgu, ponieważ wpływają na niego także przeszkody, jakość zasilania i zakłócenia.
Jak skonfigurować moduły programowo?
Do obsługi prostych nadajników i odbiorników ASK/OOK możesz użyć biblioteki RadioHead. Jest nowszym rozwiązaniem niż VirtualWire i zapewnia gotowe mechanizmy do kodowania oraz odbierania pakietów. W konfiguracji programu przypisujesz pin DATA nadajnika lub odbiornika do właściwego pinu Arduino, a następnie ustawiasz tę samą prędkość transmisji po obu stronach.
Program nadajnika przekazuje dane do funkcji wysyłającej pakiet. Program odbiornika uruchamia nasłuchiwanie i odczytuje pakiet, gdy pojawi się na wejściu DATA. W prostym projekcie warto zacząć od krótkich komunikatów tekstowych, a dopiero później przesyłać struktury zawierające kilka pomiarów.
W starszych przykładach możesz spotkać bibliotekę VirtualWire, często skonfigurowaną z prędkością 500 bit/s. Takie projekty nadal mogą być przydatne jako materiał edukacyjny, ale przy nowym kodzie sprawdź aktualną dokumentację RadioHead i zgodność biblioteki z używaną płytką.
Dlaczego moduł 433 MHz nie działa?
Gdy odbiornik nie wykrywa transmisji albo dane są losowe, sprawdź najczęstsze przyczyny:
- Brak anteny lub przewód o przypadkowej długości może mocno ograniczyć zasięg.
- Zbyt niskie albo niewłaściwe napięcie zasilania może powodować niestabilną pracę, zwłaszcza odbiornika.
- Zamiana pinów nadajnika i odbiornika, w szczególności podłączenie DATA do VCC lub GND, uniemożliwia transmisję.
- Inne urządzenia pracujące w paśmie 433 MHz, na przykład piloty i czujniki, mogą zakłócać odbiór.
- Różne ustawienia prędkości transmisji lub niezgodne formaty pakietów po obu stronach powodują odrzucanie danych.
Najpierw skróć odległość między modułami, sprawdź napięcie miernikiem i porównaj oznaczenia pinów z dokumentacją. Jeśli po dołączeniu anteny, poprawieniu zasilania i weryfikacji programu transmisja nadal nie działa, jeden z modułów może być uszkodzony.
Do prostych zastosowań Arduino zestaw 433 MHz jest tani i łatwy do uruchomienia, ale wymaga poprawnego zasilania, właściwego pinoutu i anteny. Najlepszy efekt uzyskasz, gdy połączenia fizyczne oraz ustawienia biblioteki będą identycznie sprawdzone po stronie nadajnika i odbiornika.