- Instal·lació dels paquets necessaris per a la comunicació Bluetooth:
- Emparellament de dispositius amb Raspberry Pi per Bluetooth:
- Esquema de connexions:
- Control de LED amb l'aplicació Android BlueTerm:
- Explicació de la programació:
Raspberry Pi és molt popular per als projectes IoT a causa de la seva capacitat de comunicació sense fils a través d’Internet. Raspberry Pi 3 té Wi-Fi i Bluetooth incorporats, i el Bluetooth és un protocol de comunicació sense fils molt popular. Per tant, avui controlarem el pin GPIO Raspberry Pi mitjançant una aplicació per a Android mitjançant Bluetooth.
Aquí fem servir Raspberry 2 Pi Model B que no tenen Bluetooth incorporat, de manera que fem servir un simple dongle Bluetooth USB. A part, només necessitem una resistència (220R) i un LED per demostrar el control GPIO. Aquí estem utilitzant el protocol RFCOMM Bluetooth per a la comunicació sense fils.
La programació per Bluetooth a Python segueix el model de programació de sòcol i les comunicacions entre els dispositius Bluetooth es fan mitjançant el sòcol RFCOMM. RFCOMM (Radio Frequency Communication) és un protocol Bluetooth que proporcionava ports sèrie RS-232 emulats i també anomenat emulació de port sèrie. El perfil del port sèrie Bluetooth es basa en aquest protocol. RFCOMM és molt popular a les aplicacions Bluetooth a causa del seu ampli suport i de l'API disponible públicament. Està vinculat al protocol L2CAP.
També hem utilitzat el mòdul Bluetooth HC-06 en el nostre projecte anterior: LED controlats per veu mitjançant Raspberry Pi. Consulteu també els nostres anteriors projectes de Raspberry Pi juntament amb alguns bons projectes IoT.
Instal·lació dels paquets necessaris per a la comunicació Bluetooth:
Abans de començar, hem d’instal·lar alguns programes per configurar la comunicació Bluetooth a Raspberry Pi. Hauríeu de tenir instal·lada una targeta de memòria Raspbian Jessie amb Raspberry Pi. Consulteu aquest article per instal·lar el sistema operatiu Raspbian i començar a utilitzar Raspberry Pi. Per tant, ara hem d’actualitzar primer Raspbian mitjançant les ordres següents:
sudo apt-get update sudo apt-get upgrade
A continuació, hem d’instal·lar alguns paquets relacionats amb Bluetooth:
sudo apt-get install bluetooth blueman bluez
A continuació, reinicieu el Raspberry Pi:
sudo reiniciar
BlueZ és un projecte de codi obert i una pila oficial de protocols Bluetooth de Linux. Admet tots els protocols Bluetooth bàsics i ara passa a formar part del nucli oficial de Linux.
Blueman proporciona la interfície d'escriptori per gestionar i controlar els dispositius Bluetooth.
Finalment, necessitem la biblioteca Python per a la comunicació Bluetooth per poder enviar i rebre dades mitjançant RFCOMM mitjançant el llenguatge Python:
sudo apt-get install python-bluetooth
Instal·leu també les biblioteques de suport GPIO per a Raspberry Pi:
sudo apt-get install python-rpi.gpio
Ara hem acabat d’instal·lar els paquets necessaris per a la comunicació Bluetooth a Raspberry Pi.
Emparellament de dispositius amb Raspberry Pi per Bluetooth:
Emparellar dispositius Bluetooth, com el telèfon mòbil, amb Raspberry Pi és molt fàcil. Aquí hem emparellat el nostre telèfon intel·ligent Android amb Raspberry Pi. Anteriorment hem instal·lat BlueZ a Pi, que proporciona una utilitat de línia d’ordres anomenada “bluetoothctl” per gestionar els nostres dispositius Bluetooth. Abans, però, connecteu el vostre dongle Bluetooth USB amb Raspberry Pi i comproveu si es detecta o no, mitjançant l'ordre següent:
lsusb

Ara obriu la utilitat bluetoothctl mitjançant l'ordre següent:
sudo bluetoothctl
Podeu comprovar totes les ordres de la utilitat bluetoothctl escrivint "ajuda" . De moment, hem d’introduir a continuació les ordres en un ordre determinat:
# engegada # agent activada # descoberta el # emparellable en # escaneig activada
Després de l'última ordre "scan on", veureu el dispositiu Bluetooth (telèfon mòbil) a la llista. Assegureu-vos que el dispositiu mòbil tingui el Bluetooth activat i visible pels dispositius propers. A continuació, copieu l'adreça MAC del vostre dispositiu i emparegeu-la mitjançant l'ordre donada:
parella
A continuació, se us demanarà una contrasenya o un PIN a la consola del terminal i, a continuació, escriviu la contrasenya i premeu Retorn. A continuació, escriviu la mateixa contrasenya al vostre telèfon mòbil quan se us demani i ja estigueu sincronitzat amb Raspberry Pi. També hem explicat tot aquest procés al nostre vídeo presentat al final.

Com s’ha dit anteriorment, també podeu utilitzar la interfície d’escriptori per emparellar el telèfon mòbil. Després d’instal·lar Blueman, veureu una icona Bluetooth al costat dret de l’escriptori Raspberry Pi, tal com es mostra a continuació, amb la qual podeu fer fàcilment l’aparellament.

Esquema de connexions:
El diagrama de circuits és molt senzill, acabem de connectar un LED al PIN 40 (GPIO 21) de Raspberry Pi amb una resistència de 220 Ohm:

Control de LED amb l'aplicació Android BlueTerm:
Després d’haver analitzat el telèfon mòbil, hem d’instal·lar una aplicació d’Android per comunicar-nos amb Raspberry Pi mitjançant un adaptador de sèrie Bluetooth. Com ja es va dir anteriorment, el protocol RFCOMM / SPP emula la comunicació en sèrie mitjançant Bluetooth, de manera que hem instal·lat aquí l' aplicació BlueTerm que admet aquest protocol.

També podeu utilitzar qualsevol altra aplicació de terminal Bluetooth que admeti la comunicació mitjançant el sòcol RFCOMM.
Ara, després de descarregar i instal·lar l'aplicació BlueTerm, executeu el programa Python que s'indica a continuació des del terminal i connecteu el dispositiu raspberrypi emparellat des de l'aplicació BlueTerm alhora.

Després de la connexió correcta, veureu connectat: raspberrypi a l'extrem superior dret de l'aplicació, tal com es mostra a continuació:


Ara només podeu introduir '1' o '0' des de l'aplicació BlueTerm per fer el pin GPIO HIGH i LOW respectivament, que a la vegada engega i apaga el LED connectat a aquest pin. Premeu 'q' per sortir del programa. Podeu utilitzar el teclat de mecanografia de veu de Google per controlar el GPIO mitjançant la vostra veu. Consulteu la demostració completa al vídeo que apareix al final.
Així és com podeu controlar sense fils el pin GPIO mitjançant una aplicació per Android mitjançant Bluetooth. Consulteu també Com utilitzar Bluetooth amb Arduino.
Explicació de la programació:
El programa Python per al control de Raspberry Pi GPIO amb aplicació per a Android és molt senzill i s’explica per si mateix. Només hem d’aprendre poc sobre el codi relacionat amb la comunicació RFCOMM Bluetooth. Primer, hem d’importar la biblioteca de sòcol Bluetooth que ens permet controlar Bluetooth amb llenguatge Python; hem instal·lat la biblioteca per a la mateixa a la secció anterior.
importar Bluetooth
A continuació es mostra el codi responsable de la comunicació Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () imprimeix "Connexió acceptada des de", adreça mentre que 1: data = client_socket.recv (1024)
Aquí els podem entendre línia per línia:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): crea socket per a la comunicació RFCOMM Bluetooth.
server_socket.bind (("", port): - El servidor vincula l'script de l'amfitrió '' al port.
server_socket.listen (1) : el servidor escolta com acceptar una connexió cada vegada.
client_socket, address = server_socket.accept () : el servidor accepta la sol·licitud de connexió del client i assigna l'adreça mac a l' adreça variable , client_socket és el sòcol del client
data = client_socket.recv (1024): rebeu dades a través del socket client_socket del client i assigneu-les a les dades variables. Es poden rebre un màxim de 1024 caràcters alhora.
Finalment, després de tota la programació, tanqueu la connexió client i servidor utilitzant el codi següent:
client_socket.close () server_socket.close ()
La resta de codi és fàcil i s’explica per si mateix. Consulteu el codi complet a continuació. Proveu de modificar aquest projecte i el podeu utilitzar per controlar moltes altres coses sense fils, com ara mitjançant relés, podeu controlar els electrodomèstics o també podeu controlar un cotxe robot mitjançant un telèfon Android.
