Collegare un HC-06 a Rpi

Attenzione! Questa pagina contiene materiale obsoleto Attenzione!

In fase di sviluppo Leggere le avvertenze In fase di sviluppo

L'attuale versione di Raspbian /Jessie ha complicato un po' la vita a chi deve collegare un modulo HC-06 o simili, spesso usato per Arduino oppure per un generico microcontrollore. Sebbene questa pagina sia stata scritta pensando ad un sistema Raspberry head-less, è stata sperimentata con successo anche con un normale desktop Debian Stretch. La procedura è identica sia utilizzando il modulo standard del Raspberry Pi 3 che un generico adattatore USB-Bluetooth.

Occorre innanzitutto attivare i profili "legacy" necessari, aggiungendo nel file /etc/systemd/system/dbus-org.bluez.service quanto qui di seguito evidenziato.

pi@vv-rpi:~ $ sudo nano /etc/systemd/system/dbus-org.bluez.service
...
ExecStart=/usr/lib/bluetooth/bluetoothd
-C
ExecStartPost=/usr/bin/sdptool add SP
...

Quindi riavviare ed individuare l'indirizzo del dispositivo HC-06 da collegare (nota 1):

pi@vv-rpi:~ $ bluetoothctl
[NEW] Controller 00:1A:7D:DA:71:xx vv-rpi [default]
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:xx Discovering: yes
[NEW] Device 30:14:10:17:25:xx 30-14-10-17-25-xx
[CHG] Device 30:14:10:17:25:xx LegacyPairing: no
[CHG] Device 30:14:10:17:25:xx Name: HC-06
[CHG] Device 30:14:10:17:25:xx Alias: HC-06
[CHG] Device 30:14:10:17:25:xx LegacyPairing: yes

[bluetooth]# info 30:14:10:17:25:xx
Device 30:14:10:17:25:xx
  Name: HC-06
  Alias: HC-06
  Class: 0x001f00
  Paired: no
  Trusted: no
  Blocked: no
  Connected: no
  LegacyPairing: yes

Procedere quindi al pairing, inserendo quando richiesto il PIN code (note 2 e 3):

[bluetooth]# agent on
Agent registered
[bluetooth]# pair 30:14:10:17:25:xx
Attempting to pair with 30:14:10:17:25:xx
[CHG] Device 30:14:10:17:25:xx Connected: yes
Request PIN code
[agent] Enter PIN code: 1234
[CHG] Device 30:14:10:17:25:xx Paired: yes
Pairing successful
[CHG] Device 30:14:10:17:25:xx Connected: no
[bluetooth]# trust 30:14:10:17:25:xx
[CHG] Device 30:14:10:17:25:xx Trusted: yes
Changing 30:14:10:17:25:xx trust succeeded
[bluetooth]# info 30:14:10:17:25:xx
Device 30:14:10:17:25:xx
  Name: HC-060
  Alias: HC-06
  Class: 0x001f00
  Paired: yes
  Trusted: yes
  Blocked: no
  Connected: no
  LegacyPairing: yes
[bluetooth]# quit

Infine è necessario creare nella directory /dev/ il disposivo a cui dovrà collegarsi il terminale o il programma:

pi@vv-rpi:~ $ sudo rfcomm bind hci0 30:14:10:17:25:xx

pi@vv-rpi:~ $ ls -l /dev/rf*
crw-rw---- 1 root dialout 216, 0 Feb 6 19:21 /dev/rfcomm0

L'utente che dovrà utilizzare il dispositivo dovrà evidentemente appartenere al gruppo dialout.

Di seguito un esempio di funzionamento con minicom. ed un piccolo programma in C che utilizza wiringPi. Il dispositivo utilizzato come periferica HC06 è descritto in questa pagina.

pi@vv-rpi:~ $ minicom -D /dev/rfcomm0

Welcome to minicom 2.7

OPTIONS: I18n
Compiled on Jan 12 2014, 05:42:53.
Port /dev/rfcomm0, 20:18:51

Press CTRL-A Z for help on special keys

PIC status 217: 0011 303 179
PIC status 218: 0011  54  34
PIC status 219: 0011  17  13
PIC status 220: 0011  17  12
...

Note

  1. Ovviamente gli indirizzi fisici sono diversi per ciascun dispositivo
  2. A volte è necessario ripetere questo passaggio più volte. Consiglio di ricominciare da capo, dopo aver rimosso il dispositivo:
    [bluetooth]# remove 30:14:10:17:25:xx
  3. Il PIN code predefinito potrebbe essere diverso oppure potrebbe essere stato modificato dal software del microcontrollore

Parole chiave: Bluetooth - Raspberry Pi - headless - HC-06

Ultima modifica di questa pagina: 7 febbraio 2017


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima