- 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:
- Controlar el aparato de CA 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 los electrodomésticos a través de un teléfono inteligente usando Raspberry Pi 3 y Bluetooth.
Aquí estamos usando Raspberry Pi 3 que tiene Bluetooth incorporado, por lo que no necesitamos usar ningún dispositivo Bluetooth USB externo. Aparte de eso, solo necesitamos módulos de relé para este proyecto de automatización del hogar inalámbrico. 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.
Si tiene Raspberry Pi 2, entonces necesita usar un dongle Bluetooth externo o el módulo Bluetooth HC-06. Consulte nuestros proyectos anteriores para el uso de estos dispositivos Bluetooth externos: Control de Raspberry Pi GPIO usando la aplicación de Android a través de Bluetooth y LED 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.
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á el código de acceso o el PIN en la consola de su terminal, luego escriba el código de acceso allí y presione enter. 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 el Video dado en el Tutorial de control GPIO anterior. Aquí está el enlace directo de YouTube.
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 de circuito para esta automatización del hogar controlada por Bluetooth basada en Raspberry Pi es muy simple, solo conectamos el pin de señal de entrada del módulo de relé al PIN 40 (GPIO 21) de Raspberry Pi y otros dos pines (Vcc y GND del módulo de relé) a los pines 2 y 6 de Raspberry Pi 3. Luego, hemos conectado una bombilla CFL de CA al relé como se muestra en el diagrama del circuito:
Si es nuevo en Relay y desea obtener más información sobre Relay y sus conexiones con un aparato de CA, consulte este artículo.
Controlar el aparato de CA 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, de modo que podamos controlar los pines GPIO de Raspberry Pi. 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 simplemente ingresar '1' o '0' desde la aplicación BlueTerm para hacer que el pin GPIO sea ALTO y BAJO respectivamente, lo que a su vez activa el módulo de relé conectado a este pin, que controla aún más la bombilla de CA conectada al relé. 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 dispositivo de CA mediante 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 se explica por sí mismo. Consulte el código completo a continuación. Intente modificar este proyecto y puede usarlo para controlar muchas otras cosas de forma inalámbrica, un coche robot a través de un teléfono Android o puede usar su voz para controlar las luces.
Consulte también nuestros muchos tipos de proyectos de automatización del hogar utilizando diferentes tecnologías y microcontroladores como: