- Instalowanie pakietów wymaganych do komunikacji Bluetooth:
- Parowanie urządzeń z Raspberry Pi przez Bluetooth:
- Schemat obwodu:
- Sterowanie diodą LED za pomocą aplikacji na Androida BlueTerm:
- Objaśnienie programowania:
Raspberry Pi jest bardzo popularne w projektach IoT ze względu na możliwość bezproblemowej komunikacji bezprzewodowej przez Internet. Raspberry Pi 3 ma wbudowane Wi-Fi i Bluetooth, a Bluetooth jest bardzo popularnym protokołem komunikacji bezprzewodowej. Więc dzisiaj zamierzamy sterować pinem GPIO Raspberry Pi za pomocą aplikacji na Androida za pomocą Bluetooth.
Tutaj używamy Raspberry 2 Pi Model B, które nie mają wbudowanego Bluetooth, więc używamy prostego klucza USB Bluetooth. Oprócz tego potrzebujemy tylko rezystora (220R) i diody LED, aby zademonstrować sterowanie GPIO. Tutaj używamy protokołu RFCOMM Bluetooth do komunikacji bezprzewodowej.
Programowanie Bluetooth w Pythonie jest zgodne z modelem programowania gniazd, a komunikacja między urządzeniami Bluetooth odbywa się za pośrednictwem gniazda RFCOMM. RFCOMM (komunikacja radiowa) to protokół Bluetooth, który zapewnia emulowane porty szeregowe RS-232, nazywany również emulacją portu szeregowego. Profil portu szeregowego Bluetooth jest oparty na tym protokole. RFCOMM jest bardzo popularny w aplikacjach Bluetooth ze względu na szerokie wsparcie i publicznie dostępne API. Jest powiązany z protokołem L2CAP.
W naszym poprzednim projekcie wykorzystaliśmy również moduł Bluetooth HC-06: diody LED sterowane głosem przy użyciu Raspberry Pi. Sprawdź także nasze poprzednie projekty Raspberry Pi oraz kilka dobrych projektów IoT.
Instalowanie pakietów wymaganych do komunikacji Bluetooth:
Przed rozpoczęciem musimy zainstalować oprogramowanie do konfiguracji komunikacji Bluetooth w Raspberry Pi. Powinieneś mieć zainstalowaną kartę pamięci Raspbian Jessie z Raspberry Pi. Przeczytaj ten artykuł, aby zainstalować Raspbian OS i rozpocząć pracę z Raspberry Pi. Więc teraz musimy najpierw zaktualizować Raspbian za pomocą poniższych poleceń:
sudo apt-get update sudo apt-get upgrade
Następnie musimy zainstalować kilka pakietów związanych z Bluetooth:
sudo apt-get install bluetooth blueman bluez
Następnie uruchom ponownie Raspberry Pi:
sudo reboot
BlueZ to projekt open source i oficjalny stos protokołów Bluetooth w systemie Linux. Obsługuje wszystkie podstawowe protokoły Bluetooth i teraz staje się częścią oficjalnego jądra Linuksa.
Blueman zapewnia interfejs Desktop do zarządzania i sterowania urządzeniami Bluetooth.
Wreszcie potrzebujemy biblioteki Python do komunikacji Bluetooth, abyśmy mogli wysyłać i odbierać dane przez RFCOMM przy użyciu języka Python:
sudo apt-get install python-bluetooth
Zainstaluj także biblioteki obsługujące GPIO dla Raspberry Pi:
sudo apt-get install python-rpi.gpio
Skończyliśmy z instalacją wymaganych pakietów do komunikacji Bluetooth w Raspberry Pi.
Parowanie urządzeń z Raspberry Pi przez Bluetooth:
Parowanie urządzeń Bluetooth, takich jak telefon komórkowy, z Raspberry Pi jest bardzo łatwe. Tutaj sparowaliśmy nasz smartfon z Androidem z Raspberry Pi. Wcześniej zainstalowaliśmy BlueZ w Pi, które udostępnia narzędzie wiersza poleceń o nazwie „bluetoothctl” do zarządzania naszymi urządzeniami Bluetooth. Ale wcześniej podłącz swój klucz USB Bluetooth do Raspberry Pi i sprawdź, czy został wykryty, czy nie, używając poniższego polecenia:
lsusb
Teraz otwórz narzędzie bluetoothctl za pomocą poniższego polecenia:
sudo bluetoothctl
Możesz sprawdzić wszystkie polecenia narzędzia bluetoothctl , wpisując „pomoc” . Na razie musimy wprowadzić poniższe komendy w podanej kolejności:
# włączenie # włączenie agenta # wykrywanie podczas # sparowanie podczas # skanowanie włączone
Po ostatnim poleceniu „skanuj” na liście zobaczysz swoje urządzenie Bluetooth (telefon komórkowy). Upewnij się, że Twój telefon komórkowy ma włączony Bluetooth i jest widoczny dla pobliskich urządzeń. Następnie skopiuj adres MAC swojego urządzenia i sparuj go za pomocą polecenia:
para
Następnie pojawi się monit o podanie kodu dostępu lub kodu PIN w konsoli terminala, a następnie wpisz tam hasło i naciśnij klawisz Enter. Następnie po wyświetleniu monitu wpisz to samo hasło w telefonie komórkowym, a teraz pomyślnie sparujesz z Raspberry Pi. Wyjaśniliśmy również cały ten proces w naszym wideo podanym na końcu.
Jak wspomniano wcześniej, do sparowania telefonu komórkowego można również użyć interfejsu pulpitu. Po zainstalowaniu Blueman zobaczysz ikonę Bluetooth po prawej stronie pulpitu Raspberry Pi, jak pokazano poniżej, za pomocą której możesz łatwo wykonać parowanie.
Schemat obwodu:
Schemat obwodu jest bardzo prosty, właśnie podłączyliśmy diodę LED do PIN 40 (GPIO 21) Raspberry Pi z rezystorem 220 Ohm:
Sterowanie diodą LED za pomocą aplikacji na Androida BlueTerm:
Teraz po sparowaniu telefonu komórkowego musimy zainstalować aplikację na Androida do komunikacji z Raspberry Pi za pomocą adaptera szeregowego Bluetooth. Jak wspomniano wcześniej, protokół RFCOMM / SPP emuluje komunikację szeregową przez Bluetooth, dlatego zainstalowaliśmy tutaj aplikację BlueTerm, która obsługuje ten protokół.
Możesz także użyć dowolnej innej aplikacji terminala Bluetooth, która obsługuje komunikację przez gniazdo RFCOMM.
Teraz po pobraniu i zainstalowaniu aplikacji BlueTerm uruchom poniższy program w języku Python z terminala i jednocześnie podłącz sparowane urządzenie raspberrypi z aplikacji BlueTerm.
Po udanym połączeniu w prawym górnym rogu aplikacji zobaczysz połączony: raspberrypi, jak pokazano poniżej:
Teraz możesz po prostu wpisać „1” lub „0” z aplikacji BlueTerm, aby pin GPIO był odpowiednio WYSOKI i NISKI, co z kolei włącza i wyłącza diodę LED podłączoną do tego pinu. Naciśnij 'q', aby wyjść z programu. Możesz używać klawiatury Google do pisania głosowego, aby sterować GPIO za pomocą głosu. Sprawdź pełną wersję demonstracyjną w filmie podanym na końcu.
W ten sposób możesz bezprzewodowo sterować pinem GPIO za pomocą aplikacji na Androida przez Bluetooth. Zobacz także Jak korzystać z Bluetooth z Arduino.
Objaśnienie programowania:
Program Python do sterowania Raspberry Pi GPIO za pomocą aplikacji na Androida jest bardzo prosty i intuicyjny. Tylko musimy się trochę dowiedzieć o kodzie związanym z komunikacją Bluetooth RFCOMM. Najpierw musimy zaimportować bibliotekę gniazd Bluetooth, która pozwoli nam kontrolować Bluetooth za pomocą języka Python; zainstalowaliśmy bibliotekę do tego samego w poprzedniej sekcji.
importuj Bluetooth
Poniżej kod odpowiedzialny za komunikację Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Accepted connection from", adres podczas 1: data = client_socket.recv (1024)
Tutaj możemy je zrozumieć wiersz po wierszu:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Tworzenie gniazda do komunikacji Bluetooth RFCOMM.
server_socket.bind (("", port): - Serwer wiąże skrypt na hoście '' z portem.
server_socket.listen (1) : serwer nasłuchuje, aby zaakceptować jedno połączenie na raz.
client_socket, address = server_socket.accept () : serwer akceptuje żądanie połączenia klienta i przypisuje adres mac do zmiennej adresu, client_socket to gniazdo klienta
data = client_socket.recv (1024): Odbierz dane przez gniazdo klienta client_socket i przypisz je do zmiennej data . Jednocześnie można odebrać maksymalnie 1024 znaki.
Na koniec po zakończeniu programowania zamknij połączenie klienta i serwera za pomocą poniższego kodu:
client_socket.close () server_socket.close ()
Cały inny kod jest łatwy i oczywisty. Sprawdź pełny kod poniżej. Spróbuj zmodyfikować ten projekt, a możesz go użyć do bezprzewodowego sterowania wieloma innymi rzeczami, na przykład za pomocą przekaźników możesz sterować urządzeniami gospodarstwa domowego lub sterować samochodem robota za pomocą telefonu z systemem Android.