- Installazione dei pacchetti necessari per la comunicazione Bluetooth:
- Associazione di dispositivi con Raspberry Pi tramite Bluetooth:
- Schema elettrico:
- Controllo dei LED con l'app Android BlueTerm:
- Spiegazione della programmazione:
Raspberry Pi è molto popolare per i progetti IoT grazie alla sua perfetta capacità di comunicazione wireless su Internet. Raspberry Pi 3 ha Wi-Fi e Bluetooth integrati e Bluetooth è un protocollo di comunicazione wireless molto popolare. Quindi oggi controlleremo il pin GPIO di Raspberry Pi tramite un'app Android utilizzando Bluetooth.
Qui stiamo usando Raspberry 2 Pi Model B che non ha Bluetooth integrato, quindi stiamo usando un semplice dongle USB Bluetooth. A parte questo, abbiamo solo bisogno di una resistenza (220R) e di un LED per dimostrare il controllo GPIO. Qui stiamo usando il protocollo Bluetooth RFCOMM per la comunicazione wireless.
La programmazione per Bluetooth in Python segue il modello di programmazione socket e la comunicazione tra i dispositivi Bluetooth avviene tramite socket RFCOMM. RFCOMM (Radio Frequency Communication) è un protocollo Bluetooth che fornisce porte seriali RS-232 emulate e chiamato anche Serial Port Emulation. Il profilo della porta seriale Bluetooth si basa su questo protocollo. RFCOMM è molto popolare nelle applicazioni Bluetooth grazie al suo ampio supporto e all'API disponibile pubblicamente. È associato al protocollo L2CAP.
Abbiamo anche utilizzato il modulo Bluetooth HC-06 nel nostro progetto precedente: LED a comando vocale utilizzando Raspberry Pi. Controlla anche i nostri precedenti progetti Raspberry Pi insieme ad alcuni buoni progetti IoT.
Installazione dei pacchetti necessari per la comunicazione Bluetooth:
Prima di iniziare, è necessario installare alcuni software per impostare la comunicazione Bluetooth in Raspberry Pi. Dovresti avere una scheda di memoria installata Raspbian Jessie pronta con Raspberry Pi. Controlla questo articolo per installare il sistema operativo Raspbian e iniziare con Raspberry Pi. Quindi ora dobbiamo prima aggiornare Raspbian usando i seguenti comandi:
sudo apt-get update sudo apt-get upgrade
Quindi dobbiamo installare alcuni pacchetti relativi al Bluetooth:
sudo apt-get install bluetooth blueman bluez
Quindi riavvia il Raspberry Pi:
sudo riavvio
BlueZ è un progetto open source e stack di protocollo Bluetooth ufficiale di Linux. Supporta tutti i protocolli Bluetooth principali e ora diventa parte del kernel Linux ufficiale.
Blueman fornisce l'interfaccia Desktop per gestire e controllare i dispositivi Bluetooth.
Infine abbiamo bisogno della libreria python per la comunicazione Bluetooth in modo da poter inviare e ricevere dati tramite RFCOMM utilizzando il linguaggio Python:
sudo apt-get install python-bluetooth
Installa anche le librerie di supporto GPIO per Raspberry Pi:
sudo apt-get install python-rpi.gpio
Ora abbiamo finito con l'installazione dei pacchetti richiesti per la comunicazione Bluetooth in Raspberry Pi.
Associazione di dispositivi con Raspberry Pi tramite Bluetooth:
Associare dispositivi Bluetooth, come il telefono cellulare, a Raspberry Pi è molto semplice. Qui abbiamo accoppiato il nostro smartphone Android con Raspberry Pi. Abbiamo già installato BlueZ in Pi, che fornisce un'utilità della riga di comando chiamata "bluetoothctl" per gestire i nostri dispositivi Bluetooth. Ma prima, collega il tuo dongle Bluetooth USB con Raspberry Pi e verifica che venga rilevato o meno, utilizzando il comando seguente:
lsusb
Ora apri l' utilità bluetoothctl con il comando seguente:
sudo bluetoothctl
Puoi controllare tutti i comandi dell'utility bluetoothctl digitando "help" . Per ora dobbiamo inserire i seguenti comandi nell'ordine dato:
# accensione # agente attivo # rilevabile su # accoppiabile su # scansione attiva
Dopo l'ultimo comando "scan on", vedrai il tuo dispositivo Bluetooth (cellulare) nell'elenco. Assicurati che il tuo cellulare abbia il Bluetooth attivato e visibile dai dispositivi nelle vicinanze. Quindi copia l'indirizzo MAC del tuo dispositivo e abbinalo usando il comando dato:
paio
Quindi ti verrà richiesto il codice di accesso o il PIN nella console del terminale, quindi digita il codice di accesso e premi Invio. Quindi digita lo stesso passcode nel tuo telefono cellulare quando richiesto e ora sei accoppiato con successo con Raspberry Pi. Abbiamo anche spiegato l' intero processo nel nostro video fornito alla fine.
Come detto in precedenza, puoi anche utilizzare l' interfaccia Desktop per accoppiare il telefono cellulare. Dopo aver installato Blueman, vedrai un'icona Bluetooth sul lato destro del desktop Raspberry Pi come mostrato di seguito, utilizzando il quale puoi facilmente eseguire l'accoppiamento.
Schema elettrico:
Lo schema del circuito è molto semplice, abbiamo appena collegato un LED al PIN 40 (GPIO 21) del Raspberry Pi con una resistenza da 220 Ohm:
Controllo dei LED con l'app Android BlueTerm:
Ora dopo aver associato il telefono cellulare, dobbiamo installare un'app Android per comunicare con Raspberry Pi utilizzando un adattatore seriale Bluetooth. Come detto in precedenza, il protocollo RFCOMM / SPP emula la comunicazione seriale tramite Bluetooth, quindi abbiamo installato qui BlueTerm App che supporta questo protocollo.
È inoltre possibile utilizzare qualsiasi altra app per terminale Bluetooth che supporti la comunicazione tramite presa RFCOMM.
Ora, dopo aver scaricato e installato l'app BlueTerm, eseguire il programma Python indicato di seguito dal terminale e collegare contemporaneamente il dispositivo raspberrypi associato dall'app BlueTerm.
Dopo la connessione riuscita vedrai connesso: raspberrypi nell'angolo in alto a destra dell'App come mostrato di seguito:
Ora puoi semplicemente inserire '1' o '0' dall'app BlueTerm per rendere il pin GPIO ALTO e BASSO rispettivamente, che a sua volta accendono e spengono il LED collegato a questo pin. Premere "q" per uscire dal programma. Puoi utilizzare la tastiera di digitazione vocale di Google per controllare il GPIO utilizzando la tua voce. Controlla la demo completa nel video fornito alla fine.
Quindi è così che puoi controllare in modalità wireless il pin GPIO utilizzando un'app Android tramite Bluetooth. Controlla anche Come usare il Bluetooth con Arduino.
Spiegazione della programmazione:
Il programma Python per il controllo del GPIO Raspberry Pi con l'app Android è molto semplice e intuitivo. Abbiamo solo bisogno di imparare un po 'sul codice relativo alla comunicazione Bluetooth RFCOMM. Per prima cosa dobbiamo importare la libreria socket Bluetooth che ci permette di controllare il Bluetooth con il linguaggio Python; abbiamo installato la libreria per lo stesso nella sezione precedente.
importa Bluetooth
Di seguito è riportato il codice responsabile della comunicazione Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Connessione accettata da", indirizzo mentre 1: data = client_socket.recv (1024)
Qui possiamo capirli riga per riga:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): creazione di socket per la comunicazione Bluetooth RFCOMM.
server_socket.bind (("", port): - Il server collega lo script sull'host '' alla porta.
server_socket.listen (1) : il server ascolta per accettare una connessione alla volta.
client_socket, address = server_socket.accept () : il server accetta la richiesta di connessione del client e assegna l'indirizzo mac all'indirizzo della variabile , client_socket è il socket del client
data = client_socket.recv (1024): riceve i dati tramite il client socket client_socket e li assegna alla variabile data . È possibile ricevere un massimo di 1024 caratteri alla volta.
Infine, dopo tutta la programmazione, chiudere la connessione client e server utilizzando il codice seguente:
client_socket.close () server_socket.close ()
Tutto il resto del codice è facile e autoesplicativo. Controlla il codice completo di seguito. Prova a modificare questo progetto e puoi usarlo per controllare molte altre cose in modalità wireless, come usare i relè puoi controllare gli elettrodomestici o puoi anche controllare un'auto robot tramite il telefono Android.