- Instalarea pachetelor necesare pentru comunicarea Bluetooth:
- Asocierea dispozitivelor cu Raspberry Pi prin Bluetooth:
- Diagrama circuitului:
- Controlul LED-urilor cu aplicația Android BlueTerm:
- Explicație de programare:
Raspberry Pi este foarte popular pentru proiectele IoT datorită capacității sale perfecte de comunicare fără fir prin internet. Raspberry Pi 3 are Wi-Fi și Bluetooth încorporate, iar Bluetooth este un protocol de comunicație wireless foarte popular. Așadar, astăzi vom controla Raspberry Pi GPIO Pin printr-o aplicație Android folosind Bluetooth.
Aici folosim Raspberry 2 Pi Model B care nu au Bluetooth încorporat, deci folosim un simplu dongle USB Bluetooth. În afară de asta, avem nevoie doar de un rezistor (220R) și un LED pentru a demonstra controlul GPIO. Aici folosim protocolul RFCOMM Bluetooth pentru comunicații fără fir.
Programarea pentru Bluetooth în Python urmează modelul de programare socket și comunicațiile între dispozitivele Bluetooth se realizează prin socket RFCOMM. RFCOMM (Radio Frequency Communication) este un protocol Bluetooth care furnizează porturi seriale RS-232 emulate și denumit și Emulare port serial. Profilul portului serial Bluetooth se bazează pe acest protocol. RFCOMM este foarte popular în aplicațiile Bluetooth datorită suportului larg și API-ului disponibil public. Este legat de protocolul L2CAP.
Am utilizat și modulul Bluetooth HC-06 în proiectul nostru anterior: LED-uri controlate prin voce folosind Raspberry Pi. Verificați, de asemenea, proiectele noastre anterioare Raspberry Pi, împreună cu câteva proiecte IoT bune.
Instalarea pachetelor necesare pentru comunicarea Bluetooth:
Înainte de a începe, trebuie să instalăm câteva software pentru configurarea comunicării Bluetooth în Raspberry Pi. Ar trebui să aveți un card de memorie instalat Raspbian Jessie gata cu Raspberry Pi. Consultați acest articol pentru a instala sistemul de operare Raspbian și pentru a începe să utilizați Raspberry Pi. Deci, acum trebuie mai întâi să actualizăm Raspbian folosind comenzile de mai jos:
sudo apt-get update sudo apt-get upgrade
Apoi, trebuie să instalăm câteva pachete legate de Bluetooth:
sudo apt-get install bluetooth blueman bluez
Apoi reporniți Raspberry Pi:
sudo reboot
BlueZ este un proiect open source și un stack oficial de protocol Linux Bluetooth. Acceptă toate protocoalele de bază Bluetooth și devine acum parte a Linux Kernel oficial.
Blueman oferă interfața desktop pentru a gestiona și controla dispozitivele Bluetooth.
În cele din urmă, avem nevoie de Python Library pentru comunicarea Bluetooth, astfel încât să putem trimite și primi date prin RFCOMM folosind limbajul Python:
sudo apt-get install python-bluetooth
Instalați, de asemenea, bibliotecile de suport GPIO pentru Raspberry Pi:
sudo apt-get install python-rpi.gpio
Acum am terminat cu instalarea pachetelor necesare pentru comunicarea Bluetooth în Raspberry Pi.
Asocierea dispozitivelor cu Raspberry Pi prin Bluetooth:
Împerecherea dispozitivelor Bluetooth, cum ar fi telefonul mobil, cu Raspberry Pi este foarte ușoară. Aici ne-am asociat telefonul inteligent Android cu Raspberry Pi. Am instalat anterior BlueZ în Pi, care oferă un utilitar de linie de comandă numit „bluetoothctl” pentru a gestiona dispozitivele noastre Bluetooth. Dar înainte de aceasta, conectați-vă dongle-ul USB Bluetooth cu Raspberry Pi și verificați dacă este detectat sau nu, utilizând comanda de mai jos:
lsusb
Acum deschideți utilitarul bluetoothctl prin comanda de mai jos:
sudo bluetoothctl
Puteți verifica toate comenzile utilitarului bluetoothctl tastând „help” . Deocamdată trebuie să introducem mai jos comenzile în ordinea dată:
# pornire # agent activat # descoperibil pe # asociat pe # scanare activată
După ultima comandă „scan on”, veți vedea dispozitivul dvs. Bluetooth (telefon mobil) în listă. Asigurați-vă că mobilul dvs. are Bluetooth activat și vizibil de dispozitivele din apropiere. Apoi copiați adresa MAC a dispozitivului dvs. și asociați-o utilizând comanda dată:
pereche
Apoi vi se va solicita codul de acces sau PIN în consola terminalului, apoi introduceți codul de acces acolo și apăsați Enter. Apoi tastați aceeași parolă în telefonul mobil când vi se solicită și acum sunteți asociat cu succes cu Raspberry Pi. De asemenea, am explicat acest întreg proces în videoclipul nostru prezentat la sfârșit.
După cum am spus mai devreme, puteți utiliza și interfața desktop pentru a asocia telefonul mobil. După instalarea Blueman, veți vedea o pictogramă Bluetooth în partea dreaptă a desktopului dvs. Raspberry Pi, așa cum se arată mai jos, cu ajutorul căreia puteți face cu ușurință asocierea.
Diagrama circuitului:
Diagrama circuitului este foarte simplă, tocmai am conectat un LED la PIN 40 (GPIO 21) al Raspberry Pi cu un rezistor de 220 Ohm:
Controlul LED-urilor cu aplicația Android BlueTerm:
Acum, după analizarea telefonului mobil, trebuie să instalăm o aplicație Android pentru a comunica cu Raspberry Pi utilizând un adaptor serial Bluetooth. După cum am spus mai devreme, protocolul RFCOMM / SPP emulează comunicarea serială prin Bluetooth, așa că am instalat aici aplicația BlueTerm care acceptă acest protocol.
Puteți utiliza, de asemenea, orice altă aplicație Bluetooth Terminal care acceptă comunicarea prin socket RFCOMM.
Acum, după descărcarea și instalarea aplicației BlueTerm, rulați programul Python de mai jos de la terminal și conectați dispozitivul raspberrypi asociat din aplicația BlueTerm în același timp.
După o conexiune reușită, veți vedea conectat: raspberrypi în colțul din dreapta sus al aplicației, după cum se arată mai jos:
Acum puteți introduce doar „1” sau „0” din aplicația BlueTerm pentru a face pinul GPIO HIGH și respectiv LOW, care, la rândul său, pornesc și opresc LED-ul conectat la acest pin. Apăsați „q” pentru a ieși din program. Puteți utiliza tastatura Google Voice Typing pentru a controla GPIO folosind Voice. Verificați demo-ul complet în videoclipul prezentat la final.
Deci, astfel puteți controla fără fir pinul GPIO folosind o aplicație Android prin Bluetooth. De asemenea, verificați Cum să utilizați Bluetooth cu Arduino.
Explicație de programare:
Programul Python pentru controlul Raspberry Pi GPIO cu aplicația Android este foarte simplu și se explică de la sine. Doar trebuie să aflăm puțin despre codul legat de comunicarea Bluetooth RFCOMM. Mai întâi trebuie să importăm biblioteca de socket Bluetooth care ne permite să controlăm Bluetooth cu limbajul Python; am instalat biblioteca pentru același lucru în secțiunea anterioară.
import Bluetooth
Mai jos este codul responsabil pentru comunicarea Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Conexiune acceptată de la", adresa în timp ce 1: date = client_socket.recv (1024)
Aici le putem înțelege rând cu rând:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Se creează soclu pentru comunicarea RFCOMM Bluetooth.
server_socket.bind (("", port): - Serverul leagă scriptul de pe gazda '' la port.
server_socket.listen (1) : Serverul ascultă să accepte o conexiune la un moment dat.
client_socket, address = server_socket.accept () : Serverul acceptă cererea de conectare a clientului și atribuie adresa Mac la adresa variabilă , client_socket este soclul clientului
data = client_socket.recv (1024): Primiți date prin soclul client client_socket și alocați-le datelor variabile. Se pot primi maximum 1024 de caractere odată.
În cele din urmă, după toată programarea, închideți conexiunea client și server folosind codul de mai jos:
client_socket.close () server_socket.close ()
Toate celelalte coduri sunt ușoare și se explică de la sine. Verificați codul complet de mai jos. Încercați să modificați acest proiect și îl puteți utiliza pentru a controla multe alte lucruri fără fir, cum ar fi folosind relee, puteți controla aparatele electrocasnice sau puteți controla, de asemenea, o mașină robot prin intermediul telefonului Android.