- Installation af nødvendige pakker til Bluetooth-kommunikation:
- Parring af enheder med Raspberry Pi via Bluetooth:
- Kredsløbsdiagram:
- Kontrollerende LED med Android App BlueTerm:
- Programmeringsforklaring:
Raspberry Pi er meget populær til IoT-projekter på grund af sin sømløse evne til trådløs kommunikation over internettet. Raspberry Pi 3 har indbygget Wi-Fi og Bluetooth, og Bluetooth er en meget populær trådløs kommunikationsprotokol. Så i dag skal vi kontrollere Raspberry Pi GPIO Pin gennem en Android-app ved hjælp af Bluetooth.
Her bruger vi Raspberry 2 Pi Model B, som ikke har indbygget Bluetooth, så vi bruger en simpel USB Bluetooth-dongle. Bortset fra det har vi kun brug for en modstand (220R) og en LED for at demonstrere GPIO-styringen. Her bruger vi RFCOMM Bluetooth-protokol til trådløs kommunikation.
Programmering af Bluetooth i Python følger sokkelprogrammeringsmodellen, og kommunikation mellem Bluetooth-enhederne sker via RFCOMM-stikket. RFCOMM (Radio Frequency Communication) er en Bluetooth-protokol, der leverede emulerede RS-232 serielle porte og også kaldet Serial Port Emulation. Bluetooth-seriel portprofil er baseret på denne protokol. RFCOMM er meget populær i Bluetooth-applikationer på grund af sin brede support og offentligt tilgængelige API. Det er bundet til L2CAP-protokollen.
Vi har også brugt Bluetooth-modul HC-06 i vores tidligere projekt: Stemmestyrede lysdioder ved hjælp af Raspberry Pi. Tjek også vores tidligere Raspberry Pi-projekter sammen med nogle gode IoT-projekter.
Installation af nødvendige pakker til Bluetooth-kommunikation:
Før start skal vi installere nogle software til opsætning af Bluetooth-kommunikation i Raspberry Pi. Du skal have et Raspbian Jessie-installeret hukommelseskort klar med Raspberry Pi. Tjek denne artikel for at installere Raspbian OS og komme i gang med Raspberry Pi. Så nu skal vi først opdatere Raspbian ved hjælp af nedenstående kommandoer:
sudo apt-get opdater sudo apt-get upgrade
Derefter skal vi installere få Bluetooth-relaterede pakker:
sudo apt-get install bluetooth blueman bluez
Genstart derefter Raspberry Pi:
sudo genstart
BlueZ er et open source-projekt og officiel Linux Bluetooth-protokolstak. Det understøtter alle de centrale Bluetooth-protokoller og bliver nu en del af den officielle Linux-kerne.
Blueman leverer Desktop-interface til at styre og kontrollere Bluetooth-enheder.
Endelig har vi brug for python-bibliotek til Bluetooth-kommunikation, så vi kan sende og modtage data via RFCOMM ved hjælp af Python-sprog:
sudo apt-get install python-bluetooth
Installer også GPIO-supportbibliotekerne til Raspberry Pi:
sudo apt-get install python-rpi.gpio
Nu er vi færdige med at installere nødvendige pakker til Bluetooth-kommunikation i Raspberry Pi.
Parring af enheder med Raspberry Pi via Bluetooth:
Parring af Bluetooth-enheder, som mobiltelefon, med Raspberry Pi er meget let. Her har vi parret vores Android Smart-telefon med Raspberry Pi. Vi har tidligere installeret BlueZ i Pi, som giver et kommandolinjeprogram kaldet "bluetoothctl" til at styre vores Bluetooth-enheder. Men inden det skal du forbinde din USB Bluetooth-dongle med Raspberry Pi og kontrollere, om den er detekteret eller ej, ved hjælp af kommandoen nedenfor:
lsusb
Åbn nu bluetoothctl- hjælpeprogrammet ved nedenstående kommando:
sudo bluetoothctl
Du kan kontrollere alle kommandoerne i bluetoothctl- værktøjet ved at skrive 'hjælp' . For nu skal vi indtaste nedenstående kommandoer i den angivne rækkefølge:
# tænd for # agent til # synlig på # parring på # scanning til
Efter den sidste kommando "scan on" vil du se din Bluetooth-enhed (mobiltelefon) på listen. Sørg for, at Bluetooth er slået til og synlig på din enhed i nærheden af din mobil. Kopier derefter MAC-adressen på din enhed, og par den ved hjælp af den givne kommando:
par
Derefter bliver du bedt om adgangskode eller pin i din terminalkonsol, skriv derefter adgangskode der og tryk enter. Skriv derefter den samme adgangskode i din mobiltelefon, når du bliver bedt om det, og du er nu parret med succes med Raspberry Pi. Vi har også forklaret hele denne proces i vores video givet til sidst.
Som tidligere fortalt kan du også bruge Desktop-interface til at parre mobiltelefonen. Efter installation af Blueman vil du se et Bluetooth-ikon i højre side af dit Raspberry Pi-skrivebord som vist nedenfor, ved hjælp af hvilket du nemt kan udføre parringen.
Kredsløbsdiagram:
Kredsløbsdiagram er meget simpelt, vi har netop tilsluttet en LED til PIN 40 (GPIO 21) af Raspberry Pi med en modstand på 220 Ohm:
Kontrollerende LED med Android App BlueTerm:
Nu efter parring af mobiltelefonen skal vi installere en Android-app til kommunikation med Raspberry Pi ved hjælp af en Bluetooth-seriel adapter. Som tidligere fortalt emulerer RFCOMM / SPP-protokol seriel kommunikation via Bluetooth, så vi installerede her BlueTerm App, der understøtter denne protokol.
Du kan også bruge enhver anden Bluetooth Terminal App, der understøtter kommunikation via RFCOMM-stikket.
Efter download og installation af BlueTerm-appen skal du køre nedenstående givne Python-program fra terminalen og tilslutte den parrede raspberrypi- enhed fra BlueTerm-appen på samme tid.
Efter vellykket forbindelse ser du tilsluttet: raspberrypi øverst til højre i appen som vist nedenfor:
Nu kan du bare indtaste '1' eller '0' fra BlueTerm-appen for at gøre GPIO-stiften henholdsvis HIGH og LOW, som igen tænder og slukker for LED'en, der er tilsluttet denne pin. Tryk på 'q' for at afslutte programmet. Du kan bruge Google Voice Typing Keyboard til at styre GPIO ved hjælp af din Voice. Tjek den komplette demo i videoen til sidst.
Så dette er, hvordan du trådløst kan styre GPIO Pin ved hjælp af en Android-app via Bluetooth. Tjek også Sådan bruges Bluetooth med Arduino.
Programmeringsforklaring:
Python-programmet til styring af Raspberry Pi GPIO med Android App er meget simpelt og selvforklarende. Kun vi har brug for at lære lidt om koden relateret til Bluetooth RFCOMM-kommunikation. Først skal vi importere Bluetooth-stikkontaktbiblioteket, som gør det muligt for os at kontrollere Bluetooth med Python-sprog; vi har installeret biblioteket til det samme i det foregående afsnit.
importer Bluetooth
Nedenfor er koden, der er ansvarlig for Bluetooth-kommunikation:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, adresse = server_socket.accept () udskriver "Accepteret forbindelse fra", adresse mens 1: data = client_socket.recv (1024)
Her kan vi forstå dem linje for linje:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Opretter stikkontakt til Bluetooth RFCOMM-kommunikation.
server_socket.bind (("", port): - Server binder scriptet på værten '' til porten.
server_socket.listen (1) : Server lytter til at acceptere en forbindelse ad gangen.
client_socket, address = server_socket.accept () : Server accepterer klientens forbindelsesanmodning og tildeler mac-adressen til den variable adresse, client_socket er klientens socket
data = client_socket.recv (1024): Modtag data gennem client-socket client_socket og tildel dem til de variable data . Der kan maksimalt modtages 1024 tegn ad gangen.
Endelig efter al programmering, luk klient- og serverforbindelsen ved hjælp af nedenstående kode:
client_socket.close () server_socket.close ()
Al den anden kode er let og selvforklarende. Tjek den fulde kode nedenfor. Prøv at ændre dette projekt, og du kan bruge det til at kontrollere mange andre ting trådløst, som ved hjælp af relæer kan du styre husholdningsapparaterne eller også styre en robotbil via Android-telefon.