Gli argomenti di oggi saranno molto tecnici e richiederanno maggiori dettagli per essere compresi, specialmente per chi non ha molta dimestichezza. Vi chiedo quindi un po' di pazienza se questo video sarà leggermente più lungo dei precedenti. Inoltre, per evitare di appesantirlo ulteriorimente, alcuni approfondimenti verranno riportati soltanto all'interno del post dedicato che verrà pubblicato su dm-smartech.it.
Piccola nota, i post di ogni video saranno disponibili sul sito due giorni dopo la pubblicazione del video.
Iniziamo!
Dopo aver preconfigurato la microSD con la versione Lite del Raspberry Pi OS, inseriamola nello slot del Raspberry Pi e procediamo con i collegamenti.
- Se avete scelto di utilizzare la connessione cablata, collegate il cavo Ethernet al Raspberry Pi. In alternativa, se avete preconfigurato il Wi-Fi durante la preparazione della microSD, il Raspberry Pi dovrebbe connettersi automaticamente alla rete al primo avvio.
- Adesso colleghiamo l'alimentatore utilizzando il cavo USB-C, in modo da avviare il dispositivo automaticamente.
- Attendiamo circa 5 minuti, dando al sistema il tempo necessario per completare il primo avvio.
- Trascorsi circa 5 minuti, se la preconfigurazione del sistema operativo è stata eseguita correttamente, dovremmo essere pronti ad accedere al terminale del Raspberry Pi in modalità Headless, cioè da remoto, tramite un qualsiasi terminale, attraverso un client SSH.
Sia che abbiate scelto la connessione Ethernet o il Wi-Fi preconfigurato, il Raspberry Pi dovrebbe essere riconosciuto come host della rete locale e ricevere un indirizzo IP dal router. Per ottenere automaticamente un indirizzo IP dal router, si da per scontato che quest'ultimo disponga o abbia attivo un server DHCP. In alternativa si dovrà procedere con un'assegnazione manuale.
Ma non temete, normalmente il server DHCP è presente di default in tutti i router.
A titolo informativo, per chi non sapesse cosa sia un indirizzo IP o un server DHCP, trovate un approfondimento dedicato qui di seguito:
Dopo aver letto l'approfondimento, a meno di esigenze o configurazioni particolari, possiamo desumere che il router abbia un server DHCP attivo e funzionante. A questo punto, è necessario individuare l'indirizzo IP che il router ha assegnato al Raspberry Pi, sia che questo sia connesso in Wi-Fi o Ethernet.
Per individuare l'indirizzo IP assegnato automaticamente al Raspberry dal server DHCP, potremmo collegarci direttamente in modalità Local Access, ossia collegando tastiera e monitor al Raspberry, e verificarlo dal suo terminale. Tuttavia, come spiegato nel video precedente, il nostro intento è quello di interagire con il raspberry in modalità HeadLess, e accedere in LocalAccess solo come ultima spiaggia.
Esistono diversi modi per individuare l'indirizzo IP di un dispositivo nella nostra rete che non sia in LocalAccess. Vediamone alcuni tra quelli più utilizzati, in ordine di praticità:
Ping
Possiamo servirci del comando di rete Ping.
Ping è uno strumento di rete che permette di verificare se un dispositivo è raggiungibile all'interno di una rete verso il proprio indirizzo IP o nome host.
Analogamente, potremmo pensare al ping come al gesto di chiamare qualcuno da una stanza a un'altra e aspettare che questo risponda per sapere se è lì.
Per eseguire un ping è necessario utilizzare un apposito comando:
- Se utilizziamo Windows, apriamo il prompt dei comandi.
- Se utilizziamo macOS o Linux, apriamo il terminale.
Una volta pronti, digitiamo il seguente comando e premiamo Invio dalla tastiera:
ping raspberrypi.local
Nota: raspberrypi.local è il nome host assegnato di default al Raspberry Pi.
Se il nostro router supporta mDNS e il Raspberry Pi è stato riconosciuto correttamente dalla rete, otterremo una risposta simile a quella che vedete, che ci mostrerà l'indirizzo IP. Appuntiamocelo da qualche parte perché potrebbe esserci utile. Se questo metodo dovesse funzionare sin da subito, potremo utilizzare direttamente il nome host per accedere al Raspberry Pi in SSH, evitando l'uso dell'indirizzo IP, anche se è sempre meglio averlo a portata di mano.
A titolo informativo, per chi non sapesse cosa sia un mDNS, trovate un approfondimento dedicato qui di seguito:
App Fing
Nel caso in cui non dovessimo avere riscontro dall'utilizzo del comando Ping, possiamo servirci di apposite app per smartphone che ricercano i dispositivi presenti nella nostra rete. Tra le più conosciute, disponibile sia per iOS che Android, consiglio Fing.
Scarichiamola e installiamola dal nostro store ufficiale, e al primo avvio forniamo il consenso per accedere alla rete locale. Infine clicchiamo sul pulsante Scansione la rete corrente posizionato in basso. Fing effettuerà una scansione della rete e ci mostrerà tutti i dispositivi rilevati. Cerchiamo RaspberryPi nell'elenco, selezioniamolo in dettaglio e segniamoci il suo indirizzo IP.
Accesso dal pannello del router
Se non dovessimo riuscire a individuare il Raspberry Pi con i metodi appena esposti, possiamo provare a trovare l'indirizzo IP nel pannello del nostro router. Poiché ogni router possiede un'interfaccia diversa, non posso fornirvi istruzioni precise su questo passaggio.
Supponendo di aver trovato l'indirizzo IP o aver raggiunto il Raspberry Pi tramite nome host utilizzando uno dei metodi esposti, possiamo accedere al dispositivo in modalità Headless.
Se, invece, non siamo riusciti a individuare l'indirizzo IP, sarà necessario procedere temporaneamente in modalità LocalAccess per verificare se il Raspberry Pi ha ottenuto un indirizzo IP valido dalla rete, oppure se ci sono problemi di connettività Ethernet o Wi-Fi. In questo caso, sarà necessario collegare un monitor e una tastiera USB direttamente al Raspberry Pi per eseguire una verifica ed eventuale configurazione "on machine".
Per venire incontro alle diverse esigenze, vedremo entrambe le modalità.
Modalità Local Access
Partiamo con la modalità Local Access. Da eseguire solo se non siamo riusciti ad accedere direttamente in modalità Headless al primo tentativo:
- Togliamo l'alimentazione al Raspberry Pi precedentemente alimentato.
- Colleghiamolo a un monitor utilizzando la porta microHDMI posta vicino alla porta USBC.
- Colleghiamo una tastiera USB ad una porta qualunque.
- Se abbiamo scelto la connessione cablata, colleghiamo anche il cavo Ethernet.
- Infine, ricolleghiamo l'alimentatore tramite cavo USB-C per avviare il dispositivo. Sul monitor vedremo apparire una serie di log di avvio del sistema e, al termine, ci verrà richiesto di inserire una username.
- Digitiamo "pi" (in minuscolo) e premiamo "Invio". Successivamente ci verrà chiesta la password.
- Inseriamo "raspberry" (sempre in minuscolo) e premiamo "Invio". Durante l'inserimento della password, il terminale non mostra alcun carattere, quindi non preoccupatevi se non vedete comparire i caratteri digitati.
- Se le credenziali sono corrette, accederemo al terminale e saremo pronti per utilizzarlo. In caso contrario, se l'autenticazione non dovesse andare a buon fine, potrebbe trattarsi di un errore nelle credenziali o di un'errata digitazione. Il mio consiglio è di riprovare inserendole con attenzione e, se il problema dovesse persistere, suggerisco di seguire i passaggi affrontati nel video precedente per resettare la microSD, ma questa volta senza applicare la preconfigurazione.
Supponendo di esserci autenticati in LocalAccess, per trovare l'indirizzo IP assegnato al Raspberry sarà sufficiente digitare il seguente comando:
ifconfig
Appariranno diverse informazioni. Tra queste dovremo cercare l'indirizzo IP nella sezione corrispondente all'interfaccia di rete da noi utilizzata:
Se abbiamo connesso il Raspberry Pi tramite cavo Ethernet, l'indirizzo IP sarà nella sezione eth0, come mostrato a video:
eth0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.55/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 863890sec preferred_lft 863890sec
Se, invece, abbiamo connesso il Raspberry tramite Wi-Fi, l'indirizzo IP sarà nella sezione wlan0, come mostrato a video:
wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f2:88:86:79:02:71 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.161/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
valid_lft 863949sec preferred_lft 755949sec
Sia che si tratti di Ethernet (eth0) o di Wi-Fi (wlan0), l'indirizzo IP che ci interessa è quello riportato dopo la dicitura inet.
Se non troviamo un indirizzo IP valido nella sezione eth0 o wlan0, è possibile che il server DHCP del router non sia attivo, quindi sarà necessario verificare le impostazioni del nostro router. In alternativa, se utilizziamo il Wi-Fi, il Raspberry potrebbe non essere riuscito a connettersi alla rete preconfigurata durante la preparazione della microSD.
In questo caso, possiamo verificare e configurare manualmente la rete Wi-Fi dal terminale, digitando il seguente comando:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Piccola nota: Per chi non lo conoscesse, il comando sudo indica l'esecuzione di qualcosa con privilegi amministrativi. Il comando Nano è un editor di testo che permette di modificare i file dal terminale. Pertanto, il comando appena visto consente di eseguire Nano con privilegi amministrativi al fine di editare il file di configurazione della rete Wi-Fi.
Spostiamoci alla fine del file utilizzando le frecce direzionali e incolliamo quanto segue, sostituendo "IlTuoSSID" e "LaTuaPassword" con i rispettivi dati del vostro Wi-Fi:
network={
ssid="IlTuoSSID"
psk="LaTuaPassword"
key_mgmt=WPA-PSK
}
Salviamo il file premendo in sequenza (e mantenendo premuti) i tasti:
CTRL + O
Se viene richiesta la conferma del salvataggio, premiamo semplicemente Invio. Successivamente, chiudiamo il file premendo in sequenza (e mantenendo premuti):
CTRL + X
In questo modo torneremo alla linea di comando. Per applicare e abilitare le modifiche al Wi-Fi, è preferibile riavviare il Raspberry Pi eseguendo il seguente comando:
sudo reboot
Dopo il riavvio del Raspberry, se questo dovesse connettersi correttamente alla rete Wi-Fi o Ethernet, possiamo nuovamente autenticarci al terminale in LocalAccess e utilizzare il comando ifconfig per verificare l'assegnazione dell'indirizzo IP. In caso positivo, segnamoci l'indirizzo IP, scolleghiamo monitor e tastiera dal Raspberry Pi e proseguiamo in modalità Headless. Se invece dovessimo riscontrare problemi, sarà necessario rivedere i passaggi precedenti per correggere eventuali errori di configurazione.
Modalità Headless
Vediamo adesso come connetterci in modalità Headless, cioè da remoto in SSH utilizzando un computer qualsiasi.
Se utilizziamo Windows:
- Sarà necessario installare un client SSH per collegarci al terminale del Raspberry Pi. Consiglio di utilizzare PuTTY.
- Dopo aver scaricato e installato PuTTY, apriamolo e inseriamo raspberrypi.local oppure l'indirizzo IP del Raspberry Pi nel campo "Host Name".
- Infine, clicchiamo su Open per avviare la connessione.
Se utilizziamo macOS o Linux sarà sufficiente aprire il Terminale preinstallato.
Dopo aver aperto il Terminale, digitiamo il seguente comando seguito dal tasto Invio:
ssh pi@raspberrypi.local
oppure, se conosciamo l'indirizzo IP del Raspberry Pi, digitiamo:
ssh pi@indirizzo_ip_del_raspberry
Se la connessione in SSH venisse rifiutata, potrebbe significare che il server SSH non sia attivo. In tal caso, vi rimando al paragrafo 'Abilitazione SSH', da eseguire tramite LocalAccess.
In caso contrario, se non dovessimo riscontrare alcun problema, una volta raggiunto il Raspberry Pi tramite SSH, ci verrà chiesto di inserire la password di accesso:
- Digitiamo "pi" (in minuscolo) come username e premiamo "Invio". Successivamente ci verrà chiesta la password.
- Inseriamo "raspberry" (sempre in minuscolo) e premiamo "Invio". Durante l'inserimento della password, il terminale non mostra alcun carattere, quindi non preoccupatevi se non vedete comparire i caratteri digitati.
- Se le credenziali sono corrette, accederemo al terminale e saremo pronti per utilizzarlo. In caso contrario, se l'autenticazione non dovesse andare a buon fine, potrebbe trattarsi di un errore nelle credenziali o di un'errata digitazione. Il mio consiglio è di riprovare inserendole con attenzione e, se il problema dovesse persistere, suggerisco di seguire i passaggi affrontati nel video precedente per resettare la microSD, ma questa volta senza applicare la preconfigurazione.
Supponendo di esserci autenticati, che sia in Local Access o in Headless, proseguiamo con la configurazione. Digitiamo il seguente comando sul terminale per aprire il pannello di configurazione del Raspberry Pi con privilegi amministrativi:
sudo raspi-config
Adesso dobbiamo eseguire alcune piccole configurazioni propedeutiche. Vediamo insieme quali sono:
Espandere il filesystem
L'espansione del filesystem consente di sfruttare tutto lo spazio disponibile della nostra microSD, poiché inizialmente viene limitato a pochi GB.
Con le frecce direzionali della tastiera, scendiamo fino alla voce:
6 Advanced Options
e premiamo Invio.
Selezioniamo la voce:
A1 Expand Filesystem
e premiamo invio per confermare. Comparirà una richiesta di avvenuta espansione, premiamo Invio su OK per uscire.
Abilitare SSH
Qualora non fossimo riusciti ad abilitarlo nella fase di preconfigurazione della microSD e ci trovassimo in modalità LocalAccess, sarà necessario abilitarlo:
Con le frecce direzionali della tastiera, scendiamo fino alla voce:
3 Interface Options
e premiamo invio.
Selezioniamo la voce:
I1 SSH
e premiamo invio. Alla richiesta di attivare il server SSH, selezioniamo Yes e premiamo Invio. Infine premiamo Invio su OK per uscire.
Cambiare il nome host al Raspberry Pi
Al fine di identificare maggiormente il contesto di HomeAssistant, sarebbe preferibile cambiare il nome host da raspberry a homeassistant. Eseguite questo passaggio in base alle vostre preferenze.
Con le frecce direzionali della tastiera, scendiamo fino alla voce:
1 System Options
e premiamo invio.
Selezioniamo la voce:
S4 Hostname
e premiamo invio. Comparirà una finestra di conferma, premiamo Invio su OK.
Nella finestra successiva inseriamo:
homeassistant (in minuscolo)
Questo sarà il nuovo hostname del raspberry. Quindi non dovremo più usare raspberrypi.local ma homeassistant.local per accedervi da remoto.
Al termine, spostiamoci su Finish con le frecce direzionali della tastiera, e diamo Invio. Quando ci viene chiesto se vogliamo riavviare il sistema, selezioniamo Yes con le frecce direzionali della tastiera e diamo Invio. Il Raspberry Pi si riavvierà automaticamente.
Vi ricordo che, dopo il riavvio, per riconnetterci in SSH al RaspberryPi non dovremo più usare l'hostname raspberrypi.local ma homeassistant.local.
Bene, per oggi ci fermiamo qui. Abbiamo completato la prima configurazione del Raspberry Pi e siamo pronti per il passo successivo. Nel prossimo video, eseguiremo altre configurazioni e installeremo alcuni strumenti essenziali prima di passare all'installazione di Home Assistant e i relativi servizi.
Come sempre, se vi fa piacere seguitemi per altri tutorial, attivate la campanellina e lasciate un like al video.