- Installera nödvändiga paket för Bluetooth-kommunikation:
- Para ihop enheter med Raspberry Pi via Bluetooth:
- Kretsschema:
- Styrande LED med Android App BlueTerm:
- Programmeringsförklaring:
Raspberry Pi är mycket populär för IoT-projekt på grund av dess sömlösa förmåga att trådlös kommunikation via internet. Raspberry Pi 3 har inbyggd Wi-Fi och Bluetooth, och Bluetooth är ett mycket populärt trådlöst kommunikationsprotokoll. Så idag ska vi styra Raspberry Pi GPIO Pin via en Android-app med Bluetooth.
Här använder vi Raspberry 2 Pi Model B som inte har inbyggd Bluetooth, så vi använder en enkel USB Bluetooth-dongel. Bortsett från det behöver vi bara ett motstånd (220R) och en LED för att visa GPIO-styrningen. Här använder vi RFCOMM Bluetooth-protokoll för trådlös kommunikation.
Programmering för Bluetooth i Python följer sockelprogrammeringsmodellen och kommunikation mellan Bluetooth-enheter sker via RFCOMM-uttaget. RFCOMM (Radio Frequency Communication) är ett Bluetooth-protokoll som tillhandahöll emulerade RS-232 seriella portar och även kallad Serial Port Emulation. Bluetooth-seriell portprofil baseras på detta protokoll. RFCOMM är mycket populärt i Bluetooth-applikationer på grund av sitt breda stöd och allmänt tillgängliga API. Den är bunden till L2CAP-protokollet.
Vi har också använt Bluetooth-modulen HC-06 i vårt tidigare projekt: Röststyrda lysdioder med Raspberry Pi. Kontrollera också våra tidigare Raspberry Pi-projekt tillsammans med några bra IoT-projekt.
Installera nödvändiga paket för Bluetooth-kommunikation:
Innan vi börjar måste vi installera några program för att konfigurera Bluetooth-kommunikation i Raspberry Pi. Du bör ha ett Raspbian Jessie-installerat minneskort redo med Raspberry Pi. Läs den här artikeln för att installera Raspbian OS och komma igång med Raspberry Pi. Så nu måste vi först uppdatera Raspbian med kommandona nedan:
sudo apt-get uppdatering sudo apt-get upgrade
Då måste vi installera några Bluetooth-relaterade paket:
sudo apt-get install bluetooth blueman bluez
Starta sedan om Raspberry Pi:
omstart av sudo
BlueZ är ett open source-projekt och officiell Linux Bluetooth-protokollstack. Den stöder alla Bluetooth-kärnprotokoll och blir nu en del av den officiella Linux-kärnan.
Blueman tillhandahåller skrivbordsgränssnittet för att hantera och styra Bluetooth-enheter.
Slutligen behöver vi python-biblioteket för Bluetooth-kommunikation så att vi kan skicka och ta emot data via RFCOMM med Pythonspråk:
sudo apt-get install python-bluetooth
Installera också GPIO-stödbiblioteken för Raspberry Pi:
sudo apt-get install python-rpi.gpio
Nu är vi klara med att installera nödvändiga paket för Bluetooth-kommunikation i Raspberry Pi.
Para ihop enheter med Raspberry Pi via Bluetooth:
Att para ihop Bluetooth-enheter, som mobiltelefon, med Raspberry Pi är väldigt enkelt. Här har vi parat ihop vår Android-smarttelefon med Raspberry Pi. Vi har tidigare installerat BlueZ i Pi, som tillhandahåller ett kommandoradsverktyg som heter "bluetoothctl" för att hantera våra Bluetooth-enheter. Men innan det, anslut din USB Bluetooth-dongel med Raspberry Pi och kontrollera om den upptäcks eller inte, med hjälp av kommandot nedan:
lsusb
Öppna nu Bluetoothctl- verktyget med kommandot nedan:
sudo bluetoothctl
Du kan kontrollera alla kommandon för Bluetoothctl- verktyget genom att skriva "hjälp" . För närvarande måste vi ange kommandon nedan i angiven ordning:
# ström på # agent på # upptäckbar på # parbar vid # skanning på
Efter det sista kommandot "skanna på" ser du din Bluetooth-enhet (mobiltelefon) i listan. Se till att Bluetooth är aktiverat på din mobil och synlig för enheter i närheten. Kopiera sedan din enhets MAC-adress och para ihop den med ett kommando:
par
Då kommer du att bli ombedd att ange lösenord eller stift i din terminalkonsol, skriv sedan lösenord där och tryck på enter. Skriv sedan samma lösenord i din mobiltelefon när du blir ombedd och du är nu ihopkopplad med Raspberry Pi. Vi har också förklarat hela processen i vår video som ges i slutet.
Som sagt tidigare kan du också använda skrivbordets gränssnitt för att para ihop mobiltelefonen. Efter installationen av Blueman ser du en Bluetooth-ikon på höger sida av ditt Raspberry Pi-skrivbord som visas nedan, där du enkelt kan göra ihopkopplingen.
Kretsschema:
Kretsschemat är väldigt enkelt, vi har precis anslutit en LED till PIN 40 (GPIO 21) på Raspberry Pi med ett motstånd på 220 Ohm:
Styrande LED med Android App BlueTerm:
Efter att ha parat ihop mobiltelefonen måste vi installera en Android-app för att kommunicera med Raspberry Pi med hjälp av en Bluetooth-seriell adapter. Som tidigare nämnts emulerar RFCOMM / SPP-protokoll seriell kommunikation via Bluetooth, så vi installerade här BlueTerm App som stöder detta protokoll.
Du kan också använda vilken annan Bluetooth Terminal-app som helst som stöder kommunikation via RFCOMM-uttaget.
Efter nedladdning och installation av BlueTerm-appen, kör nedanstående Python-program från terminalen och anslut den parade raspberrypi- enheten från BlueTerm-appen samtidigt.
Efter lyckad anslutning ser du ansluten: raspberrypi längst upp till höger i appen som visas nedan:
Nu kan du bara ange '1' eller '0' från BlueTerm-appen för att göra GPIO-stiftet HÖG respektive LÅG, vilket i sin tur slår PÅ och AV lampan som är ansluten till denna stift. Tryck på 'q' för att avsluta programmet. Du kan använda Google Voice Typing Keyboard för att styra GPIO med din Voice. Kontrollera den fullständiga demonstrationen i videon som ges i slutet.
Så här kan du trådlöst styra GPIO Pin med en Android-app via Bluetooth. Kontrollera också hur man använder Bluetooth med Arduino.
Programmeringsförklaring:
Python-programmet för att styra Raspberry Pi GPIO med Android-appen är väldigt enkelt och självförklarande. Bara vi behöver lära oss lite om koden relaterad till Bluetooth RFCOMM-kommunikation. Först måste vi importera Bluetooth-uttagsbiblioteket som gör att vi kan styra Bluetooth med Python-språk; vi har installerat biblioteket för samma i föregående avsnitt.
importera Bluetooth
Nedan följer koden som ansvarar för Bluetooth-kommunikation:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () skriv ut "Accepterad anslutning från", adress medan 1: data = client_socket.recv (1024)
Här kan vi förstå dem rad för rad:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Skapar uttag för Bluetooth RFCOMM-kommunikation.
server_socket.bind (("", port): - Servern binder skriptet på värden '' till porten.
server_socket.listen (1) : Servern lyssnar på att acceptera en anslutning i taget.
client_socket, address = server_socket.accept () : Server accepterar klientens anslutningsförfrågan och tilldelar mac-adressen till den variabla adressen, client_socket är klientens socket
data = client_socket.recv (1024): Ta emot data via klienten socket client_socket och tilldela den till de variabla uppgifterna . Maximalt 1024 tecken kan tas emot åt gången.
Slutligen efter all programmering, stäng klient- och serveranslutningen med hjälp av nedanstående kod:
client_socket.close () server_socket.close ()
Alla andra koder är enkla och självförklarande. Kontrollera hela koden nedan. Försök att modifiera detta projekt och du kan använda det för att styra många andra saker trådlöst, som att använda Reläer kan du styra hushållsapparaterna eller kan också styra en robotbil via Android-telefon.