- RFM69HCW Moduł RF
- RFM69HCW
- Piny i opis modułu RFM69
- Przygotowanie Custom Development Board
Krok 3: Przygotuj do tego płytkę drukowaną, postępuję zgodnie z tym samouczkiem dotyczącym PCB domowej roboty. Wydrukowałem ślad na płytce miedzianej i wrzuciłem go do roztworu trawiącego
Krok 4: Postępuj zgodnie z procedurą dla obu płyt i przylutuj moduł do śladu. Po wlutowaniu oba moje moduły wyglądają tak poniżej
Sposób wyprowadzenia modułu RFM69HCW przedstawiono na poniższym rysunku
- Wymagane materiały
- Połączenie sprzętowe
- Uruchomienie przykładowego szkicu
- Praca z przykładowym szkicem
Jeśli chodzi o zapewnienie możliwości bezprzewodowych projektów, nadajnik i odbiornik hybrydowy 433 MHz ASK jest powszechnym wyborem wśród inżynierów, programistów i hobbystów ze względu na niską cenę, łatwe w użyciu biblioteki i wsparcie społeczności. Zbudowaliśmy również kilka projektów, takich jak automatyka domowa sterowana radiowo i bezprzewodowy dzwonek do drzwi przy użyciu tego modułu RF 433 MHz. Ale często zdarza się, że nadajnik i odbiornik hybrydowy ASK po prostu nie wystarczają, jego niski zasięg i jednokierunkowy charakter komunikacji sprawiają, że nie nadaje się do wielu zastosowań
Aby rozwiązać ten stale występujący problem, programiści z HopeRF opracowali fajny nowy moduł RF o nazwie RFM69HCW. W tym samouczku poznamy moduł RFM69HCW i jego zalety. Najpierw wykonamy domową płytkę PCB dla RFM69HCW, a następnie połączymy RFM69HCW z Arduino, aby sprawdzić, czy działa, aby można było go używać w wybranych projektach. Więc zacznijmy.
RFM69HCW Moduł RF
RFM69HCW to tani, łatwy w użyciu moduł radiowy, który działa w nielicencjonowanym paśmie ISM (przemysł, nauka i medycyna), podobnie jak moduł RF nRF24L01, który używaliśmy w poprzednich projektach. Może być używany do komunikacji między dwoma modułami lub może być skonfigurowany jako sieć kratowa do komunikacji między setkami modułów, co czyni go idealnym wyborem do budowy niedrogich sieci bezprzewodowych krótkiego zasięgu dla czujników używanych w automatyzacji domu i innych projektach akwizycji danych.
Cechy RFM69HCW:
- +20 dBm - 100 mW Moc wyjściowa
- Wysoka czułość: do -120 dBm przy 1,2 kbps
- Niski prąd: Rx = 16 mA, zachowanie rejestru 100nA
- Programowalny Pout: -18 do +20 dBm w krokach co 1 dB
- Stała wydajność RF w całym zakresie napięcia modułu
- Modulacje FSK, GFSK, MSK, GMSK i OOK
- Wbudowany synchronizator bitów wykonujący odzyskiwanie zegara
- 115 dB + zakres dynamiki RSSI
- Automatyczne wykrywanie częstotliwości radiowej z ultraszybkim AFC
- Silnik pakietowy z CRC-16, AES-128, 66-bajtowe FIFO Wbudowany czujnik temperatury
- Wysoki budżet linków
- Bardzo niski koszt
RFM69HCW
Częstotliwość
RFM69HCW jest przeznaczony do pracy w paśmie ISM (Industry, Scientific and Medical), zestawie nielicencjonowanych częstotliwości radiowych dla urządzeń bliskiego zasięgu o małej mocy. Różne częstotliwości są legalne w różnych obszarach, dlatego moduł ma wiele różnych wersji 315 433 868 i 915 MHz. Wszystkie główne parametry komunikacji radiowej są programowalne, a większość z nich można ustawiać dynamicznie, również RFM69HCW oferuje unikalną zaletę programowalnych trybów komunikacji wąskopasmowej i szerokopasmowej.
Uwaga: Ze względu na stosunkowo małą moc i krótki zasięg, wdrożenie tego modułu w małym projekcie nie będzie problemem, ale jeśli myślisz o zrobieniu z niego produktu, upewnij się, że używasz odpowiedniej częstotliwości dla Twoja lokalizacja.
Zasięg
Aby lepiej zrozumieć zasięg, musimy zająć się dość skomplikowanym tematem zwanym budżetem łącza RF. Czym więc jest ten budżet linków i dlaczego jest tak ważny? Budżet linków jest jak każdy inny budżet, coś, co masz na początku i który spędzasz w czasie, jeśli budżet się wyczerpuje, nie możesz wydać więcej.
Budżet łącza ma również związek z łączem lub połączeniem między nadawcą a odbiorcą, jest wypełniony mocą nadawczą nadawcy i czułością odbiornika i jest obliczany w decybelach lub dB, jest to również częstotliwość- zależny. Budżet łącza jest odejmowany przez wszelkiego rodzaju przeszkody i szumy między nadawcą a odbiorcą, takie jak kable dystansowe, ściany, drzewa, budynki, jeśli budżet łącza zostanie wykorzystany, odbiornik tylko generuje szum na wyjściu i nie otrzymamy żadnego użytecznego sygnału. Według arkusza z RFM69HCW , ma budżet łącza 140 dB w porównaniu do 105 dB ASK nadajnik hybrydowy ale co to znaczy jest to istotna różnica? Na szczęście znajdujemyKalkulatory budżetu łącza radiowego online, więc zróbmy kilka obliczeń, aby lepiej zrozumieć temat. Najpierw załóżmy, że mamy połączenie między nadawcą a odbiornikiem w linii wzroku i wszystko jest idealne, ponieważ wiemy, że nasz budżet RFM69HCW wynosi 140 dB, więc sprawdźmy największą teoretyczną odległość, jaką możemy komunikować, ustawiamy wszystko na zero i odległość do 500KM, częstotliwość do 433MHz i otrzymujemy poziomą moc odbieraną 139,2 dBm
Teraz ustawiam wszystko na zero, a odległość na 9KM Częstotliwość na 433MHz i otrzymujemy poziomą moc odbieraną 104,3 dBm
Tak więc z powyższym porównaniem myślę, że wszyscy możemy się zgodzić, że moduł RFM69 jest znacznie lepszy niż nadajnik hybrydowy ASK i moduł odbiornika.
Antena
Uwaga! Przymocowanie anteny do modułu jest obowiązkowe, ponieważ bez niej moduł może zostać uszkodzony przez własną moc odbitą.
Stworzenie anteny nie jest tak trudne, jak mogłoby się wydawać. Najprostszą antenę można wykonać tylko z jednodrutowego przewodu 22SWG. Długość fali częstotliwości można obliczyć za pomocą wzoru v / f , gdzie v jest prędkością transmisji, a f jest (średnią) częstotliwością transmisji. W powietrzu v jest równe c , czyli prędkości światła, która wynosi 299,792,458 m / s. Długość fali dla pasma 433 MHz wynosi zatem 299,792,458 / 433,000,000 = 34,54 cm. Połowa z tego to 17,27 cm, a jedna czwarta to 8,63 cm.
Dla pasma 433 MHz długość fali wynosi 299,792,458 / 433,000,000 = 69,24 cm. Połowa z tego to 34,62 cm, a jedna czwarta to 17,31 cm. Tak więc z powyższego wzoru możemy zobaczyć proces obliczania długości przewodu antenowego.
Wymaganie mocy
RFM69HCW ma napięcie robocze od 1,8 V do 3,6 V i może pobierać do 130 mA prądu podczas transmisji. W poniższej tabeli wyraźnie widać pobór mocy modułu w różnych warunkach
Ostrzeżenie: Jeśli wybrane Arduino używa poziomów logicznych 5 V do komunikacji z urządzeniem peryferyjnym, podłączenie modułu bezpośrednio do Arduino spowoduje uszkodzenie modułu
Symbol |
Opis |
Warunki |
Min |
Typ |
Maks |
Jednostka |
IDDSL |
Obecny w trybie uśpienia |
- |
0,1 |
1 |
uA |
|
IDDIDLE |
Aktualny w trybie bezczynności |
Oscylator RC włączony |
- |
1.2 |
- |
uA |
IDDST |
Obecny w trybie gotowości |
Oscylator kwarcowy włączony |
- |
1.25 |
1.5 |
uA |
IDDFS |
prąd w syntezatorze tryb |
- |
9 |
- |
uA |
|
IDDR |
prąd w trybie odbioru |
- |
16 |
- |
uA |
|
IDDT |
Prąd zasilania w trybie nadawania z odpowiednim dopasowaniem, stabilny w całym zakresie VDD |
RFOP = +20 dBm, na PA_BOOST RFOP = +17 dBm, na PA_BOOST RFOP = +13 dBm, na pinie RFIO RFOP = +10 dBm, na pinie RFIO RFOP = 0 dBm, na pinie RFIO RFOP = -1 dBm, na pinie RFIO |
- - - - - - |
130 95 45 33 20 16 |
- - - - - - |
mama mama mama mama mama |
W tym samouczku będziemy używać dwóch Arduino Nano i dwóch konwerterów poziomu logicznego do komunikacji z modułem. Używamy Arduino nano, ponieważ wbudowany wewnętrzny regulator może bardzo efektywnie zarządzać prądem szczytowym. Diagram Fritzing w sekcji sprzętowej poniżej wyjaśni ci to jaśniej.
UWAGA: Jeśli twój zasilacz nie może zapewnić 130mA prądu szczytowego, Arduino może się zrestartować lub gorzej, moduł może nie komunikować się poprawnie, w tej sytuacji kondensator o dużej wartości z niskim ESR może poprawić sytuację
Piny i opis modułu RFM69
Etykieta |
Funkcjonować |
Funkcjonować |
Etykieta |
MRÓWKA |
Wyjście / wejście sygnału RF. |
Power Ground |
GND |
GND |
Uziemienie anteny (takie samo jak uziemienie zasilania) |
Cyfrowe we / wy, skonfigurowane programowo |
DIO5 |
DIO3 |
Cyfrowe we / wy, skonfigurowane programowo |
Resetuj wejście wyzwalające |
RST |
DIO4 |
Cyfrowe we / wy, skonfigurowane programowo |
Wejście SPI Chip Select |
NSS |
3,3 V. |
Zasilanie 3,3 V (co najmniej 130 mA) |
Wejście zegara SPI |
SCK |
DIO0 |
Cyfrowe we / wy, skonfigurowane programowo |
Wejście danych SPI |
MOSI |
DIO1 |
Cyfrowe we / wy, skonfigurowane programowo |
Wyjście danych SPI |
MISO |
DIO2 |
Cyfrowe we / wy, skonfigurowane programowo |
Power Ground |
GND |
Przygotowanie Custom Development Board
Kiedy kupiłem moduł, nie był dostarczany z płytką wyłamywaną kompatybilną z płytką prototypową, więc zdecydowaliśmy się zrobić ją samodzielnie. Jeśli być może będziesz musiał zrobić to samo, po prostu postępuj zgodnie z instrukcjami. Należy również pamiętać, że wykonanie tych kroków nie jest obowiązkowe, można po prostu przylutować przewody do modułu RF i podłączyć je do płytki stykowej, a nadal będzie działać. Postępuję zgodnie z tą procedurą tylko po to, aby uzyskać stabilną i wytrzymałą konfigurację.
Krok 1: Przygotuj schematy dla modułu RFM69HCW
Krok 3: Przygotuj do tego płytkę drukowaną, postępuję zgodnie z tym samouczkiem dotyczącym PCB domowej roboty. Wydrukowałem ślad na płytce miedzianej i wrzuciłem go do roztworu trawiącego
Krok 4: Postępuj zgodnie z procedurą dla obu płyt i przylutuj moduł do śladu. Po wlutowaniu oba moje moduły wyglądają tak poniżej
Sposób wyprowadzenia modułu RFM69HCW przedstawiono na poniższym rysunku
Wymagane materiały
Oto lista rzeczy, które będziesz potrzebować do komunikacji z modułem
- Dwa moduły RFM69HCW (z dopasowanymi częstotliwościami):
- 434 MHz (WRL-12823)
- Dwa Arduino (używam Arduino NANO)
- Dwa konwertery poziomów logicznych
- Dwie tablice breakout (używam niestandardowej tablicy breakout)
- Przycisk
- Cztery diody LED
- Jeden rezystor 4,7 K, cztery rezystory 220 Ω
- Przewody połączeniowe
- Emaliowany drut miedziany (22AWG) do wykonania anteny.
- I wreszcie lutowanie (jeśli jeszcze tego nie zrobiłeś)
Połączenie sprzętowe
W tym samouczku używamy Arduino nano, które wykorzystuje logikę 5 V, ale moduł RFM69HCW wykorzystuje poziomy logiczne 3,3 V, jak wyraźnie widać w powyższej tabeli, więc aby poprawnie komunikować się między dwoma urządzeniami, konwerter poziomów logicznych jest obowiązkowy, na poniższym schemacie fritzing pokazaliśmy, jak podłączyć Arduino nano do modułu RFM69.
Węzeł nadawczy Fritzing Diagram
Węzeł nadawczy tabeli połączeń
Pin Arduino |
RFM69HCW Pin |
Piny we / wy |
D2 |
DIO0 |
- |
D3 |
- |
TAC_SWITCH |
D4 |
- |
LED_GREEN |
D5 |
- |
LED_RED |
D9 |
- |
LED_BLUE |
D10 |
NSS |
- |
D11 |
MOSI |
- |
D12 |
MISO |
- |
D13 |
SCK |
- |
Węzeł odbiorczy diagramu Fritzinga
Węzeł odbiorczy tabeli połączeń
Pin Arduino |
RFM69HCW Pin |
Piny we / wy |
D2 |
DIO0 |
- |
D9 |
- |
DOPROWADZIŁO |
D10 |
NSS |
- |
D11 |
MOSI |
- |
D12 |
MISO |
- |
D13 |
SCK |
- |
Uruchomienie przykładowego szkicu
W tym samouczku zamierzamy skonfigurować dwa węzły Arduino RFM69 i sprawić, by komunikowały się ze sobą. W poniższej sekcji dowiemy się, jak uruchomić i uruchomić moduł za pomocą biblioteki RFM69, której autorem jest Felix Rusu z LowPowerLab.
Importowanie biblioteki
Mamy nadzieję, że już wcześniej trochę programowałeś Arduino i wiesz, jak zainstalować bibliotekę. Jeśli nie, sprawdź sekcję Importowanie biblioteki.zip tego łącza
Podłączanie węzłów
Podłącz USB węzła nadawcy do komputera, nowy numer portu COM powinien zostać dodany do listy "Narzędzia / Port" Arduino IDE, zapisz go, teraz podłącz węzeł odbiornika inny port COM powinien pojawić się w Narzędziach / Lista portów, również ją zapisz, za pomocą numeru portu załadujemy szkic do nadawcy i węzła odbiorczego.
Otwarcie dwóch sesji Arduino
Otwórz dwie sesje Arduino IDE, klikając dwukrotnie ikonę Arduino IDE po załadowaniu pierwszej sesji, obowiązkowe jest otwarcie dwóch sesji Arduino, ponieważ w ten sposób można otworzyć dwa okno monitora szeregowego Arduino i jednocześnie monitorować wyjście dwóch węzłów
Otwieranie przykładowego kodu
Teraz, gdy wszystko jest skonfigurowane, musimy otworzyć przykładowy kod w obu sesjach Arduino, aby to zrobić, gotowe
Plik> Przykłady> RFM6_LowPowerLab> Przykłady> TxRxBlinky
i kliknij, aby go otworzyć
Modyfikacja przykładowego kodu
- W górnej części kodu znajdź #define NETWORKID i zmień wartość na 0. Za pomocą tego identyfikatora wszystkie węzły mogą się ze sobą komunikować.
- Poszukaj #define FREQUENCY zmień to, aby dopasować częstotliwość płyty (moja to 433_MHz).
- Poszukaj #define ENCRYPTKEY to jest Twój 16-bitowy klucz szyfrowania.
- Poszukaj #define IS_RFM69HW_HCW i odkomentuj go, jeśli używasz modułu RFM69_HCW
- I na koniec poszukaj #define NODEID, który powinien być domyślnie ustawiony jako RECEIVER
Teraz prześlij kod do swojego węzła odbiorczego, który wcześniej skonfigurowałeś.
Czas zmodyfikować szkic dla węzła nadawcy
Teraz w makrze #define NODEID zmień go na SENDER i prześlij kod do swojego węzła nadawcy.
To wszystko, jeśli wszystko zrobiłeś poprawnie, masz dwa kompletne modele robocze gotowe do przetestowania.
Praca z przykładowym szkicem
Po pomyślnym przesłaniu szkicu zobaczysz, że zapala się czerwona dioda LED, która jest połączona z pinem D4 Arduino, teraz naciśnij przycisk w węźle nadawcy, a zobaczysz, że czerwona dioda LED zgaśnie, a zielona dioda LED, która jest podłączony do Pin D5 Arduino świeci się, jak pokazano na poniższym obrazku
Możesz również obserwować naciśnięcie przycisku! tekst w oknie monitora szeregowego, jak pokazano poniżej
Teraz obserwuj niebieską diodę LED, która jest podłączona do pinu D9 węzła nadawcy, zamiga dwukrotnie, aw oknie monitora szeregowego węzła odbiorczego zobaczysz następujący komunikat, a także niebieską diodę LED, która jest podłączona do pinu D9 w węzeł odbiornika zaświeci się. Jeśli widzisz powyższy komunikat w oknie monitora szeregowego węzła odbiornika, a także jeśli zapala się dioda LED Gratulacje! Pomyślnie skomunikowałeś moduł RFM69 z Arduino IDE. Pełne działanie tego samouczka można również znaleźć w filmie zamieszczonym na dole tej strony.
Podsumowując, te moduły sprawdzają się świetnie do budowy stacji pogodowych, bram garażowych, bezprzewodowego sterownika pompy ze wskaźnikiem, dronów, robotów, twojego kota… niebo jest granicą! Mam nadzieję, że zrozumiałeś samouczek i podobało Ci się tworzenie czegoś przydatnego. Jeśli masz jakieś pytania, zostaw je w sekcji komentarzy lub skorzystaj z forum w celu uzyskania innych pytań technicznych.