Linux, Android e Internet of Things ITIS G.Galilei - San Secondo (PR)
1 Linux Embedded Alcuni esempi di schede in commercio
Linux Embedded Board
2 Raspberry PI Linux embedded Open Hardware e Low Cost
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!!
La famiglia Raspberry PI
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 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
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.Windows 10
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
Raspberry PI - Le distribuzioni disponibili Il punto di partenza è sicuramente NOOBS (New Out Of the Box Software) 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.
Raspberry PI - Le distribuzioni disponibili
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 ( è una distribuzione dedicata al security testing. Dispone di più di 200 tool di analisi di rete.
3 Come configurare la RPi Esempi di configurazione della Raspberry PI
Configurare l’SD 1. Scaricare il sistema operativo per il Raspberry Pi RASPBIANRASPBIAN (*) 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: b) Decomprimi il file.zip c) Al termine della procedura verrà visualizzata una nuova directory chiamata win32diskimager-binary (*) Lista immagini RASPBIAN:
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
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
Primo accesso - HDMI
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
Accesso da rete - Ethernet Credenziali di DEFAULT Username: pi Password: raspberry
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
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 netmask broadcast gateway iface default inet dhcp
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 }
4 Cosa fare con la RPi Esempi di utilizzo della Raspberry PI
Scratch
Python
Wolfram
Wolfram language-and-mathematica-on-every-raspberry-pi/
WEB SERVER Ethernet Wifi
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
WEB SERVER
FILE SERVER USB
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).
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
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
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
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.
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 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
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.
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.
SMART DISPLAY HDMI RCA
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 - libreria in javascript per creare grafici con Rstudio (AVANZATA) Leafletjs, è una moderna libreria Javascript per le mappe interattive mobile- friendly basate su OpenStreetMap.
SENSING STATION GPIO
SENSING STATION
Downloading the Code from Github sudo apt-get install git git clone 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
Thanks! ANY QUESTIONS? You can find me at:
CREDITS Special thanks to all the people who made and released these awesome resources for free: ▪Busy Icons by Olly HolovchenkoBusy Icons ▪Presentation template by SlidesCarnivalSlidesCarnival ▪Photographs by UnsplashUnsplash ▪Source slideSource slide ▪Introduzione alla Rpi (1)Introduzione alla Rpi (1) ▪Introduzione alla Rpi (2)Introduzione alla Rpi (2) ▪Guida RPiGuida RPi ▪ 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.Creative Commons Attribution licenseCredits slide