- Instalación de los paquetes necesarios para la comunicación Bluetooth:
- Emparejamiento de dispositivos con Raspberry Pi a través de Bluetooth:
- Diagrama de circuito:
- Control de LED con la aplicación de Android BlueTerm:
- Explicación de programación:
Raspberry Pi es muy popular para proyectos de IoT debido a su perfecta capacidad de comunicación inalámbrica a través de Internet. Raspberry Pi 3 tiene Wi-Fi y Bluetooth incorporados, y Bluetooth es un protocolo de comunicación inalámbrica muy popular. Así que hoy vamos a controlar el Pin GPIO de Raspberry Pi a través de una aplicación de Android usando Bluetooth.
Aquí estamos usando Raspberry 2 Pi Model B que no tiene Bluetooth incorporado, por lo que estamos usando un simple dongle USB Bluetooth. Aparte de eso, solo necesitamos una resistencia (220R) y un LED para demostrar el control de GPIO. Aquí estamos usando el protocolo RFCOMM Bluetooth para la comunicación inalámbrica.
La programación para Bluetooth en Python sigue el modelo de programación de socket y las comunicaciones entre los dispositivos Bluetooth se realizan a través del socket RFCOMM. RFCOMM (comunicación por radiofrecuencia) es un protocolo Bluetooth que proporciona puertos serie RS-232 emulados y también se denomina emulación de puerto serie. El perfil del puerto serie Bluetooth se basa en este protocolo. RFCOMM es muy popular en aplicaciones Bluetooth debido a su amplio soporte y API disponible públicamente. Está vinculado al protocolo L2CAP.
También hemos utilizado el módulo Bluetooth HC-06 en nuestro proyecto anterior: LEDs controlados por voz usando Raspberry Pi. Consulte también nuestros proyectos anteriores de Raspberry Pi junto con algunos buenos proyectos de IoT.
Instalación de los paquetes necesarios para la comunicación Bluetooth:
Antes de comenzar, necesitamos instalar algunos softwares para configurar la comunicación Bluetooth en Raspberry Pi. Debería tener una tarjeta de memoria instalada Raspbian Jessie lista con Raspberry Pi. Consulte este artículo para instalar el sistema operativo Raspbian y comenzar con Raspberry Pi. Así que ahora primero necesitamos actualizar Raspbian usando los siguientes comandos:
sudo apt-get update sudo apt-get upgrade
Entonces necesitamos instalar algunos paquetes relacionados con Bluetooth:
sudo apt-get instalar bluetooth blueman bluez
Luego reinicia la Raspberry Pi:
sudo reiniciar
BlueZ es un proyecto de código abierto y una pila oficial de protocolos Bluetooth de Linux. Es compatible con todos los protocolos básicos de Bluetooth y ahora se convierte en parte del kernel oficial de Linux.
Blueman proporciona la interfaz de escritorio para administrar y controlar los dispositivos Bluetooth.
Finalmente, necesitamos Python Library para la comunicación Bluetooth para que podamos enviar y recibir datos a través de RFCOMM usando el lenguaje Python:
sudo apt-get install python-bluetooth
También instale las bibliotecas de soporte GPIO para Raspberry Pi:
sudo apt-get install python-rpi.gpio
Ahora hemos terminado con la instalación de los paquetes necesarios para la comunicación Bluetooth en Raspberry Pi.
Emparejamiento de dispositivos con Raspberry Pi a través de Bluetooth:
Emparejar dispositivos Bluetooth, como teléfonos móviles, con Raspberry Pi es muy fácil. Aquí hemos emparejado nuestro teléfono inteligente Android con Raspberry Pi. Ya hemos instalado BlueZ en Pi, que proporciona una utilidad de línea de comandos llamada "bluetoothctl" para administrar nuestros dispositivos Bluetooth. Pero antes de eso, conecte su dongle USB Bluetooth con Raspberry Pi y verifique si se detecta o no, usando el siguiente comando:
lsusb
Ahora abra la utilidad bluetoothctl con el siguiente comando:
sudo bluetoothctl
Puede comprobar todos los comandos de la utilidad bluetoothctl escribiendo "ayuda" . Por ahora, debemos ingresar los siguientes comandos en el orden dado:
# encendido # agente en # detectable en # emparejable en # escanear en
Después del último comando "escanear", verá su dispositivo Bluetooth (teléfono móvil) en la lista. Asegúrese de que su móvil tenga Bluetooth activado y sea visible para los dispositivos cercanos. Luego copie la dirección MAC de su dispositivo y vincúlelo usando el comando dado:
par
Luego, se le pedirá un código de acceso o PIN en la consola de su terminal, luego escriba el código de acceso allí y presione Intro. Luego, escriba el mismo código de acceso en su teléfono móvil cuando se le solicite y ahora estará emparejado con éxito con Raspberry Pi. También hemos explicado todo este proceso en nuestro Video que se da al final.
Como se dijo anteriormente, también puede usar la interfaz de escritorio para emparejar el teléfono móvil. Después de instalar Blueman, verá un icono de Bluetooth en el lado derecho de su escritorio Raspberry Pi como se muestra a continuación, con el cual puede hacer el emparejamiento fácilmente.
Diagrama de circuito:
El diagrama del circuito es muy simple, solo conectamos un LED al PIN 40 (GPIO 21) de Raspberry Pi con una resistencia de 220 Ohm:
Control de LED con la aplicación de Android BlueTerm:
Ahora, después de emparejar el teléfono móvil, necesitamos instalar una aplicación de Android para comunicarnos con Raspberry Pi mediante un adaptador serie Bluetooth. Como se dijo anteriormente, el protocolo RFCOMM / SPP emula la comunicación en serie a través de Bluetooth, por lo que instalamos aquí la aplicación BlueTerm que admite este protocolo.
También puede utilizar cualquier otra aplicación de terminal Bluetooth que admita la comunicación a través de la toma RFCOMM.
Ahora, después de descargar e instalar la aplicación BlueTerm, ejecute el programa Python que se indica a continuación desde el terminal y conecte el dispositivo raspberrypi emparejado desde la aplicación BlueTerm al mismo tiempo.
Después de una conexión exitosa, verá conectado: raspberrypi en la esquina superior derecha de la aplicación como se muestra a continuación:
Ahora puede ingresar '1' o '0' desde la aplicación BlueTerm para hacer que el pin GPIO sea ALTO y BAJO respectivamente, que a su vez enciende y apaga el LED conectado a este pin. Presione 'q' para salir del programa. Puede usar el teclado de escritura por voz de Google para controlar el GPIO usando su voz. Consulta la demostración completa en el vídeo que se incluye al final.
Así es como puede controlar de forma inalámbrica el Pin GPIO utilizando una aplicación de Android a través de Bluetooth. También consulte Cómo usar Bluetooth con Arduino.
Explicación de programación:
El programa Python para controlar Raspberry Pi GPIO con la aplicación de Android es muy simple y se explica por sí mismo. Solo necesitamos aprender un poco sobre el código relacionado con la comunicación Bluetooth RFCOMM. Primero necesitamos importar la biblioteca de tomas de Bluetooth que nos permite controlar Bluetooth con lenguaje Python; hemos instalado la biblioteca para el mismo en la sección anterior.
importar Bluetooth
A continuación se muestra el código responsable de la comunicación Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) puerto = 1 server_socket.bind (("", puerto)) server_socket.listen (1) client_socket, address = server_socket.accept () imprimir "Conexión aceptada desde", dirección mientras que 1: datos = client_socket.recv (1024)
Aquí podemos entenderlos línea por línea:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Creación de un conector para la comunicación Bluetooth RFCOMM.
server_socket.bind (("", puerto): - El servidor enlaza el script en el host '' al puerto.
server_socket.listen (1) : el servidor escucha para aceptar una conexión a la vez.
client_socket, address = server_socket.accept () : el servidor acepta la solicitud de conexión del cliente y asigna la dirección mac a la dirección variable , client_socket es el socket del cliente
data = client_socket.recv (1024): Reciba datos a través del socket del cliente client_socket y asígnelos a los datos variables. Se puede recibir un máximo de 1024 caracteres a la vez.
Finalmente, después de toda la programación, cierre la conexión del cliente y el servidor usando el siguiente código:
client_socket.close () server_socket.close ()
Todo el resto del código es fácil y autoexplicativo. Consulte el código completo a continuación. Intente modificar este proyecto y puede usarlo para controlar muchas otras cosas de forma inalámbrica, como usar Relés, puede controlar los electrodomésticos o también puede controlar un automóvil Robot a través de un teléfono Android.