|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Raspberry Pi

Tutorial de Rapberry Pi en español.
- Juan Antonio Villalpando -

Volver al índice del tutorial

____________________________

31.- Bluetooth.

p9B3_enviar_recibir_RaspBerry.aia

- Vamos a enviar información desde App Inventor al Bluetooth de Raspberry.

- Enviaremos ciclos continuos de 5 bytes, un byte cada segundo.

- Conectamos con la direccion MAC Bluetooth del Raspberry.

_____________________________________
- Diseño.

_____________________________________
- Bloques.

____________________________

- Raspberry.

__________________________
1.- Instalación y arranque.

sudo apt-get update 
sudo apt-get install bluetooth
sudo apt-get install bluez
sudo apt-get install python-bluez
sudo apt-get install bluez-utils

sudo apt-get install python-bluetooth (no es necesario)


service bluetooth start
service bluetooth status

__________________________
2.- Activación y vinculación.

- Activamos el Bluetooth y lo vinculamos con nuestro móvil.

sudo bluetoothctl 
[bluetooth]# power on 
[bluetooth]# agent on
[bluetooth]# discoverable on 
[bluetooth]# pairable on 
[bluetooth]# scan on 
[bluetooth]# pair MAC BLUETOOTH DEL MÓVIL

[bluetooth]# paired-devices
[bluetooth]# help

# sudo hciconfig hci0 piscan Esto es igual que lo anterior.

hcitool scan
hcitool dev
hciconfig -a

sudo rfcomm connect hci0

__________________________
3.- Establecimiento del canal.

- Vamos a activar el canal 22

sudo sdptool add --channel=22 SP

- Comprobamos si ese puerto está activado:

sudo sdptool browse local

- En caso que obtengas este error: Failed to connect to SDP server on FF:FF:FF:00:00:00:No such file or directory

- Entra en el archivo:

sudo nano/lib/systemd/system/bluetooth.service

- Añade --compat a esta línea:

ExecStart=/usr/lib/bluetooth/bluetoothd --compat

- Reinicia el servicio bluetooth

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

- Cambia los permisos de este archivo

sudo chmod 777 /var/run/sdp

- Ejecuta de nuevo

sudo sdptool browse local

- Debemos obtener algo así... observa el Channel: 22

Service Name: Serial Port
Service Description: COM Port
Service Provider: BlueZ
Service RecHandle: 0x10003
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 22
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Serial Port" (0x1101)
Version: 0x0100

__________________________
4.- Script servidor Bluetooth con Phyton.

- En el Raspberry creamos este archivo llamado bluetooth4.py en Python, con el siguiente contenido...

- El puerto debe ser el establecido en:

sudo sdptool add --channel=22 SP

bluetooth4.py

import bluetooth 
server_sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM ) 
port = 22
server_sock.bind(("",port)) 
server_sock.listen(1) 
client_sock,address = server_sock.accept() 
print ("Conexion realizada con: ", address) 
while True: 
    recvdata = client_sock.recv(1024) 
    print ("Informacion recibida: %s" % recvdata)
    if (recvdata == "Q"): 
        print ("Finalizado.") 
        break
         
client_sock.close() 
server_sock.close()

__________________________
5.- Ejecución del Script.

- Ahora lo ejecutamos desde el terminal de Raspberry:

python2 bluetooth4.py

(con python3, ver más abajo)

- Cuando pulsemos el Botón de inicio de la aplicación de App Inventor, debemos obtener:

- Se pueden conectar varios Bluetooth a la vez al servidor del Raspberry.

_______________________
- Con Python3

sudo apt-get install bluetooth libbluetooth-dev
sudo python3 -m pip install pybluez

__________________________
6.- Otro ejemplo.

- Cuando recibe el dato 0 o el 1, apaga o enciende el LED 21

https://circuitdigest.com/ microcontroller-projects/ controlling-raspberry-pi-gpio- using-android-app-over- bluetooth

bluetooth4.py
import bluetooth
import RPi.GPIO as GPIO        #calling for header file which helps in using GPIOs of PI
LED=21

GPIO.setmode(GPIO.BCM)     #programming the GPIO by BCM pin numbers. (like PIN40 as GPIO21)
GPIO.setwarnings(False)
GPIO.setup(LED,GPIO.OUT)  #initialize GPIO21 (LED) as an output Pin
GPIO.output(LED,0)

server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM )

port = 22
server_socket.bind(("",port))
server_socket.listen(1)

client_socket,address = server_socket.accept()
print "Accepted connection from ",address
while 1:

  data = client_socket.recv(1024)
  print "Received: %s" % data
  if (data == "0"):    #if '0' is sent from the Android App, turn OFF the LED
  print ("GPIO 21 LOW, LED OFF")
  GPIO.output(LED,0)
  if (data == "1"):    #if '1' is sent from the Android App, turn OFF the LED
  print ("GPIO 21 HIGH, LED ON")
  GPIO.output(LED,1)
  if (data == "q"):
  print ("Quit")
  break

client_socket.close()
server_socket.close()

___________________________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información