- Installazione dei pacchetti necessari per la comunicazione Bluetooth:
- Associazione di dispositivi con Raspberry Pi tramite Bluetooth:
- Schema elettrico:
- Controllo dell'appliance AC 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 gli elettrodomestici tramite Smart Phone utilizzando Raspberry Pi 3 e Bluetooth.
Qui stiamo usando Raspberry Pi 3 che ha Bluetooth integrato, quindi non abbiamo bisogno di utilizzare alcun dongle Bluetooth USB esterno. A parte questo, abbiamo bisogno solo di moduli relè per questo progetto di automazione domestica wireless. 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 viene anche chiamato 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.
Se si dispone di Raspberry Pi 2, è necessario utilizzare un dongle Bluetooth esterno o il modulo Bluetooth HC-06. Controlla i nostri progetti precedenti per l'utilizzo di questi dispositivi Bluetooth esterni: Controllo GPIO Raspberry Pi utilizzando l'app Android tramite Bluetooth e 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.
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 video fornito nel precedente tutorial sul controllo GPIO. Ecco il link diretto a YouTube.
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 per questa automazione domestica controllata Bluetooth basata su Raspberry Pi è molto semplice, abbiamo appena collegato il segnale di ingresso del modulo relè al PIN 40 (GPIO 21) di Raspberry Pi e altri due pin (Vcc e GND del modulo relè) ai pin 2 e 6 di Raspberry Pi 3. Quindi abbiamo collegato una lampadina CFL CA al relè come mostrato nello schema del circuito:
Se non conosci Relay e vuoi saperne di più su Relay e sui suoi collegamenti con il dispositivo AC, consulta questo articolo.
Controllo dell'appliance AC 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, in modo da poter controllare i pin GPIO di Raspberry Pi. 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 rispettivamente il pin GPIO ALTO e BASSO, che a sua volta attiva il modulo Relè collegato a questo pin, che controlla ulteriormente la lampadina CA collegata a Relè. 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.
Ecco come puoi controllare in modalità wireless il dispositivo AC 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, Robot car tramite telefono Android o puoi usare la tua voce per controllare le luci.
Controlla anche i nostri numerosi tipi di progetti di automazione domestica che utilizzano diverse tecnologie e microcontrollori come: