Esta pagina se ve mejor con JavaScript habilitado

Módulo bluetooth en Arduino

 ·  🎃 kr0m

En multitud de ocasiones nos es necesario transmitir datos de forma inalámbrica, una buena forma de hacerlo es empleando bluetooth, una tecnología bastante antigua pero que nos sirve para nuestros propósitos. En el siguiente artículo se explica como realizar la conexión con el dispositivo mediante minicom.

Para empezar instalaremos minicom:

emerge -av minicom

Configuramos el puerto de minicom, como root:

minicom -s

Cambiamos el puerto a ttyUSB0, ahora ya podemos arrancar minicom como usuario regular.

Conectamos RX del FDDI al TX del BT y viceversa.

En la consola del minicom pegamos con el botón de en medio del ratón:

AT
AT+VERSION
AT+BAUD4
AT+NAMENemesis

Con esto sacamos la versión del firmware, configuramos la velocidad de transferencia del puerto serie a 9600 bps y le ponemos un nombre.

Las diferentes tasas de transferencia son:

    1 for 1200 bps
    2     2400 bps
    3     4800 bps
    4     9600 bps
    5    19200 bps
    6    38400 bps
    7    57600 bps
    8   115200 bps
    9   230400 bps
    A   460800 bps
    B   921600 bps
    C  1382400 bps

Se podría cambiar el pin con:

AT+PINxxxx

Por defecto: 1234

Ahora ya podemos emparejar el pc con el BT.

hcitool scan

Scanning ...
    AA:AA:AA:AA:AA:AA    Nemesis

Alimentamos el BT y ejecutamos simple-agent para asociarnos a él:

simple-agent hci0 AA:AA:AA:AA:AA:AA

bluez-test-device trusted AA:AA:AA:AA:AA:AA yes
bluez-test-device trusted AA:AA:AA:AA:AA:AA
1
vi /etc/bluetooth/rfcomm.conf
rfcomm0 {
        # Automatically bind the device at startup
        bind yes;

        # Bluetooth address of the device
        device AA:AA:AA:AA:AA:AA;

        # RFCOMM channel for the connection
        channel 1;

        # Description of the connection
        comment "Nemesis connection";
}
vi /etc/bluetooth/hcid.conf
# HCId options
options {
   # Automatically initialize new devices
   autoinit yes;

   # Security Manager mode
   #   none - Security manager disabled
   #   auto - Use local PIN for incoming connections
   #   user - Always ask user for a PIN
   #
   security user;

   # Pairing mode
   #   none  - Pairing disabled
   #   multi - Allow pairing with already paired devices
   #   once  - Pair once and deny successive attempts
   pairing multi;

   # Default PIN code for incoming connections
   #passkey "1234";
    pin_helper /etc/bluetooth/pin;
}

device AA:AA:AA:AA:AA:AA {
        name "Nemesis";
        auth enable;
        #encrypt enable;
}
/etc/init.d/bluetooth restart

Creamos nuestro puerto serie-BT:

rfcomm bind 0 AA:AA:AA:AA:AA:AA

Ahora tenemos un dsp en /dev/rfcomm0

Podemos arrancar minicom con:

minicom -D /dev/rfcomm0

Para hagilizar esto podemos crearnos un script:

vi /home/USER/.scripts/ardBT.sh

#! /bin/bash
simple-agent hci0 AA:AA:AA:AA:AA:AA
bluez-test-device trusted AA:AA:AA:AA:AA:AA yes
rfcomm bind 0 AA:AA:AA:AA:AA:AA
minicom -D /dev/rfcomm0

Configuramos sudo para poder ejecutarlo desde un usuario regular:

visudo

USER ALL=NOPASSWD: /home/USER/.scripts/ardBT.sh
Si te ha gustado el artículo puedes invitarme a un RedBull aquí