- Inštalácia požadovaných balíkov pre komunikáciu Bluetooth:
- Párovanie zariadení s Raspberry Pi cez Bluetooth:
- Schéma zapojenia:
- Ovládanie LED pomocou aplikácie pre Android BlueTerm:
- Vysvetlenie programovania:
Raspberry Pi je pre projekty IoT veľmi obľúbený pre svoju bezproblémovú schopnosť bezdrôtovej komunikácie cez internet. Raspberry Pi 3 má zabudované Wi-Fi a Bluetooth a Bluetooth je veľmi populárny bezdrôtový komunikačný protokol. Takže dnes ideme ovládať Raspberry Pi GPIO Pin prostredníctvom aplikácie pre Android pomocou Bluetooth.
Tu používame Raspberry 2 Pi Model B, ktoré nemajú zabudované Bluetooth, takže používame jednoduchý USB Bluetooth kľúč. Okrem toho na demonštráciu ovládania GPIO potrebujeme iba rezistor (220R) a LED. Tu používame pre bezdrôtovú komunikáciu protokol RFCOMM Bluetooth.
Programovanie pre Bluetooth v Pythone sa riadi programovacím modelom soketu a komunikácia medzi zariadeniami Bluetooth sa vykonáva prostredníctvom soketu RFCOMM. RFCOMM (Radio Frequency Communication) je protokol Bluetooth, ktorý poskytuje emulované sériové porty RS-232 a nazýva sa tiež ako emulácia sériového portu. Profil sériového portu Bluetooth je založený na tomto protokole. RFCOMM je v aplikáciách Bluetooth veľmi populárny kvôli svojej širokej podpore a verejne dostupnému API. Je viazaný na protokol L2CAP.
V našom predchádzajúcom projekte sme použili aj modul Bluetooth HC-06: Hlasom ovládané LED diódy pomocou Raspberry Pi. Skontrolujte tiež naše predchádzajúce projekty Raspberry Pi a niekoľko dobrých projektov IoT.
Inštalácia požadovaných balíkov pre komunikáciu Bluetooth:
Pred začatím musíme nainštalovať softvér na nastavenie komunikácie Bluetooth v Raspberry Pi. Mali by ste mať nainštalovanú pamäťovú kartu Raspbian Jessie pripravenú s Raspberry Pi. V tomto článku nájdete informácie o inštalácii operačného systému Raspbian a začiatku práce s programom Raspberry Pi. Takže teraz musíme najskôr aktualizovať Raspbian pomocou nasledujúcich príkazov:
sudo apt-get aktualizácia sudo apt-get aktualizácia
Potom musíme nainštalovať niekoľko balíkov súvisiacich s Bluetooth:
sudo apt-get nainštalovať bluetooth blueman bluez
Potom reštartujte Raspberry Pi:
sudo reštart
BlueZ je projekt s otvoreným zdrojovým kódom a oficiálny zásobník protokolu Bluetooth pre systém Linux. Podporuje všetky základné protokoly Bluetooth a teraz sa stáva súčasťou oficiálneho jadra systému Linux.
Spoločnosť Blueman poskytuje rozhranie pracovnej plochy na správu a kontrolu zariadení Bluetooth.
Nakoniec potrebujeme knižnicu python pre komunikáciu Bluetooth, aby sme mohli odosielať a prijímať dáta cez RFCOMM pomocou jazyka Python:
sudo apt-get nainštalovať python-bluetooth
Nainštalujte si tiež podporné knižnice GPIO pre Raspberry Pi:
sudo apt-get nainštalovať python-rpi.gpio
Teraz sme hotoví s inštaláciou požadovaných balíkov pre komunikáciu Bluetooth v Raspberry Pi.
Párovanie zariadení s Raspberry Pi cez Bluetooth:
Spárovanie zariadení Bluetooth, ako je napríklad mobilný telefón, s Raspberry Pi je veľmi jednoduché. Tu sme spárovali náš inteligentný telefón s Androidom s Raspberry Pi. Predtým sme nainštalovali BlueZ do Pi, ktorý poskytuje nástroj príkazového riadku s názvom „bluetoothctl“ na správu našich zariadení Bluetooth. Predtým však pripojte svoj USB Bluetooth kľúč s Raspberry Pi a pomocou nasledujúceho príkazu skontrolujte, či je detekovaný alebo nie:
lsusb
Teraz otvorte nástroj bluetoothctl pomocou príkazu dole:
sudo bluetoothctl
Všetky príkazy obslužného programu bluetoothctl môžete skontrolovať zadaním príkazu „help“ . Zatiaľ musíme zadať nižšie príkazy v danom poradí:
# zapnutie # agent zapnutý # objaviteľné pri # opraviteľné pri # skenovanie zapnuté
Po poslednom príkaze „skenovať“ sa v zozname zobrazí vaše zariadenie Bluetooth (mobilný telefón). Uistite sa, že váš mobil má zapnuté Bluetooth a viditeľné pre zariadenia v okolí. Potom skopírujte MAC adresu vášho zariadenia a spárujte ju pomocou daného príkazu:
pár
Potom sa v terminálovej konzole zobrazí výzva na zadanie hesla alebo PIN, potom zadajte prístupový kód a stlačte kláves Enter. Potom po výzve zadajte do mobilného telefónu rovnaký prístupový kód a teraz ste úspešne spárovaní s Raspberry Pi. Celý tento proces sme tiež vysvetlili v našom videu, ktoré je uvedené na konci.
Ako už bolo povedané, na spárovanie mobilného telefónu môžete použiť aj rozhranie pracovnej plochy. Po inštalácii programu Blueman sa na pravej strane pracovnej plochy Raspberry Pi zobrazí ikona Bluetooth, ako je to znázornené nižšie, pomocou ktorej môžete párovanie jednoducho vykonať.
Schéma zapojenia:
Schéma zapojenia je veľmi jednoduchá, práve sme pripojili LED k PIN 40 (GPIO 21) Raspberry Pi s odporom 220 Ohm:
Ovládanie LED pomocou aplikácie pre Android BlueTerm:
Teraz po spárovaní mobilného telefónu je potrebné nainštalovať aplikáciu pre Android pre komunikáciu s Raspberry Pi pomocou sériového adaptéra Bluetooth. Ako už bolo povedané, protokol RFCOMM / SPP emuluje sériovú komunikáciu cez Bluetooth, preto sme si tu nainštalovali aplikáciu BlueTerm, ktorá tento protokol podporuje.
Môžete tiež použiť ľubovoľnú inú aplikáciu Bluetooth Terminal, ktorá podporuje komunikáciu cez zásuvku RFCOMM.
Teraz po stiahnutí a nainštalovaní aplikácie BlueTerm spustite z terminálu nižšie uvedený program Python a súčasne pripojte spárované zariadenie raspberrypi z aplikácie BlueTerm.
Po úspešnom pripojení uvidíte pripojené: raspberrypi v pravom hornom rohu aplikácie, ako je uvedené nižšie:
Teraz stačí zadať '1' alebo '0' z aplikácie BlueTerm, aby bol pin GPIO VYSOKÝ a NÍZKY, čo postupne zapína a vypína LED pripojenú k tomuto kolíku. Stlačením klávesu „q“ program opustíte. Pomocou klávesnice Google Voice Typing Keyboard môžete ovládať GPIO pomocou svojho hlasu. Kompletné ukážky nájdete vo videu na konci.
Takto môžete bezdrôtovo ovládať GPIO Pin pomocou aplikácie pre Android cez Bluetooth. Skontrolujte tiež Ako používať Bluetooth s Arduino.
Vysvetlenie programovania:
Program Python na ovládanie Raspberry Pi GPIO s Android App je veľmi jednoduchý a zrozumiteľný. Len sa musíme trochu dozvedieť o kóde súvisiacom s komunikáciou Bluetooth RFCOMM. Najskôr musíme importovať knižnicu zásuviek Bluetooth, ktorá nám umožňuje ovládať Bluetooth v jazyku Python; knižnicu sme pre to isté nainštalovali v predchádzajúcej časti.
importovať Bluetooth
Nižšie je uvedený kód zodpovedný za komunikáciu Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Akceptované pripojenie z", adresa do 1: data = client_socket.recv (1024)
Tu ich môžeme chápať riadok po riadku:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Vytvára sa soket pre komunikáciu Bluetooth RFCOMM.
server_socket.bind (("", port): - Server naviaže skript na hostiteľovi na port.
server_socket.listen (1) : Server počúva prijať jedno pripojenie naraz.
client_socket, address = server_socket.accept () : Server prijme požiadavku na pripojenie klienta a priradí adresu MAC premennej adrese, client_socket je soket klienta
data = client_socket.recv (1024): Prijímajte údaje prostredníctvom klientskeho soketu client_socket a priraďte ich k premennej data . Naraz je možné prijať maximálne 1024 znakov.
Nakoniec po ukončení celého programovania ukončite spojenie klienta a servera pomocou nižšie uvedeného kódu:
client_socket.close () server_socket.close ()
Všetky ostatné kódy sú ľahké a zrozumiteľné. Skontrolujte celý kód uvedený nižšie. Skúste tento projekt upraviť a pomocou neho môžete bezdrôtovo ovládať mnoho ďalších vecí, napríklad pomocou relé môžete ovládať domáce spotrebiče alebo ovládať aj robotické auto prostredníctvom telefónu s Androidom.