- Wymagania sprzętowe
- Konfigurowanie modułów XBee za pomocą XCTU
- Schemat obwodu części odbiornika
- Skonfiguruj Raspberry Pi do komunikacji szeregowej
- Programowanie Raspberry Pi do komunikacji XBee
- Testowanie bezprzewodowej komunikacji XBee za pomocą Raspberry Pi
W poprzednim samouczku połączyliśmy moduł XBee z Arduino Uno i sprawiliśmy, że komunikują się bezprzewodowo za pomocą modułu XBee. Teraz połączymy moduł XBee z Raspberry Pi, który będzie działał jako odbiornik i umożliwi komunikację bezprzewodową z innym modułem XBee (płytka eksploratora XBee), który jest szeregowo połączony z laptopem.
Wymagania sprzętowe
- 1 x Raspberry Pi z zainstalowanym Raspbianem
- 2 x moduły XBee Pro S2C (można użyć dowolnego innego modelu)
- 1 x XBee Explorer Board (opcjonalnie)
- 1 x Xbee Breakout Board (opcjonalnie)
- Kable USB
- Diody LED
Zakłada się, że Twoje Raspberry Pi jest już flashowane z systemem operacyjnym. Jeśli nie, postępuj zgodnie z samouczkiem Wprowadzenie do Raspberry Pi przed kontynuowaniem. Tutaj używamy Rasbian Jessie zainstalowanego Raspberry Pi 3.
Tutaj monitor zewnętrzny za pomocą kabla HDMI jest używany jako wyświetlacz do połączenia z Raspberry Pi. Jeśli nie masz monitora, możesz użyć klienta SSH (Putty) lub serwera VNC, aby połączyć się z Raspberry pi za pomocą laptopa lub komputera. Dowiedz się więcej o konfigurowaniu Raspberry Pi bez głowy tutaj.
Konfigurowanie modułów XBee za pomocą XCTU
Jak dowiedzieliśmy się w poprzednim samouczku wprowadzenia do ZigBee, moduł XBee może działać jako koordynator, router lub urządzenie końcowe, ale musi być skonfigurowany do pracy w żądanym trybie. Tak więc przed użyciem modułów XBee z Raspberry Pi musimy skonfigurować te moduły za pomocą oprogramowania XCTU.
Do połączenia modułu XBee z laptopem służy konwerter USB na port szeregowy lub specjalnie zaprojektowana płytka eksploratora. Wystarczy podłączyć moduł XBee do płytki Explorer i podłączyć go do laptopa za pomocą kabla USB.
Jeśli nie masz żadnego konwertera lub płyty eksploratora, to płytka Arduino może być używana jako urządzenie USB do portu szeregowego, które może łatwo komunikować się z XBee i laptopem. Po prostu wgraj pusty szkic na płytkę Arduino i teraz może on zachowywać się jak konwerter USB na szeregowy.
Konfigurowanie modułów XBee:
W tym samouczku do skonfigurowania modułów XBee jest używana tablica eksploratora.
Pobierz oprogramowanie XCTU z tego łącza i zainstaluj je. Po pobraniu i zainstalowaniu oprogramowania XCTU otwórz je i upewnij się, że moduł XBee jest prawidłowo podłączony. Sprawdź port COM płyty Arduino w menedżerze urządzeń.
1. Teraz kliknij przycisk wyszukiwania. Spowoduje to wyświetlenie wszystkich urządzeń RF podłączonych do laptopa. W naszym przypadku pokaże tylko jeden moduł XBee.
2. Wybierz port szeregowy karty Explorer / Arduino i kliknij Dalej.
3. W następnym oknie ustaw parametry portu USB, jak pokazano poniżej, i kliknij przycisk Zakończ.
4. Wybierz Wykryte urządzenie i kliknij Dodaj wybrane urządzenie . Ten proces spowoduje dodanie Twojego modułu XBee do pulpitu nawigacyjnego XCTU.
5. Teraz możesz skonfigurować swój moduł XBee w tym oknie. Możesz użyć poleceń AT lub ręcznie wprowadzić dane. Jak widać, na lewym panelu pojawia się R, co oznacza, że XBee jest w trybie routera. Musimy uczynić go koordynatorem dla części nadajnika.
Najpierw zaktualizuj oprogramowanie sprzętowe, klikając Aktualizuj oprogramowanie układowe.
6. Wybierz rodzinę produktów swojego urządzenia, która jest dostępna z tyłu modułu XBee. Wybierz zestaw funkcji i wersję oprogramowania sprzętowego, jak zaznaczono poniżej, i kliknij Aktualizuj.
7. Teraz musisz podać ID, dane MY i DL, aby połączyć się z innymi XBee. ID pozostaje takie samo dla obu modułów. Tylko wymiana danych MY i DL, tj. MY dla odbiornika XBee staje się DL nadajnika XBee (koordynator), a DL dla odbiornika XBee staje się MY nadajnika XBee. Ustaw CE jako koordynatora, a następnie naciśnij przycisk Zapisz. Jak pokazano niżej.
ATDL |
W MOIM |
||
Koordynator XBee 1 |
|||
Urządzenie końcowe XBee 2 |
8. Po zapisaniu powyższych danych do części nadajnika należy ją wypiąć z płytki eksploratora i podłączyć do niej drugi moduł XBee. Powtórz ten sam proces, co powyżej, tylko zmiany to DL, MY i CE. Ponieważ zrobimy drugie XBee jako urządzenie końcowe, więc w rozwijanym menu CE wybierz urządzenie końcowe i naciśnij przycisk Zapisz.
9. Teraz nasze moduły XBee są gotowe do współpracy z Raspberry Pi. Będziemy podłączyć xbee nadajnika do odbiornika XBee i laptopa z Raspberry Pi. Następnie wydawaj polecenia części odbiorczej za pomocą laptopa. laptop.
Schemat obwodu części odbiornika
Połączenia do połączenia modułu ZigBee z Raspberry PI pokazano na schemacie obwodu.
Znajomości:
- Tx (pin2) XBee -> Tx pin Raspberry Pi
- Rx (pin3) XBee -> Rx wyprowadzenia Raspberry Pi
- Masa (pin10) XBee -> GND pinu Raspberry Pi
- Vcc (Pin1) XBee -> 3,3 V pin Raspberry Pi
- Dioda jest podłączona do GPIO 23
Skonfiguruj Raspberry Pi do komunikacji szeregowej
Teraz skonfigurujemy Raspberry Pi do komunikacji szeregowej. Domyślnie sprzętowy port szeregowy Pi jest wyłączony. Musimy więc włączyć to przed rozpoczęciem połączenia.
1. W terminalu uruchom polecenie raspi-config .
2. Przejdź do opcji 5 Opcje łączenia i naciśnij enter. Teraz wybierz opcję P6 Serial i Włącz ją, a następnie zapisz.
Wyjdź z terminalu i jesteś gotowy do połączenia między Raspberry Pi i XBee. GPIO14 i 15 będą działać odpowiednio jako Tx i Rx i są one dostępne na porcie / dev / ttyS0 raspberry pi.
Teraz napiszemy skrypt w Pythonie, który będzie włączał diodę LED za każdym razem, gdy otrzymamy „a” z XBee po stronie nadajnika.
Programowanie Raspberry Pi do komunikacji XBee
Kompletny program w Pythonie do łączenia XBee z Raspberry Pi jest podany na końcu.
Najpierw musimy zaimportować biblioteki czasowe, szeregowe i RPi.GPIO za pomocą funkcji importu.
czas importu import szeregowy import RPi.GPIO jako GPIO …
Teraz zapisz właściwości połączenia szeregowego, zdefiniuj port, szybkość transmisji i parzystość, jak poniżej.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Napisz wszystko wysyłania i odbierania elementów w while pętli.
podczas gdy 1:
Możesz użyć funkcji ser.write do wysyłania wiadomości po stronie nadajnika. Odkomentuj poniższe wiersze, aby wysłać obliczenia.
# ser.write (str.encode ('Zapis licznika:% d \ n'% (licznik))) # time.sleep (1) #counter + = 1
Do odbioru wiadomości musimy skorzystać z funkcji ser.readline () . Przechowuj przychodzącą wiadomość w zmiennej i sprawdź stan. Jeśli przychodząca wiadomość to „a”, włącz diodę LED na 3 sekundy, a następnie wyłącz diodę LED.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Kompletny kod Pythona wraz z filmem demonstracyjnym znajduje się na końcu samouczka. Wklej kod w dowolnym edytorze tekstu Pi i zapisz go. Uruchom skrypt w terminalu za pomocą sudo python nazwa_skryptu.py LUB możesz użyć środowiska Python IDE i powłoki, aby wykonać skrypt.
Testowanie bezprzewodowej komunikacji XBee za pomocą Raspberry Pi
Teraz wszyscy jesteśmy gotowi przetestować nasz nadajnik i odbiornik XBee. Aby wydać polecenie części nadajnika, użyjemy terminala konsoli XCTU. Kliknij ikonę Konsola obok opcji ustawień. Następnie kliknij przycisk Otwórz, aby podłączyć XBee do laptopa.
Wpisz „a” w dzienniku konsoli. Zobaczysz, że dioda LED zaświeci się na 3 sekundy, a następnie zgaśnie.
W ten sposób możesz również podłączyć nadajnik XBee do płytki Arduino zgodnie z opisem w poprzednim samouczku i zmusić Raspberry Pi i Arduino do komunikacji między sobą.