Corso frontale di 20 ore indirizzato a docenti di scuole superiori nel settore ICT. Il corso vuole essere una palestra (per questo CodingGym) di rafforzamento delle basi già esistenti e di supporto per corsi futuri. Queste slide sono rilasciate con la licenza Creative Commons e quindi potete scaricarle ed utilizzarle a vostro piacere. Ricordate però di CITARMI! :D
5. Raspberry PI
La Raspberry PI è un single-board computer (SBC) sviluppato
nel Regno Unito dalla Raspberry PI Foundation.
L’idea di base è la realizzazione di un dispositivo economico, concepito per stimolare
l’insegnamento di base dell’informatica e della programmazione nelle scuole.
Dal punto di vista hardware il progetto ruota attorno:
• System-on-a-chip (SoC) Broadcom BCM2835, che incorpora un processore
ARM1176JZF-S a 700 Mhz (overcloccabile da software)
• GPU VideoCore IV
• 256 (modello A), 512 (modello B) Megabyte o 1 Gigabyte (modello 2) di RAM
• Sistema Operativo su scheda SD per il boot e per la memoria non volatile. La scheda
è stata progettata per ospitare sistemi operativi basati su un kernel Linux o RISC OS.
• GPIO (26 o 40 pin)
• USB
• Ethernet Card
Doveva essere solo un Python Interpreter!!
7. REV 1 MODEL B
È il modello più diffuso della Pi. Ha 512 Mb di Ram
REV 1 MODEL B – WITH LINKS
Questo modello ha dei collegamenti a 0 Ohm sulle USB invece che dei Polyfuses.
Questo aiuta in casi di sbalzi di tensione che si verificano sul modello precedente.
Ha introdotto però un bug di “hot-swapping” che resetta la scheda quando viene
inserito un dispositivo USB. Questo problema è stato risolto nella versione B+.
MODEL A
Identica al modello B solamente che ha 1 usb e 256 Mb di RAM.
COMPUTE MODULE
Lanciato a giugno 2014 per permettere l’integrazione della Pi a livello industriale. Il
modulo è stato fatto per essere integrato su un connettore SODIMM. Il vantaggio
di questo modulo è che ha integrato una memoria eMMC da 4GB e quindi non
necessita di una scheda SD per il sistema operativo.
MODEL B+
Lanciato a Luglio 2014. Ha subito grossi trasformazioni sia per il fattore di forma,
sia per il numero di GPIO (40), per il numero di USB (4) e migliorato il circuito di
alimentazione.
MODEL A+
Lanciato a Novembre 2014 ed è essenzialmente il modello B+ con solamente un
USB. È il modello più economico sia dal punto di vista del prezzo (solo 20$), sia dal
punto di vista dei consumi (0.5 Watt in idle).
Raspberry - le diverse board
8. Sei volte più veloce rispetto al primo modello, ma proposta ad un prezzo invariato (35$):
è la nuova scheda Raspberry Pi 2 equipaggiata con :
• 1 GB di RAM (LPDDR2 SDRAM)
• Processore quad core Broadcom BCM2836 da 900 MHz (ARM Cortex-A7).
• È possibile collegare fino a quattro dispositivi USB in contemporanea
• Tempi di boot dimezzati.
Raspberry PI 2
Il team responsabile del progetto, la Raspberry Pi
Foundation, ha già annunciato l'intenzione di
realizzarne una variante basata sull'architettura x86
compatibile con il sistema operativo Windows 10 di
Microsoft.
9. La lista della spesa
• Alimentatore 5V 2A Micro USB
• SD/MicroSD (a seconda del modello
di RPi utilizzata) da almeno 4GB
• Tastiera e Mouse USB
• Monitor HDMI
• cavo HDMI
• Cavo Ethernet
10.
11. Raspberry PI - Le distribuzioni disponibili
Il punto di partenza è sicuramente NOOBS (New Out Of the Box Software)
www.raspberrypi.org/downloads
NOOBS è un software che fornisce una
pratica interfaccia per installare sulla
nostra Raspberry Pi qualsiasi
distribuzione Linux.
Appena installato consiste in una sorta
di immagine di recovery che viene
avviata al primo boot della Raspberry Pi,
e ci pone davanti ad una finestra di
dialogo che chiede quale sistema
operativo vogliamo installare.
13. Raspberry PI - Le distribuzioni alternative
• Games/Retrogaming
Dal sito chameleon.enging.com potete scaricare una distribuzione
dedicata al retrogaming con l’emulazione di vecchi computer
(comodore 64, Atari, ecc)
• Secuirty
pwnpi (http://www.pwnpi.com/) è una distribuzione dedicata al
security testing. Dispone di più di 200 tool di analisi di rete.
16. Configurare l’SD
1. Scaricare il sistema operativo per il Raspberry Pi
RASPBIAN (*)
2. Scompattare il file che avete scaricato
Attendi il completamento della procedura, al termine
apparirà un file con estensione .img
3. Scarica Win32DiskImager (WINDOWS)
a) Scarica il file win32diskimager-binary.zip
da: https://launchpad.net/win32-image-writer/+download
b) Decomprimi il file .zip
c) Al termine della procedura verrà visualizzata una nuova directory chiamata
win32diskimager-binary
(*) Lista immagini RASPBIAN: http://downloads.raspberrypi.org/raspbian/images/
17. Configurare l’SD
4. Installare Raspbian sulla scheda SD
a) Collega la scheda SD al tuo PC
b) Accedete alla directory creata nel passaggio 3(b) ed avviate il file
Win32DiskImager.exe (se utilizzate Windows 7 o Windows 8 dovrete cliccare
con il tasto destro del mouse sul file e selezionare “Esegui come
amministratore”). Vi verrà mostrata una schermata come questa:
c) Se la vostra scheda SD non compare automaticamente nella sezione Device
dovrete andare a selezionarla manualmente dall’apposita tendina
d) Nella sezione Image File selezionate il file .img di Rabian che avete scaricato
e decompresso (punto 2b)
e) Clicca su Write
f) La procedura richiede alcuni minuti, al termine la scheda SD potrà essere
usata sul vostro Raspberry Pi
18.
19. Primo accesso
a) Collegare tutti i cavi necessari
b) Al primo avvio apparirà la finestra Raspi-config
c) Potete modificare la configurazione ad esempio le voci
international options se necessario
d) Se è vostra intenzione utilizzare la parte desktop abilitarla
all’apposito menù Enable boot to Desktop
e) In fine selezionate Expand Filesystem e digitate ‘yes’
per eseguire il reboot
22. Accesso da rete - Ethernet
Se non volete visualizzare la parte desktop e/o non avete la
possibilità di utilizzare un monitor, potete utilizzare la Rpi in SSH.
Dovete scoprire l’indirizzo IP della RPi.:
• Accedendo al router e vedere i dispositivi collegati
• Utilizzare dal vostro PC un tool chiamato IPScan che trova i dispositivi
collegati in rete (che rispondono alla porta ICMP)
• Attaccare un monitor alla RPi e, attraverso il terminale, digitare il comando
ifconfig per visualizzare il proprio indirizzo IP
23. Accesso da rete - Ethernet
Credenziali di DEFAULT
Username: pi
Password: raspberry
25. Accesso da rete - WiFi
Per configurare una connessione WiFi è possibile farlo in 3 modi:
• Attraverso l’interfaccia grafica
Sulla RPi è installato un software chiamato
WiFi config che permette la configurazione
immediata di una rete WiFi.
• Attraverso l’ethernet
Bisogna modificare i seguenti file:
/etc/network/interfaces
/etc/wpa_supplicant/wpa_supplicant.conf
• Wicd-curses
sudo apt-get install wicd-curses
26. Accesso da rete - WiFi
Esempio di una configurazione di /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
#auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface home inet static
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
iface default inet dhcp
27. Accesso da rete - WiFi
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="****"
scan_ssid=1
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)
proto=WPA
# Key management type can be: WPA-PSK or WPA-EAP
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="****"
id_str="home"
priority=5
}
28. 4
Cosa fare con la RPi
Esempi di utilizzo della Raspberry PI
34. WEB SERVER
INSTALLARE LO STACK LAMPP
• sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-
server mysql-client php5-mysql phpmyadmin vsftpd -y
• sudo chown -R pi /var/www
• sudo nano /etc/vsftpd.conf
#EDIT THE FOLLOWING LINES
anonymous_enable=YES to anonymous_enable=NO
Uncomment local_enable=YES and write_enable=YES by deleting the # symbol
in front of each line
then go to the bottom of the file and add force_dot_files=YES.
• ln -s /var/www/ ~/www
• sudo reboot
38. FILE SERVER
Raspbian, essendo una distribuzione derivata da Debian, ha il vantaggio di supportare
una moltitudine di protocolli: FTP, SMB, WEBDAV etc.
Per questa ragione, collocando un Raspberry Pi in una rete, è abbastanza facile
condividere le sue risorse col resto dalla LAN. Se a questo aggiungiamo la possiblità di
collegare un Hard Disk esterno o una penna USB di alta capacità, capiamo subito di
quanto sia facile condividere dei file o trasformarlo in un client bit- torrent sempre
attivo e disponibile, con un consumo di corrente paragonabile a quello di un cellulare.
Una volta collegato l’hard disk alla Raspberry eseguire il seguente comando da
terminale:
sudo apt-get install ntfs-3g
Questo è un tool per formattare i dischi in NTFS. È necessario formattare l’hard disk in
questa modalità per vedere il disco su linux, ma anche per trasferire file maggiori di
2GB (cosa che FAT32 non permette).
39. FILE SERVER
Una volta installato il programma digitare il seguente comando per visualizzare le
partizioni presenti (devono essere almeno due):
sudo fdisk -l
SD
HARD DISK
40. FILE SERVER
Prima di montare i dischi nel filesystem bisogna creare la cartella dove verrano inseriti
tutti i file:
• sudo mkdir /media/USBHDD
Ora si può procedere a montare l’hard disk:
• sudo mount -t auto /dev/sda1 /media/USBHDD
A questo punto bisogna creare una cartella condivisa che poi sarà visualizzabile in rete
da qualsiasi host:
• sudo mkdir /media/USBHDD/shares
41. FILE SERVER
È arrivato il momento di installare SAMBA. Questo è un servizio che permette di
accedere ad una cartella condivisa in rete su sistemi UNIX:
• sudo apt-get install samba samba-common-bin
Una volta installato, prima di fare qualsiasi cosa, bisogna configurare Samba. Per questo
bisogna modificare il seguente file (prima facciamo un backup del file originale):
• sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
• sudo nano /etc/samba/smb.conf
42. FILE SERVER
La prima cosa da notare è l'identificativo del gruppo di lavoro, per impostazione
predefinita workgroup = WORKGROUP. Se si utilizza un nome diverso modificarlo,
altrimenti lasciare come predefinito.
La nostra prossima tappa è di attivare l'autenticazione dell'utente per il nostro
stoccaggio samba, altrimenti chiunque abbia accesso generale alla nostra rete (come
ospiti gli utenti Wi-Fi), sarà in grado di visualizzare il contenuto della cartella. Scorrere
verso in basso nel file di configurazione di Samba fino ad arrivare al sezione che recita:
Togliere il simbolo # dalla linea security = user per consentire la verifica nome utente /
password per le condivisioni Samba.
43. FILE SERVER
Ora aggiungere una nuova sezione al file di configurazione. Scorrere fino in fondo fino
alla fine del file e inserire il testo seguente:
[Backup]
comment = Backup Folder
path = /media/USBHDD/shares
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
Premere CTRL + X per uscire, premere Y quando viene chiesto se si desidera mantenere
le modifiche e sovrascrivere il file di configurazione esistente. Una volta tornati al
prompt dei comandi digitare il seguente comando per riavviare i demoni di Samba:
• sudo /etc/init.d/samba restart
44. FILE SERVER
A questo punto abbiamo bisogno di aggiungere un utente che può accedere alle
condivisioni Samba del Pi.
Username: backups
Password: backups4ever
È possibile impostare il nome utente e la password a piacere. Per farlo digitare i
seguenti comandi:
• sudo useradd backups -m -G users
• sudo passwd backups
Verrà richiesto di digitare la password due volte per confermare. Dopo aver confermato
la password, è il momento di aggiungere "backup", come un utente legittimo Samba.
Immettere il seguente comando:
• sudo smbpasswd -a backups
Immettere la password per l'account di backup quando richiesto.
45. FILE SERVER
Ora da Windows (o da altri sistemi Samba-capable) è possibile visualizzare il contenuto
della cartella condivisa:
• Aggiungere una nuova risorsa di rete con hostname RASPBERRYPI (o l’hostname
della vostra RPi).
• Immettere utente e password inseriti nel passo precedente.
48. SMART DISPLAY
• CodeIgniter is a powerful open-source PHP framework with a very small
footprint
• DukeScript, fornisce agli sviluppatori Java un modo per costruire applicazioni
HTML5 e JavaScript nel comfort del linguaggio Java.
• Vaadin è un framework Java per la creazione di applicazioni web moderne .
• Java Server Faces (JSF), un framework java basato sul design pattern
architetturale Model-View-Controller
• D3.js è una libreria JavaScript per manipolare i documenti in base ai dati in
diversi formati.
• HIGHCHARTS, è una libreria JavaScript che permettere di generare grafici in
modo semplice e veloce.
• HTMLWidgets - http://www.htmlwidgets.org/, libreria in javascript per
creare grafici con Rstudio (AVANZATA)
• Leafletjs, è una moderna libreria Javascript per le mappe interattive mobile-
friendly basate su OpenStreetMap.
51. SENSING STATION
Downloading the Code from Github
• sudo apt-get install git
• git clone
https://github.com/adafruit/Adafruit_Python_DHT.git
• cd Adafruit_Python_DHT
Installare la libreria
• sudo apt-get update
• sudo apt-get install build-essential python-dev
• sudo python setup.py install
Testare la libreria
• cd examples
Per eseguire il codice d’esempio, digitare il seguente commando (il sensore è
collegato in questo caso al GPIO#4):
• sudo ./AdafruitDHT.py 22 4
Tutorial
53. CREDITS
Special thanks to all the people who made and released these awesome
resources for free:
▪ Busy Icons by Olly Holovchenko
▪ Presentation template by SlidesCarnival
▪ Photographs by Unsplash
▪ Source slide
▪ Introduzione alla Rpi (1)
▪ Introduzione alla Rpi (2)
▪ Guida RPi
▪ http://wasnlab.tlc.unipr.it
This template is free to use under Creative Commons
Attribution license. If you use the graphic assets (photos,
icons and typographies) provided with this presentation you
must keep the Credits slide.