Come configurare Raspberry Pi 3 e BeagleBoard per le connessioni wireless
Contributo di Editori europei di DigiKey
2016-06-24
Il Raspberry Pi, un SBC a basso costo, ha avuto un successo enorme avendo messo a disposizione dei progettisti una scheda controllore economica programmabile con lo standard industriale Linux Debian. Fino ad oggi però, il Pi era privo di funzioni integrate wireless. I Raspberry Pi A, B e Pi2 avevano tutti bisogno di un dongle esterno Wi-Fi o Bluetooth per poter creare dei collegamenti wireless. La più recente versione della scheda, il Raspberry Pi 3, aggiunge un processore quad-core ARM® Cortex®-A53 a 64 bit con frequenza spinta a 1,2 GHz, oltre a Wi-Fi e Bluetooth Smart 4.0 per un prezzo vicino a quello delle schede precedenti. Le schede sono state in pre-produzione per diversi mesi prima del lancio e sono disponibili da fornitori come Seeed.
Questa novità costituisce una grossa opportunità per l'impiego in Internet delle cose (IoT), grazie a una facile connessione a un router o a un gateway per inviare i dati dai sensori o per consentire il controllo da uno smartphone o da un terminale connesso a Internet. Il processore quad-core garantisce inoltre più potenza di elaborazione per l'analisi dei dati e l'esecuzione di un set più esteso di algoritmi di controllo localmente, oltre a fornire risposte più veloci.
Molte di queste applicazioni IoT non fanno uso dello schermo, di conseguenza le schede vengono configurate con un approccio "headless", ovvero senza interfaccia utente grafica. Viene utilizzata una connessione Ethernet a un terminale o un cavo di console seriale. Il software per effettuare questo collegamento è incluso nell'immagine del software standard inserita nel sistema operativo Raspbian o su scheda SD alloggiabile nell'SBC.
Raspbian è basato su Linux Debian e regolarmente aggiornato con le librerie dalla Raspberry Pi Foundation; viene installato tramite l'installer NOOBS su scheda. Ad ogni modo, la Foundation ha volutamente fatto sì che fosse semplice e rapido sostituire la partizione root della scheda SD con un'altra distribuzione Linux ARM per consentire l'uso di sistemi operativi diversi. Questi possono essere scaricati sulla scheda da un PC o da un portatile per l'impiego prima di effettuare una connessione.

Figura 1: Le schede Raspberry Pi 3 inglobano Wi-Fi e Bluetooth Smart, oltre a un processore quad-core ARM Cortex-A53 a 1,2 GHz.
Con Raspbian, il primo passo per configurare un collegamento wireless è quello di effettuare una scansione alla ricerca di reti locali. Questa operazione è eseguibile con il comando sudo, nel formato
: sudo iwlist wlan0 scan
Si ottiene così un elenco di tutte le reti Wi-Fi oltre alle connessioni di sicurezza e ad altri dettagli.
Per collegare la scheda, il nome della rete Wi-Fi scelta verrà elencato sotto ESSID (Extended Service Set Identification). Sarà incluso il metodo di autenticazione attivo, ad esempio WEP, WPA o WPA2.
In tal modo si hanno i dati necessari per il file di configurazione, a cui si accede con il comando:
: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
In fondo al file si trovano le impostazioni Wi-Fi che devono essere modificate per la rete locale.
In network= block, la voce ssid="" deve essere cambiata sulla rete locale e psk="" sulla password del Wi-Fi.
Il file di configurazione viene poi salvato premendo CTRL+X quindi Y sulla tastiera e infine Invio per confermare. Il file di configurazione verrà normalmente aggiornato entro pochi secondi e subito partirà il tentativo di connessione alla rete Wi-Fi. Se il Wi-Fi non si connette, può essere necessario dare il comando sudo reboot. Una volta eseguita la connessione, con il comando ifconfig è possibile verificarla:
: ifconfig wlan0
Se il campo inet addr restituisce un indirizzo IP, significa che la connessione è andata a buon fine e che l'indirizzo IP è utilizzabile per connettersi alla scheda da remoto.
Collegamento di una periferica Bluetooth
Uno dei vantaggi offerti dal Raspberry Pi 3 è la capacità Bluetooth integrata. Grazie ad essa, è facile collegare una periferica Bluetooth alla scheda per realizzare una rete IoT.
Il metodo migliore per collegare un dispositivo Bluetooth è quello di usare il comando bluetoothctl dall'interfaccia a riga di comando inclusa nel sistema operativo Raspbian.
Per altri sistemi operativi, è possibile installare un modulo Bluetooth con il comando:
: sudo apt-get install pi-bluetooth
L'esecuzione di bluetoothctl richiede l'attivazione del chip Bluetooth tramite:
: power on
Si ottiene così un elenco dei dispositivi che sono stati precedentemente collegati alla scheda. Con il comando
: scan on
si entra nella modalità di individuazione per scoprire i dispositivi Bluetooth nelle vicinanze.
Quindi è necessario attivare un agente per gestire l'abbinamento tra periferica e scheda:
: agent on
Per eseguire l'abbinamento è necessario l'indirizzo MAC della periferica che in genere è stampato sulla stessa, quindi inserirlo con il comando:
: pair indirizzo MAC
Può anche comparire la richiesta di una password per periferiche come le tastiere Bluetooth.
Se si prevede di usare la periferica regolarmente, può essere aggiunta all'elenco dei dispositivi affidabili con il comando:
: trust indirizzo MAC
La connessione viene quindi effettuata con il comando
: connect indirizzo MAC
BeagleBone Green
Altri diffusi Single-Board Computer come BeagleBone Green non sono dotati di capacità wireless integrata su scheda e di conseguenza richiedono un adattatore o un dongle configurabile per implementare una connessione Wi-Fi. La procedura può variare in funzione del dongle utilizzato. In genere, comunque, sono gestiti tramite il sistema operativo che, per BeagleBone Green, è la versione 3.8 della distribuzione Linux Debian.

Figura 2: La scheda BeagleBone Green utilizza un processore Sitara a 1 GHz con core ARM Cortex-A8.
Un problema riscontrabile con una connessione Wi-Fi sulla scheda è la vicinanza dei piani di massa e di potenza delle porte Grove alla porta USB in cui dovrebbe essere inserito l'adattatore Wi-Fi. Questa disposizione smorza il segnale e dà luogo a una connessione di scarsa qualità. Per molte applicazioni embedded headless queste porte potrebbero non essere necessarie e quindi potrebbero essere disattivate con il device tree. Il comando a tale scopo è disponibile nel file uEnv.tx.
Un altro approccio è quello di usare un breve cavo di prolunga USB in modo che l'adattatore Wi-Fi possa essere posto a qualche distanza dalla scheda.
La scheda deve avere anche potenza sufficiente per alimentare l'adattatore Wi-Fi che richiede 5 V di tensione e almeno 1 A di corrente.
In entrambi i casi, il primo passo da fare è quello di connettere la porta USB sulla scheda con un PC usando SSH, mentre un aggiornamento del kernel assicura la disponibilità delle più recenti librerie per l'adattatore:
: cd /opt/scripts/tools/
: ./update_kernel.sh
L'immagine del kernel dovrebbe venire scaricata e installata automaticamente, seguita da un reboot.
L'aggiunta di un breve script per attivare automaticamente l'adattatore al boot della scheda aiuta a garantire che si possano utilizzare tutti i vari tipi di adattatore. L'implementazione è
: cd ~
: ntpdate -b -s -u pool.ntp.org
: apt-get update && apt-get install git
: git clone https://github.com/adafruit/wifi-reset.git
: cd wifi-reset
: chmod +x install.sh
: ./install.sh
Questo script attiva automaticamente l'adattatore al boot della scheda, quindi l'esecuzione del comando iwconfig elenca le reti disponibili e l'ESSID necessario per il file /etc/network/interfaces per specificare la connessione appropriata.
La configurazione del file avviene con i comandi dell'editor nano:
: nano /etc/network/interfaces
Questo visualizza un blocco di configurazione commentato per il Wi-Fi:
# WiFi Example
#auto wlan0
#iface wlan0 inet dhcp
# wpa-ssid "essid"
# wpa-psk "password"
Rimuovendo i simboli di commento e sostituendo ESSID e password con il nome e la password della rete pertinente si ottiene la configurazione dell'adattatore. La connessione può essere testata manualmente usando il comando ifup wln0 che restituisce l'indirizzo IP del collegamento, utile come sempre per indirizzarsi alla scheda da remoto. Il reboot della scheda dovrebbe a questo punto eseguire lo script che attiva l'adattatore e configura la connessione di rete.
Conclusione
L'aggiunta di Wi-Fi e Bluetooth Smart alla scheda Raspberry Pi 3 -che gli sviluppatori possono implementare con un semplice processo di configurazione - apre la via a un nuovo ventaglio di applicazioni headless embedded. Con questa soluzione è possibile accedere alla scheda da PC remoto, da smartphone e da servizi cloud. Tuttavia, gli utenti di altre schede possono continuare a usare adattatori wireless per fornire lo stesso livello di funzionalità.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.




