- Instalace požadovaných balíčků pro komunikaci Bluetooth:
- Párování zařízení s Raspberry Pi přes Bluetooth:
- Kruhový diagram:
- Ovládání LED pomocí aplikace pro Android BlueTerm:
- Vysvětlení programování:
Raspberry Pi je pro projekty IoT velmi populární díky své bezproblémové schopnosti bezdrátové komunikace přes internet. Raspberry Pi 3 má vestavěné Wi-Fi a Bluetooth a Bluetooth je velmi populární bezdrátový komunikační protokol. Dnes tedy budeme ovládat Raspberry Pi GPIO Pin prostřednictvím aplikace pro Android pomocí Bluetooth.
Zde používáme Raspberry 2 Pi Model B, které nemají vestavěné Bluetooth, takže používáme jednoduchý USB Bluetooth dongle. Kromě toho k prokázání ovládání GPIO potřebujeme pouze rezistor (220R) a LED. Zde používáme pro bezdrátovou komunikaci protokol Bluetooth RFCOMM.
Programování pro Bluetooth v Pythonu se řídí modelem programování soketů a komunikace mezi zařízeními Bluetooth se provádí pomocí soketu RFCOMM. RFCOMM (Radio Frequency Communication) je protokol Bluetooth, který poskytuje emulované sériové porty RS-232 a také se nazývá emulace sériového portu. Profil sériového portu Bluetooth je založen na tomto protokolu. RFCOMM je v aplikacích Bluetooth velmi populární díky své široké podpoře a veřejně dostupnému API. Je vázán na protokol L2CAP.
V našem předchozím projektu jsme také použili modul Bluetooth HC-06: Hlasově ovládané LED diody pomocí Raspberry Pi. Zkontrolujte také naše předchozí projekty Raspberry Pi spolu s některými dobrými projekty IoT.
Instalace požadovaných balíčků pro komunikaci Bluetooth:
Před spuštěním musíme nainstalovat nějaký software pro nastavení komunikace Bluetooth v Raspberry Pi. Měli byste mít nainstalovanou paměťovou kartu Raspbian Jessie připravenou s Raspberry Pi. V tomto článku si přečtěte Raspbian OS a začněte s Raspberry Pi. Takže nyní musíme nejprve aktualizovat Raspbian pomocí níže uvedených příkazů:
sudo apt-get aktualizace sudo apt-get aktualizace
Pak musíme nainstalovat několik balíčků souvisejících s Bluetooth:
sudo apt-get nainstalovat bluetooth blueman bluez
Poté restartujte Raspberry Pi:
sudo restart
BlueZ je projekt s otevřeným zdrojovým kódem a oficiální linuxový protokol Bluetooth. Podporuje všechny základní protokoly Bluetooth a nyní se stává součástí oficiálního linuxového jádra.
Blueman poskytuje rozhraní plochy pro správu a ovládání zařízení Bluetooth.
Nakonec potřebujeme knihovnu pythonu pro komunikaci Bluetooth, abychom mohli odesílat a přijímat data prostřednictvím RFCOMM pomocí jazyka Python:
sudo apt-get nainstalovat python-bluetooth
Nainstalujte si také knihovny podpory GPIO pro Raspberry Pi:
sudo apt-get install python-rpi.gpio
Nyní jsme hotovi s instalací požadovaných balíčků pro komunikaci Bluetooth v Raspberry Pi.
Párování zařízení s Raspberry Pi přes Bluetooth:
Spárování zařízení Bluetooth, jako je mobilní telefon, s Raspberry Pi je velmi snadné. Zde jsme spárovali náš chytrý telefon Android s Raspberry Pi. Již jsme nainstalovali BlueZ v Pi, který poskytuje nástroj příkazového řádku s názvem „bluetoothctl“ pro správu našich zařízení Bluetooth. Ale předtím připojte svůj USB Bluetooth dongle k Raspberry Pi a pomocí níže uvedeného příkazu zkontrolujte, zda je detekován nebo ne:
lsusb
Nyní otevřete nástroj bluetoothctl pomocí následujícího příkazu:
sudo bluetoothctl
Všechny příkazy nástroje bluetoothctl můžete zkontrolovat zadáním 'help' . Prozatím musíme zadat níže uvedené příkazy v daném pořadí:
# napájení na # agent na # zjistitelné na # pairable na # skenování na
Po posledním příkazu „skenovat“ se v seznamu zobrazí vaše zařízení Bluetooth (mobilní telefon). Ujistěte se, že váš mobilní telefon má zapnutou technologii Bluetooth a je viditelná pro okolní zařízení. Poté zkopírujte adresu MAC vašeho zařízení a spárujte ji pomocí zadaného příkazu:
pár
Poté budete vyzváni k zadání hesla nebo Pin v konzole terminálu, zadejte tam přístupový kód a stiskněte klávesu Enter. Po zobrazení výzvy zadejte do mobilního telefonu stejný přístupový kód a nyní jste úspěšně spárováni s Raspberry Pi. Celý tento proces jsme také vysvětlili v našem videu uvedeném na konci.
Jak již bylo řečeno, ke spárování mobilního telefonu můžete také použít rozhraní plochy. Po instalaci Bluemanu uvidíte na pravé straně plochy Raspberry Pi ikonu Bluetooth, jak je znázorněno níže, pomocí které můžete párování snadno provést.
Kruhový diagram:
Schéma zapojení je velmi jednoduché, pouze jsme připojili LED k PIN 40 (GPIO 21) Raspberry Pi s odporem 220 Ohm:
Ovládání LED pomocí aplikace pro Android BlueTerm:
Nyní po spárování mobilního telefonu musíme nainstalovat aplikaci pro Android pro komunikaci s Raspberry Pi pomocí sériového adaptéru Bluetooth. Jak již bylo řečeno, protokol RFCOMM / SPP emuluje sériovou komunikaci přes Bluetooth, takže jsme zde nainstalovali aplikaci BlueTerm, která tento protokol podporuje.
Můžete také použít jakoukoli jinou aplikaci Bluetooth Terminal, která podporuje komunikaci přes zásuvku RFCOMM.
Nyní po stažení a instalaci aplikace BlueTerm spusťte níže uvedený program Python z terminálu a připojte spárované zařízení raspberrypi z aplikace BlueTerm současně.
Po úspěšném připojení uvidíte připojeno: raspberrypi v pravém horním rohu aplikace, jak je uvedeno níže:
Nyní stačí zadat „1“ nebo „0“ z aplikace BlueTerm, aby byl pin GPIO VYSOKÝ a NÍZKÝ, což postupně zapíná a vypíná LED připojenou k tomuto kolíku. Stisknutím klávesy „q“ program ukončíte. Můžete použít Google Voice Typing klávesnice k ovládání GPIO pomocí hlasu. Podívejte se na kompletní ukázku ve videu na konci.
Takto můžete bezdrátově ovládat GPIO Pin pomocí aplikace pro Android přes Bluetooth. Zkontrolujte také Jak používat Bluetooth s Arduino.
Vysvětlení programování:
Program Python pro ovládání Raspberry Pi GPIO s aplikací pro Android je velmi jednoduchý a vysvětlující. Pouze se musíme trochu naučit o kódu týkajícím se komunikace Bluetooth RFCOMM. Nejprve musíme importovat knihovnu soketů Bluetooth, která nám umožňuje ovládat Bluetooth v jazyce Python; jsme nainstalovali knihovnu pro stejné v předchozí části.
importovat Bluetooth
Níže je uveden kód odpovědný za komunikaci Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Přijato připojení z", adresa do 1: data = client_socket.recv (1024)
Zde je můžeme pochopit řádek po řádku:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Vytváření soketu pro komunikaci Bluetooth RFCOMM.
server_socket.bind (("", port): - Server váže skript na hostiteli na port.
server_socket.listen (1) : Server naslouchá přijímání jednoho připojení najednou.
client_socket, address = server_socket.accept () : Server přijme požadavek na připojení klienta a přiřadí adresu MAC proměnné adrese, client_socket je soket klienta
data = client_socket.recv (1024): Přijímat data prostřednictvím klientského soketu client_socket a přiřadit je k proměnné data . Najednou lze přijmout maximálně 1024 znaků.
Nakonec po veškerém programování ukončete připojení klienta a serveru pomocí níže uvedeného kódu:
client_socket.close () server_socket.close ()
Veškerý další kód je snadný a vysvětlující. Zkontrolujte celý kód níže. Zkuste tento projekt upravit a můžete jej použít k bezdrátovému ovládání mnoha dalších věcí, například pomocí relé můžete ovládat domácí spotřebiče nebo také ovládat robotické auto pomocí telefonu Android.