...

Installare Apache, PHP, MySQL sul Raspberry PI

by user

on
Category: Documents
262

views

Report

Comments

Transcript

Installare Apache, PHP, MySQL sul Raspberry PI
Come installare il server Java Wildfly
sul Raspberry PI
In questo articolo vedremo come installare sul Raspberry PI il server Java
Wildfly, un ottimo strumento per aumentare le funzionalità del nostro PC.
Nello scorso articolo abbiamo spiegato come installare sul piccolo PC il
server Apache con PHP, con i quali è possibile sviluppare progetti che
richiedono l’invio di dati tra diversi nodi e il salvataggio di tali
informazioni all’interno di un DB MySQL. Wildfly è “concorrente” di di PHP,
in quanto è una tecnologia lato server, con la quale è possibile trasformare
il Raspberry PI in un dispositivo in grado di ricevere ed effettuare
richieste, salvare dati etc…
Grazie all’utilizzo di strumenti come Hibernate, JSON etc… sarà davvero
semplice gestire grosse quantità di informazioni.
Rispetto al PHP, il server Wildfly è uno strumento più potente che richiede
più risorse, in quanto dietro c’è sempre la Java Virtual Machine, mentre la
prima tecnologia è spesso impiegata all’inizio di un progetto, in quanto
richiede poco tempo sviluppare un prototipo.
Giusto per descrivere correttamente Widfly, ecco la definizione tratta da
Wikipedia:
WildFly, precedentemente noto come JBoss AS o semplicemente JBoss, è un
application server open source che implementa le specifiche Java EE. WildFly
è un sistema multipiattaforma, interamente realizzato in Java.
Il sistema è stato originariamente creato dalla società “JBoss Inc.“; nel
2006 è stato acquistato da Red Hat per 420 milioni di dollari. Viene gestito
come progetto open source ed è sostenuto da una enorme rete di sviluppatori.
A WildFly sono associati una quantità di altri prodotti, incluso Hibernate,
Tomcat, JBoss ESB, jBPM, JBoss Rules (ex Drools), JBoss Cache, JGroups, JBoss
Portal, SEAM, JBoss Transaction, e JBoss Messaging.
Nei prossimi articoli, verranno mostrati un po’ di progetti basati sulla
tecnologia Wildfly, che metteranno in luce le enormi funzionalità di questo
strumento. Uno tra tutti è la creazione di un server con REST API, pattern
ormai famosissimo nel mondo dell’informatica.
Installazione
L’installazione del server Wildfly è un’operazione non semplicissima, che
però verrà semplificata grazie all’utilizzo di un script, in quanto sarebbe
richiesti diversi comandi, da inviare attraverso il terminale. Inoltre,
grazie a questo script, Wildfly verrà impostato come servizio e questo
significa che partirà all’invio del sistema operativo, proprio come Apache.
Il primo passaggio è quello di caricare sul Raspberry PI questo script:
#!/bin/bash
#title
#description
#more
#author
#date
#usage
#tested-version
#tested-distros
:wildfly-install.sh
:The script to install Wildfly 10.x
:http://sukharevd.net/wildfly-8-installation.html
:Dmitriy Sukharev
:2015-10-24T17:14-0700
:/bin/bash wildfly-install.sh
:10.0.0.CR3
:Debian 7,8; Ubuntu 15.10; CentOS 7; Fedora 22
WILDFLY_VERSION=10.0.4.Final
WILDFLY_FILENAME=wildfly-$WILDFLY_VERSION
WILDFLY_ARCHIVE_NAME=$WILDFLY_FILENAME.tar.gz
WILDFLY_DOWNLOAD_ADDRESS=http://download.jboss.org/wildfly/$WILDFLY_VERSION/$
WILDFLY_ARCHIVE_NAME
INSTALL_DIR=/opt
WILDFLY_FULL_DIR=$INSTALL_DIR/$WILDFLY_FILENAME
WILDFLY_DIR=$INSTALL_DIR/wildfly
WILDFLY_USER="wildfly"
WILDFLY_SERVICE="wildfly"
WILDFLY_MODE="standalone"
WILDFLY_STARTUP_TIMEOUT=240
WILDFLY_SHUTDOWN_TIMEOUT=30
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root."
exit 1
fi
echo "Downloading: $WILDFLY_DOWNLOAD_ADDRESS..."
[ -e "$WILDFLY_ARCHIVE_NAME" ] && echo 'Wildfly archive already exists.'
if [ ! -e "$WILDFLY_ARCHIVE_NAME" ]; then
wget -q $WILDFLY_DOWNLOAD_ADDRESS
if [ $? -ne 0 ]; then
echo "Not possible to download Wildfly."
exit 1
fi
fi
echo "Cleaning up..."
rm -f "$WILDFLY_DIR"
rm -rf "$WILDFLY_FULL_DIR"
rm -rf "/var/run/$WILDFLY_SERVICE/"
rm -f "/etc/init.d/$WILDFLY_SERVICE"
echo "Installation..."
mkdir $WILDFLY_FULL_DIR
tar -xzf $WILDFLY_ARCHIVE_NAME -C $INSTALL_DIR
ln -s $WILDFLY_FULL_DIR/ $WILDFLY_DIR
useradd -s /sbin/nologin $WILDFLY_USER
chown -R $WILDFLY_USER:$WILDFLY_USER $WILDFLY_DIR
chown -R $WILDFLY_USER:$WILDFLY_USER $WILDFLY_DIR/
#mkdir -p /var/log/$WILDFLY_SERVICE
echo "Registrating Wildfly as service..."
# if should use systemd
if [ -x /bin/systemctl ]; then
# Script from $WILDFLY_DIR/docs/contrib/scripts/systemd/launch.sh didn't
work for me
cat > $WILDFLY_DIR/bin/launch.sh << "EOF"
#!/bin/sh
if [ "x$WILDFLY_HOME" = "x" ]; then
WILDFLY_HOME="/opt/wildfly"
fi
if [ "x$1" = "xdomain" ]; then
echo 'Starting Wildfly in domain mode.'
$WILDFLY_HOME/bin/domain.sh -c $2 -b $3
#>> /var/log/$WILDFLY_SERVICE/server-`date +%Y-%m-%d`.log
else
echo 'Starting Wildfly in standalone mode.'
$WILDFLY_HOME/bin/standalone.sh -c $2 -b $3
#>> /var/log/$WILDFLY_SERVICE/server-`date +%Y-%m-%d`.log
fi
EOF
# $WILDFLY_HOME is not visible here
sed -i -e 's,WILDFLY_HOME=.*,WILDFLY_HOME='$WILDFLY_DIR',g'
$WILDFLY_DIR/bin/launch.sh
#sed -i -e 's,$WILDFLY_SERVICE,'$WILDFLY_SERVICE',g'
$WILDFLY_DIR/bin/launch.sh
chmod +x $WILDFLY_DIR/bin/launch.sh
cp $WILDFLY_DIR/docs/contrib/scripts/systemd/wildfly.service
/etc/systemd/system/$WILDFLY_SERVICE.service
WILDFLY_SERVICE_CONF=/etc/default/$WILDFLY_SERVICE
# To install multiple instances of Wildfly replace all hardcoding in
systemd file
sed -i -e
's,EnvironmentFile=.*,EnvironmentFile='$WILDFLY_SERVICE_CONF',g'
/etc/systemd/system/$WILDFLY_SERVICE.service
sed -i -e 's,User=.*,User='$WILDFLY_USER',g'
/etc/systemd/system/$WILDFLY_SERVICE.service
sed -i -e
's,PIDFile=.*,PIDFile=/var/run/wildfly/'$WILDFLY_SERVICE'.pid,g'
/etc/systemd/system/$WILDFLY_SERVICE.service
sed -i -e 's,ExecStart=.*,ExecStart='$WILDFLY_DIR'/bin/launch.sh
$WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND,g'
/etc/systemd/system/$WILDFLY_SERVICE.service
systemctl daemon-reload
#systemctl enable $WILDFLY_SERVICE.service
fi
# if non-systemd Debian-like distribution
if [ ! -x /bin/systemctl -a -r /lib/lsb/init-functions ]; then
cp $WILDFLY_DIR/docs/contrib/scripts/init.d/wildfly-init-debian.sh
/etc/init.d/$WILDFLY_SERVICE
sed -i -e 's,NAME=wildfly,NAME='$WILDFLY_SERVICE',g'
/etc/init.d/$WILDFLY_SERVICE
WILDFLY_SERVICE_CONF=/etc/default/$WILDFLY_SERVICE
fi
# if non-systemd RHEL-like distribution
if [ ! -x /bin/systemctl -a -r /etc/init.d/functions ]; then
cp $WILDFLY_DIR/docs/contrib/scripts/init.d/wildfly-init-redhat.sh
/etc/init.d/$WILDFLY_SERVICE
WILDFLY_SERVICE_CONF=/etc/default/wildfly.conf
chmod 755 /etc/init.d/$WILDFLY_SERVICE
fi
# if neither Debian nor RHEL like distribution
if [ ! -x /bin/systemctl -a ! -r /lib/lsb/init-functions -a ! -r
/etc/init.d/functions ]; then
cat > /etc/init.d/$WILDFLY_SERVICE << "EOF"
#!/bin/sh
### BEGIN INIT INFO
# Provides:
${WILDFLY_SERVICE}
# Required-Start:
$local_fs $remote_fs $network $syslog
# Required-Stop:
$local_fs $remote_fs $network $syslog
# Default-Start:
2 3 4 5
# Default-Stop:
0 1 6
# Short-Description: Start/Stop ${WILDFLY_FILENAME}
### END INIT INFO
WILDFLY_USER=${WILDFLY_USER}
WILDFLY_DIR=${WILDFLY_DIR}
case "$1" in
start)
echo "Starting ${WILDFLY_FILENAME}..."
start-stop-daemon --start --background --chuid $WILDFLY_USER --exec
$WILDFLY_DIR/bin/standalone.sh
exit $?
;;
stop)
echo "Stopping ${WILDFLY_FILENAME}..."
start-stop-daemon --start --quiet --background --chuid $WILDFLY_USER --exec
$WILDFLY_DIR/bin/jboss-cli.sh -- --connect command=:shutdown
exit $?
;;
log)
echo "Showing server.log..."
tail -500f $WILDFLY_DIR/standalone/log/server.log
;;
*)
echo "Usage: /etc/init.d/wildfly {start|stop}"
exit 1
;;
esac
exit 0
EOF
sed -i -e 's,${WILDFLY_USER},'$WILDFLY_USER',g;
s,${WILDFLY_FILENAME},'$WILDFLY_FILENAME',g;
s,${WILDFLY_SERVICE},'$WILDFLY_SERVICE',g; s,${WILDFLY_DIR},'$WILDFLY_DIR',g'
/etc/init.d/$WILDFLY_SERVICE
chmod 755 /etc/init.d/$WILDFLY_SERVICE
fi
if [ ! -z "$WILDFLY_SERVICE_CONF" ]; then
echo "Configuring service..."
echo JBOSS_HOME=\"$WILDFLY_DIR\" > $WILDFLY_SERVICE_CONF
echo JBOSS_USER=$WILDFLY_USER >> $WILDFLY_SERVICE_CONF
echo WILDFLY_HOME=\"$WILDFLY_DIR\" > $WILDFLY_SERVICE_CONF
echo WILDFLY_USER=\"$WILDFLY_USER\" > $WILDFLY_SERVICE_CONF
echo STARTUP_WAIT=$WILDFLY_STARTUP_TIMEOUT >> $WILDFLY_SERVICE_CONF
echo SHUTDOWN_WAIT=$WILDFLY_SHUTDOWN_TIMEOUT >> $WILDFLY_SERVICE_CONF
echo WILDFLY_CONFIG=$WILDFLY_MODE.xml >> $WILDFLY_SERVICE_CONF
echo WILDFLY_MODE=$WILDFLY_MODE >> $WILDFLY_SERVICE_CONF
echo WILDFLY_BIND=0.0.0.0 >> $WILDFLY_SERVICE_CONF
fi
echo "Configuring application server..."
sed -i -e 's,<deployment-scanner path="deployments" relativeto="jboss.server.base.dir" scan-interval="5000",<deployment-scanner
path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"
deployment-timeout="'$WILDFLY_STARTUP_TIMEOUT'",g'
$WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
sed -i -e 's,<inet-address value="${jboss.bind.address:127.0.0.1}"/>,<anyaddress/>,g' $WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
sed -i -e 's,<socket-binding name="ajp"
port="${jboss.ajp.port:8009}"/>,<socket-binding name="ajp"
port="${jboss.ajp.port:28009}"/>,g'
$WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
sed -i -e 's,<socket-binding name="http"
port="${jboss.http.port:8080}"/>,<socket-binding name="http"
port="${jboss.http.port:28080}"/>,g'
$WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
sed -i -e 's,<socket-binding name="https"
port="${jboss.https.port:8443}"/>,<socket-binding name="https"
port="${jboss.https.port:28443}"/>,g'
$WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
sed -i -e 's,<socket-binding name="osgi-http" interface="management"
port="8090"/>,<socket-binding name="osgi-http" interface="management"
port="28090"/>,g' $WILDFLY_DIR/$WILDFLY_MODE/configuration/$WILDFLY_MODE.xml
[ -x /bin/systemctl ] && systemctl start $WILDFLY_SERVICE || service
$WILDFLY_SERVICE start
echo "Done."
Una volta completata tale operazione, apriamo il terminale e ci spostiamo
nella cartella dove è stato caricato tale file, che è stato chiamato wildflyinstall.sh. Successivamente digitiamo:
bash wildfly-install.sh
L’operazione richiederà qualche minuto, in quanto verranno scaricate diversi
pacchetti dalla rete.
Una volta completata la proceduta d’installazione, per verificare se tutto è
stato installato correttamente digitiamo i seguenti comandi:
sudo systemctl enable wildfly
sudo systemctl status wildfly
Se tutto è andato bene, dovremmo ottenere una risposta del genere:
Qualora ci fosse qualche scritta in rossa, che è dovuto ad un problema
esistente con la versione di Java; per poter sistemare tale situazione
dovremmo procedere nel seguente modo. Apriamo il terminale e digitiamo il
seguente comando, che permette di aprire un file di configurazione:
nano /opt/wildfly/bin/standalone.sh
Una volta inviato tale comando, comparirà una schermata simile alla seguente:
Per poter sistemare il problema è necessario cancellare le seguenti due
righe, presente in tale file:
else
PREPEND_JAVA_OPTS=“$PREPEND_JAVA_OPTS -server”
Ora premiamo CTRL+X e successivamente Y, per confermare le modifiche e
salvarle.
Ora digitando i seguenti i comandi da terminale, dovremmo aver risolto il
problema relativo alla Java Virtual Machine:
sudo systemctl enable wildfly
sudo systemctl status wildfly
Ora rimangono ancora due operazioni da fare, che permettono di poter
utilizzare correttamente il server Wildfly; la prima operazione è quella di
autorizzare altri PC a collegarsi alla pagina di controllo, poter gestire
correttamente il server e la seconda riguarda la creazione di credenziali
d’accesso al server.
Accesso da esterno alla pagina di controllo
Per poter autorizzare PC ad accedere alla pagina di controllo da remoto, è
necessario modificare il file standalone.xml, che si trova nella cartella
/opt/wildfly/standalone/configuration/ ; tale file è molto importante, in
quanto contiene diverse impostazioni che permettono al server di girare
correttamente sul Raspberry PI. Quindi apriamo il terminale e digitiamo il
seguente comando:
sudo nano /opt/wildfly/standalone/configuration/standalone.xml
Le righe da modificar sono:
<interfaces>
<interface name="management">
<loopback-address value="${env.OPENSHIFT_WILDFLY_IP}"/>
</interface>
<interface name="public">
<any-address/>
</interface>
che diventano:
<interfaces>
<interface name="management">
<any-address/>
</interface>
<interface name="public">
<any-address/>
</interface>
</interfaces>
Aggiunta utente
L’ultimo passaggio è la creazione delle credenziali d’accesso per poter
accedere alla pagina di controllo del server Wildfly. Esiste uno script molto
semplice e guidato, che permette di effettuare tale operazione. Per avviare
la procedura è necessario digitare da terminale:
sudo bash /opt/wildfly/bin/add-user.sh
La procedura è guidata, sarà necessario inserire il nome utente, la password
e altre informazioni riguardo al tipo di account.
Ora che abbiamo completato questa procedura, riavviamo il nostro Raspberry PI
e apriamo il browser da remoto, digitando l’indirizzo IP del dispositivo e
come porta la 9990:
http://$IP_RASPBERRY:9990
Conclusione
L’installazione richiede diverse procedura che permettono di aver un server
completamente funzionante anche da remoto. Wildfly è uno strumento molto
potente, che permette di sfruttare al massimo le funzionalità di JavaEE per
lo sviluppo di progetti non sono IoT. Nei prossimi articoli vedremo un po’
d’esempi di utilizzo di tale tecnologia.
Installare Apache, PHP, MySQL sul
Raspberry PI Zero
In questo articolo vedremo come installare sul Raspberry PI Zero i principali
programmi che vengono usati nei progetti domotici e non solo. Ecco la lista
dei software:
Apache
PHP
MySQL
Raspberry PI Zero
A differenza di altri micro-controllori come Arduino, Photon, ESP8266 etc…,
il Raspberry PI Zero permette l’esecuzione di un sistema operativo Linux, il
quale apre le porte alla possibilità di installare software molti utili, come
i 3 che sono stati citati in precedenza. In questo modo è possibile
trasformare il piccolo PC da 4£ in un vero e proprio web server, con il quale
inviare e ricevere dati, che a loro volta possono essere salvati in modo
persistente all’interno di un database MySQL.
Passi preliminari
Come detto in precedenza, il Raspberry PI Zero è in grado di supportare un
sistema operativo Linux come Raspbian. Per questo motivo, è necessario
installare su tale dispositivo un versione del OS. Dal momento che è la
stessa versione del sistema operativo che gira sulla versione 3, possiamo
seguire la medesima guida che è presente sul mio blog.
In alternativa, esistono le pagine ufficiali che spiegano le procedure
dettagliate, per poter installare sul proprio Raspberry PI Zero il sistema
operativo Raspbian su una micro-SD.
Guida ufficiale
Installazione Apache
Apache un software scritto in C, che permette di trasformare il Raspberry PI
Zero in un vero e proprio webserver, in grado quindi di ricevere ed elaborare
richieste HTTP(s), per poter mostrare pagine web, ad esempio una pagina html.
Uno dei rivali di Apache è NGIX; entrambi sono software gratuiti le loro
differenze riguardano le performance per diversi tipi di siti web.
Tipicamente NGIX risulta essere più veloce a caricare pagine dinamiche, (ad
esempio un blog WordPress), mentre Apache è più performante con pagine web
statiche.
Vediamo quali passaggi dobbiamo effettuare per poter installare Apache sul
nostro Raspberry PI Zero.
Apriamo il terminale del nostro PC e digitiamo il seguente comando:
sudo apt-get install apache2 -y
Una volta premuto invio, il nostro dispositivo incomincerà a scaricare un po’
di pacchetti utili all’installazione, che richiederà qualche decina di
secondi. Una volta completata, per verificare che funzioni tutti
correttamente, basterà aprire il browser e digitare sulla barra degli
indirizzi http://127.0.0.0.1. Se l’installazione è stata completata
correttamente, comparirà una pagina web simile a questa:
Ora potremo caricarci i nostri file html all’interno della cartella
/var/www/. Ovviamente sono disponibile tantissime configurazioni, che
permettono di gestire diversi siti web contemporaneamente, cambiare la porta
d’utilizzo e introdurre il protocollo SSL.
Installazione PHP
PHP è un linguaggio di programmazione lato server, che permette di introdurre
una logica per la gestione di dati, che vengono inviati al server. Ad esempio
possiamo validare l’invio di un form di registrazione e gestire i vari casi.
Inoltre PHP è un linguaggio di programmazione che permette facilmente di
poter leggere e scrivere dati all’interno di un database MySQL. Sicuramente
PHP è un linguaggio non recentissimo, che però permette di creare in poco
tempo buoni infrastrutture server; basti pensare che Facebook all’inizio era
scritto in PHP. La versione più recente è la 7, ma nella repo ufficiale del
Raspberry PI è presente ancora la versione 5.6, che ormai è molto stabile e
consolidata. Occorre notare che PHP è molto severo nei metodi deprecati e
quando ci sono nuovi aggiornamenti, è possibile che del codice che prima
funzionava, adesso non funzioni più Per questo motivo, prima di effettuare
qualsiasi aggiornamento, è sempre meglio verificare la lista dei metodi che
non sono più validi.
Ora vediamo come installare PHP sul nostro Raspberry PI zero.
Il primo passaggio è quello di aprire il terminale e digitare il seguente
comando:
sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache php5-mysql
php5-curl php5-gd
Se ci dovessero essere dei problemi, molto probabilmente è dovuto al fatto
che mancano dei pacchetti aggiornati del sistema operativo. In questo caso
sarà necessario inviare i seguenti comandi:
sudo apt-get update
e successivamente:
sudo apt-get upgrade
Per verificare che tutto funzioni correttamente, è necessario creare un
piccolo file PHP di nome info.php, all’interno della cartella Apache, come il
seguente:
<?php phpinfo(); ?>
Occorre ricordare che per poter accedere alla cartella di Apache è necessario
accedere con i privilegi da root. Ora che abbiamo caricato la pagina PHP,
possiamo testare il funzionamento aprendo il browser e digitando nella barra
degli indirizzi:
http://127.0.0.1/info.php
Se tutto funziona correttamente, dovremo vedere una pagina web simile alla
seguente:
Installare MySQL
L’ultimo programma molto utile che verrà descritto in questo articolo è
MySQL. Tale software è molto utile per quanto riguarda il salvataggio dei
dati, che vengono generati a run-time dai nostri programmi/sensori collegati
al nostro Raspberry PI. Per poter leggere e scrivere successivamente tali
dati, sarà necessario effettuare delle query, che utilizzano il linguaggio
SQL. Tale linguaggio non è complicato e sul web è possibile trovare tante
guide e tanti esempi a riguardo. Un tutorial molto utile/interessante è il
seguente.
Per poter utilizzare il sistema di persistenza dei dati in un DB è necessario
disporre di un MySQL server e dei driver per potersi collegare a tale
dispositivo. Esiste un client molto utile, che si chiama MySQL Workbench, che
permette di fare manutenzione sul server ed effettuare le query al DB.
Vediamo un po’ come installare il MySQL server. Il primo passaggio è quello
di aprire il terminale e digitare il seguente comando:
sudo apt-get install mysql-server
Una volta premuto y, verrà chiesta la password dell’account root. Per motivi
di sicurezza, si consiglia di crearne una abbastanza robusta, in quanto tale
password permette di dare praticamente di tutto all’interno del DB.
Successivamente comparirà una pagina, in cui dovremmo confermare la password,
che abbiamo digitato in precedenza.
Dopo qualche istante l’installazione del MySQL server dovrebbe essere stata
completata correttamente.
Di default, per motivi di sicurezza, il server non è accessibile da remoto.
Per ovviare a tale limitazione, sebbene riduca il livello di sicurezza,
possiamo modificare il file di configurazione.
Per farlo digitiamo da terminale il seguente comando:
nano /etc/mysql/my.cnf
La riga da modificare è:
bind-address = 127.0.0.1
che diventa:
bind-address = 0.0.0.0
Ora è necessario riavviare il servizio MySQL:
sudo /etc/init.d/mysql restart
Ora dovremmo essere riusciti ad aver installato Apache, PHP e MySQL server
sul nostro Raspberry PI zero.
Per poter acquistare il Raspberry PI zero, oppure il Raspberry PI model B e
tanti altri accessori, potete farlo sul sito http://www.kubii.it/.
Come accedere in SSH con l'account
root al Raspberry PI
Il Raspberry PI è un dispositivo molto versatile, in quanto può essere
utilizzato in diversi ambiti informatici, come ad esempio web server, NAS,
IoT etc…
Grazie alla porta HDMI è possibile collegarlo ad un monitor ed effettuare le
diversi impostazioni necessari. Tuttavia, per comodò d’utilizzo, è
conveniente accedervi da remoto, sfruttando la rete e il protocollo SSH.
In informatica e telecomunicazioni SSH (Secure SHell, shell sicura) è un
protocollo che permette di stabilire una sessione remota cifrata tramite
interfaccia a riga di comando con un altro host di una rete informatica. È il
protocollo che ha sostituito l’analogo, ma insicuro, Telnet. (tratto da
Wikipedia)
Dunque questo protocollo permette di comandare il Raspberry PI da remoto,
sfruttando un semplice programma client come Putty per Windows, oppure il
terminale in ambiente Unix.
La sintassi per poter accedere in ambiente Unix è la seguente:
ssh $user@$ip
Ad esempio:
ssh [email protected]
Successivamente verrà chiesta la password, che nel caso di Raspbian, il
sistema operativo ufficiale per il Raspberry PI è raspberry.
Dal momento che c’è uno scambio di chiave per crittografare i pacchetti
inviati, sarà necessario confermare tale operazione.
Per poter accedere da remoto con l’account root con programmi come Cyberduck,
Winscp etc…, che permettono di trasferire facilmente file, è necessario
effettuare le seguenti operazioni.
La prima consiste nell’impostare la password dell’account root. Per farlo ci
colleghiamo in SSH con l’account PI:
ssh pi@$ip
Successivamente richiediamo di impostare la password:
sudo passwd root
Dove aver premuto invio, dovremmo inserire la nuova password e confermarla.
Ora abbiamo impostato le credenziali d’accesso per l’account root. Tuttavia,
per motivi di sicurezza, di default non è possibile accedere da remoto in
ssh. Per tanto dovremmo effettuare le seguenti operazioni da terminale:
nano /etc/ssh/sshd_config
Una volta premuto invio, comparirà una sorta di editor di testo, nel quale
dovremmo andare a fare la seguente la modifica; le righe da cambiare sono le
seguenti:
Prima
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes
Dopo
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes
Ora ci basterà riavviare il servizio e potremmo accedere con l’account root
in SSH da remoto:
service sshd restart
Per maggiori informazioni, ecco due link utili: #1, #2.
Unboxing Raspberry PI 3 Model B
In questo articolo vedremo da vicino il nuovo Raspberry PI 3 Model B, il
nuovo prodotto della fondazione Inglese.
Il prodotto è acquistabile sul sito kubii.it al prezzo di 45 Euro nella sua
versione base, oppure è possibile acquistarlo nei vari kit disponibili.
Una volta completato l’ordine, il pacco arriverà a casa in pochi giorni con
corriere espresso SDA.
Caratteristiche del Raspberry PI 3
Il nuovo Raspberry PI 3 include diverse migliori; tra tutte spiccano i moduli
wireless presenti nativamente, come il WiFi e il Bluetooth, oltre che ad un
processore a 64 bit a 1 Gb di RAM. Ecco la lista completa:
A 1.2GHz 64-bit quad-core ARMv8 CPU
802.11n Wireless LAN
Bluetooth 4.1
Bluetooth Low Energy (BLE)
1GB RAM
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot (now push-pull rather than push-push)
VideoCore IV 3D graphics core
Il nuovo modello diventa sempre più potente, ma le sue dimensioni rimangono
uguali e per tanto sarà possibile usare lo stesso case della versione 2.
Cosa serve per usarlo?
Sul piccolo PC Linux è disponibile uno slot per Micro SD, dove potremmo
inserire la nostra scheda di memoria, dove verrà installato il sistema
operativo e tutti i dati. Per un corretto utilizzo consiglio di usare una
scheda da 16 GB, in modo da poter installare programmi aggiuntivi, senza aver
problemi di memoria.
L’installazione è davvero semplice, in quanto basta scaricare dal sito
ufficiale l’auto-installare NOOBS da questo link e copiare il contenuto della
file .zip, nella memoria Micro SD, che è stata precedentemente formattata.
Ecco il video che mostra l’installazione in modo dettagliato:
Per le istruzioni testuali ufficiali, è possibile trovarle facilmente in
questo pagina web.
Cosa posso fare con il Raspberry PI 3?
Il piccolo PC Linux low cost da 35$, permette di utilizzarlo in diversi
ambiti.
Web Server
Ad esempio possiamo trasformarlo in un Webserver, grazie all’utilizzo di
Apache oppure NGINX. In questo modo potremmo caricarci sopra il proprio sito
web personale, oppure servizi locali.
Cloud storage
Un altro interessante utilizzo è quello del cloud storage. Infatti,
attraverso software open source come ownCloud possiamo crearci un servizio
simili a Dropbox, accessibile anche da remoto, attraverso le applicazioni
disponibili.
Media Center
Per quanto riguarda l’intrattenimento domestico, attraverso file
multimediali, come audio, video, foto etc.., il Raspberry PI è un ottimo
alleato. Infatti esiste una sistema operativo appositamente creato per
questo: il suo nome è XBMC. Esiste una nuova del sistema operativo, che
prende il nome di Kodi.
PC da casa
Grazie al sistema operativo Linux Raspbian, è possibile installare i
principali software, che permettono di trasformare il Raspberry PI in un
verso e proprio PC da casa. Sarà possibile realizzare e stampare documento,
navigare nel web, inviare messaggi di posta elettronica e tanto altro. Le
performance non saranno quelle di un supercomputer, ma per operazioni
domestiche, va più che bene.
Progetti di domotica
Il Raspberry PI dispone di un GPIO, con il quale è possibile interfacciarsi
con dispositivi hardware, come ad esempio relè, sensori di temperatura etc…
In questo modo sarà possibile realizzare diversi progetti IoT, come ad
esempio controllare il garage di casa proprio da smartphone. Interessante
vero?
Conclusioni
Il Raspberry Pi 3 è un diventato ormai un PC molto popolare grazie al suo
prezzo davvero ridotto, che però non impatta sulle prestazioni del
dispositivo.
Con questo piccolo PC Linux è possibile fare praticamente di tutto; dal Media
center di casa, al piccolo server di un’azienda.
Insomma per chi vuole divertirsi in tantissimi progetti IoT, sicuramente con
il Raspberry PI 3 troverà un buon amico!
Ecco il nuovo Raspberry PI 3, ancora
più potente
La scorsa settimana è stato lanciata sul mercato la terza versione del
Raspberry PI, il famoso PC low-cost tanto amato dagli smanettoni di tutto il
mondo.
Ecco i nuovi componenti hardware del Raspberry PI 3:
A 1.2GHz 64-bit quad-core ARMv8 CPU
802.11n Wireless LAN
Bluetooth 4.1
Bluetooth Low Energy (BLE)
La nuova versione del piccolo PC low-cost introduce un processore più potente
e con un’architettura a 64 bit. Altre caratteristiche davvero importanti e
molto desiderate dagli utenti sono le schede di connettività wireless già
presenti nel dispositivo nativamente; infatti il Raspberry PI 3 dispone di
una scheda WiFI e delle più recenti versioni del bluetooth, che permettono di
potersi connettere ai tantissimi dispositivi IoT che si basano sul BLE.
Le caratteristiche del suo predecessore, sono sempre presenti:
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot (now push-pull rather than push-push)
VideoCore IV 3D graphics core
Nuovo aggiornamento prezzo aumentato? No. Infatti il Raspberry PI 3 ha lo
stesso costo del suo predecessore, cioè 35 Euro. Tuttavia è doveroso
sottolineare che il costo compendo la sola scheda e quindi è necessario
aggiungere le spese di spedizione ed eventuali case/accessori opzionali, che
tipicamente fanno lievitare il costo fino a 50 Euro. Tuttavia per chi vuole
un piccolo web server per la casa, con funzionalità di media center, NAS
etc…, il Raspberry PI 3 è sempre un ottima scelta.
Come realizzare un server web per
visualizzare i dati di una stazione
meteo
Come realizzare un server web per visualizzare i dati di una
stazione meteo
Grazie all’avvento di Internet, è diventato ormai semplice poter visualizzare
le previsioni meteo e l’attuale situazione meteorologica. Nella rete sono
presenti tanti siti web che permettono di visualizzare tali valori e la
maggior parte di essere risulta essere attendibile e semplice da usare.
Previsioni meteo, tratti dal sito ilmeteo.it
Tuttavia il detto “chi fa da se fa per tre” mi ha portato a realizzare un
servizio web, per trasformare alcuni dispositivi in una stazione meteo
professionale. Alla fine dell’installazione di tutti i componenti sarà
possibile accedere ad una pagina web, nella quale saranno presenti i valori
di temperatura e umidità attuali, giornalieri e alcuni statistiche, come ad
esempio la temperatura massima e minima registrata nei vari giorni.
Requisiti per il progetto
Hardware
2 Arduino UNO
1 x kit di sensori Wireless 433 Mhz
1 x DHT22
2 x Breadboard per installare i dispositivi
Un po’ di cavi flessibili
1 x PC come basi di dati e server (consiglio caldamente di utilizzare un
Raspberry PI, oppure un UDOO)
Software
I miei codici, disponibili nella repo di Github
Queste librerie per Arduino DHT22, MYSQL, VirtualWire, SendData
MySQL Workbench
Tasksel (software che includi ottimi servizi lato server, come
PHPMyAdmin, Apache e tanto altro)
Sommario del progetto
Ora vedremo in dettaglio tutti i componenti che sono utilizzati in questo
progetto.
Come viene letta la temperatura
Uno dei principali componenti per realizzare una qualsiasi stazione meteo è
un trasduttore in grado di leggere la temperatura e l’umidità.
Un trasduttore/sensore non è altro che un dispositivo elettrico in grado di
trasformare una grandezza fisica quale la temperatura, in una grandezza
elettrica, cioè un valore di tensione, oppure di corrente. La grandezza
elettrica, verrà tratta successivamente a seconda che l’uscita del sensore
sia analogica, oppure digitale, cioè una corrispondenza di 0 e 1. Facciamo un
piccolo esempio;
Dati Numero di bit = 10; Vcc = 5 V GND = 0 V
Se il numero di bit è pari a 10, è possibile rappresentare valori che vanno
da 0 a 2^10-1, cioè fino a 1023. Qualora venga letto un valore, per esempio
con Arduino, pari a 512, per calcolare la tensione effettiva che riceve il
microcontrollore, occorre fare il seguente calcolo:
V_IN = 512/1024 * 5 [V] = 2.5 [V]
Se per esempio, il nostro trasduttore è stato modellizzato in modo tale da
fornire un valore di tensione proporzionale alla temperatura, come ad esempio
V_OUT = 0.1* temperatura, se ci sono 25 gradi, l’uscita sarà pari a 0.1*25 =
2.5 V e quindi Arduino avrà un valore in lettura pari proprio a 512.
Ovviamente questo esempio semplifica abbastanza le dinamiche di funzionamento
di un trasduttore per temperature. Tale trattazione non è troppo importante a
fini di realizzare il progetto; serve solo come conoscenza personale.
Come già utilizzato nei progetti precedenti, anche in questo caso verrà
utilizzato un trasduttore di temperatura e umidità molto semplice, quale il
DHT22. Esso è facilmente acquistabile su Ebay, al costo di qualche Euro.
La modellizzazione del dispositivo è già stata fatta e quindi per poterlo
usare all’interno dei nostri codici, è necessario solamente scaricare la
relativa libreria.
Come indicato all’interno della documentazione, per poter leggere un valore
di temperatura corretto è necessario inserire una resistenza da 10 KOhm in
pull up tra l’alimentazione Vcc e il pin di uscita, come riportato il figura.
Come ogni componente presente in un progetto, conviene testare la lettura
della temperatura, attraverso questo semplice codice:
// Programma che permette di leggere la temperatura, attraverso un sensore
#include "DHT.h"
#define DHTPIN 2
// Il pin a cui è collegato il sensore
// Togli il commmento al sensore che vuoi usare
//#define DHTTYPE DHT11
#define DHTTYPE DHT22
// DHT 11
// DHT 22
//#define DHTTYPE DHT21
(AM2302)
// DHT 21 (AM2301)
// Connettere il pin 1 (a sinistra) a +5V
// Connettere il pin 2 del sensore alla porta 2
// Connettere il pin 4 (a destra) del sensore
a GROUND
// Connettere una resistenza da 10K tra il pin 2 (data) e il pin 1 (power)
del sensore
DHT dht(DHTPIN, DHTTYPE);
voidsetup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
voidloop() {
// Legge la temperatura e l'umidità ogni 250 millisecondi!
// Vengono inizializzate le variabili in cui vengono scritti i valori letti
floath = dht.readHumidity();
floatt = dht.readTemperature();
// Controlla se la lettura è andata a buon fine
if(isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else{
Serial.print("Humidity: ");
Serial.print(h); // Stampa nel seriale la percentuale dell'umidità
Serial.print(" %t");
Serial.print("Temperature: ");
Serial.print(t); // Stampa nel seriale il valore della temperatura
Serial.println(" *C");
}
}
Come vengono inviati i valori di temperatura e umidità tra i dispositivi
L’altro aspetto sempre legato alla temperatura, è l’invio dei dati tra
l’Arduino che viene collegato all’interno dell’abitazione e quello posto
all’esterno. Il fatto di dover utilizzare due dispositivi, è dovuto al
semplice fatto che tipicamente non si dispone di una prese Ethernet esterna e
una scheda Wireless ha un costo abbastanza elevato. Per questo motivo
conviene utilizzare i due dispositivi e farli comunicare tra di loro
attraverso un kit wireless, che funziona sulla frequenza 433 Mhz. Tali
dispositivi sono già stati trattati in passato e per ulteriori informazioni,
vi invito a guardare questo articolo, presente sul mio blog.
Il collegamento dei PIN dei dispositivi wireless è riportato in figura.
Se abbiamo correttamente collegato tutti i dispositivi, potremmo inviare i
valori di temperatura e umidità tra l’Arduino posto fuori casa e quello che è
presente in casa, nel quale sarà presente una scheda Ethernet Shield, che gli
permetterà di collegarsi ad Internet ed inviare i dati letti.
Il programma da caricare sull’Arduino client è:
#include "DataCoder.h"
#include "VirtualWire.h"
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
int transmit_pin = 12;
int led_pin = 13;
int baudRate = 800;
int delayTime = 30000;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
pinMode(led_pin,OUTPUT);
Serial.begin(9600);
SetupRFDataTxnLink(transmit_pin, baudRate);
dht.begin();
}
void loop()
{
float outArray[2];
float h = dht.readHumidity();
float t = dht.readTemperature();
outArray[0] = t;
outArray[1] = h;
union RFData outDataSeq;
EncodeRFData(outArray, outDataSeq);
TransmitRFData(outDataSeq);
delay(delayTime);
}
In questo codice è possibile modificare il tempo che trascorre tra l’invio di
dati.
Il programma da caricare sull’Arduino server è:
/*
This code allow Arduino to send the value of temperature and humidity to a
DB, everty portion of time, setted by the user.
The data of temperature come from an Arduino via wireless, so one Arduino can
stay outside, and the other
one can stay in the home
Version 1.0
Author Giacomo Bellazzi
Copyright (C) 2014 Giacomo Bellazzi (http://ismanettoneblog.altervista.org/)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <SPI.h>
#include <Ethernet.h>
#include <sha1.h>
#include <mysql.h>
#include <avr/dtostrf.h>
#include <DataCoder.h>
#include <VirtualWire.h>
const int rx_pin = 11; // the Pin of the RX
const int baudRate = 800;
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(192,168,1,20); // MySQL Server IP
char user[] = "username";
char password[] = "password";
Connector my_conn; // The Connector/Arduino reference
const char INSERT_DATA[] = "INSERT INTO WeatherStation.Data VALUES
(1,%s,%s,CURRENT_DATE,CURRENT_TIME)";
void setup(){
Ethernet.begin(mac_addr);
//Serial.begin(9600); for DEBUG
Serial.println("Connecting...");
SetupRFDataRxnLink(rx_pin, baudRate);
if (my_conn.mysql_connect(server_addr, 3306, user, password)) {
delay(1000);
}
else
Serial.println("Connection failed.");
}
void loop(){
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
union RFData inDataSeq;//To store incoming data
float inArray[2];//To store decoded information
if(RFLinkDataAvailable(buf, &buflen))
{
for(int i =0; i< buflen; i++)
{
inDataSeq.s[i] = buf[i];
}
DecodeRFData(inArray, inDataSeq);
float temperature = inArray[0];
float humidity = inArray[1];
//DEBUG
//Serial.println("Temperature: ");
//Serial.print(temperature);
//Serial.print(" ° Humidity: ");
//Serial.println(humidity);
sendToDB(inArray[0],inArray[1]);
}
}
// This code send the values of the temperature and humidity to the DB
void sendToDB(float temperature,float humidity){
char query[64];
char t[6];
char h[6];
dtostrf(temperature, 1, 2, t);
dtostrf(humidity, 1, 2, h);
sprintf(query, INSERT_DATA, t,h);
my_conn.cmd_query(query);
}
Sarà necessario inserire/modificare i dati, quali IP, username e password
della propria base di dati (vedi pagine successive).
Come vengono salvati i valori registrati
Un aspetto importare in questo progetto è il salvataggio dei dati che vengono
letti dall’Arduino, sfruttando il sensore di temperatura DHT22. Infatti, se
non fosse presente un dispositivo in grado di poter salvare i dati, non
sarebbe possibile recuperare tali valori in futuro.
Per questo motivo, in questo progetto, viene utilizzata come base di dati un
server MySQL. Il motivo di utilizzare questo sistema è che esso è
relativamente facile da usare ed ad installare.
Facciamo una breve introduzione a MySQL; esso un sistema basato sull’Algebra
relazionale, che non è altro che un insieme di regole, che permettono di
mettere in relazione tra di loro dati.
Facciamo un breve esempio; per una persona è normale ipotizzare, come dati,
il suo nome, cognome, codice fiscale, città di nascita. Quindi si potrebbe
rappresentare in questa tabella i dati:
Codice Fiscale
Nome
Cognome
Città di Nascita
ABCDEFG
Paolo
Rossi
Milano
Si potrebbe approssimare, per semplicità, che è possibile creare uno schema
della propria base di dati, sfruttando questa tabella, mantenendo come
attributi, i valori in grassetto. Occorre notare che, per come è stato
realizzato il codice fiscale, esso viene definito una chiave primaria nella
relazione Persona, dal momento che non esistono due persone diverse, con lo
stesso codice fiscale.
Per una trattazione più ampia di MySQL e dell’Algebra relazione, è possibile
leggere il seguente articolo.
Come poter visualizzare i dati salvati ed effettuare richieste
Il passo successivo è quello di creare uno schema corretto per il nostro
progetto. Questa operazione, richiede di tradurre le notazioni riguardo alla
temperatura, in Algebra relazione. Per esempio, quali sono gli attributi
relativi alla misura di una temperatura ? Per esempio potrebbero essere il
valore della temperatura, dell’umidità, l’ora e la data di registrazione. Se
però avessimo più dispositivi, sparsi per esempio in varie città d’Italia,
come possiamo fare ? La soluzione più semplice è quella di usare un ID, che
identifica ogni stazione meteo.
Ricapitolando avremmo questa relazione, che ho chiamata Data, all’interno
dello schema WeatherStation:
ID
Temperature
Humidity
Date
Time
Ogni stazione meteo, ha però altre informazioni, più statiche, come ad
esempio il luogo in cui è installata. Per questo motivo è necessario creare
una seconda relazione, che contiene quelle informazioni.
Per poter creare una base di dati è necessario installare il pacchetto MySQL
server su un PC (meglio su UDOO oppure Raspberry ) e un programma client,
chiamato MySQL Workbench, poter effettuare query ed impostare lo schema della
base di dati.
idDevice
Town
Location
Installazione Tasksel
Spesso si pensa che dover installare programmi specifici su piattaforme Linux
sia difficile; in realtà non c’è cosa più semplice !!! Infatti per poter
installare il server MySQL, il server Apache server lanciare da terminare, la
seguente linea di comando:
sudo apt-get install tasksel
Ora basterà seguire l’installazione guidata, premendo invio quando richiesto.
L’installazione completa è quella del Lamp server, che consiglio di fare. Per
trovare la procedura di installazione completa, basta dare un’occhiata alla
pagina ufficiale di UDOO
http://www.udoo.org/ProjectsAndTutorials/udoo-web-server/
Una volta completa la procedura, è necessario installare il client di MySQL;
esso è disponibile nelle principali piattaforme ed è possibile scaricarle dal
seguente link http://www.mysql.it/products/workbench/
Realizzazione basi di dati
Come discusso in precedenza, per salvare i dati è necessario/conveniente
usare un DB MySQL. Nel passo precedente è stato installato il server MySQL,
sfruttando l’installazione automatica con tasksel. Durante tale installazione
è stata impostata una password di root per gestire il DB.
Per poter accedere anche da remoto al server, è necessario effettuare una
piccola modifica al file /etc/mysql/my.cnf, in particolare alla riga relativa
a bind-address:
bind-address = 0.0.0.0
In questo modo sarà possibile accedere alla base di dati anche da remoto,
effettuando il port-forwarding delle porta 3306 sul proprio router.
Per creare lo schema della stazione meteo, come indicato precedente, occorre
selezionare la voce
“Create new schema” e chiamarlo con il nome WeatherStation. Da qui sarà
necessario creare due tabelle, una con il nome Data e una chiamata Device. La
prima e la seconda dovranno avere i seguente attributi, con i relativi tipi:
Ora che abbiamo creato il nostro schema, è possibile effettuare alcune query,
che non sono altro che interrogazioni, per visualizzare certi valori, come ad
esempio il valore massimo e minimo di temperatura in un certa giornata, i
valori di temperatura in certe ore etc…
Ecco alcuni esempi utili:
Ultimo aggiornamento
Select *
From Data
WHERE Hour(Time)=HOUR(Current_TIME) && Minute(Time)=MINUTE(Current_Time)-1
Dati della giornata
Select *
From WeatherStation.Data
Where Date = CURRENT_DATE && Minute(WeatherStation.Data.Time)=00
Order by Time
Valori Max e Min per giornata
Select Max(Temperature),Min(Temperature), Max(Humidity), Min(Humidity), Date
From Data
Group by date
Caricamento file PHP sul server
Ultimo passaggio che ci rimane è quello di creare una pagina web, dalla quale
sarà possibile visualizzare i valori valori raccolti e le relative
interrogazioni che desideriamo.
Per poter interrogare facilmente un DB da una pagina WEB, è necessario
utilizzare un linguaggio lato server che si chiama PHP. Esso un linguaggio
abbastanza standard da usare e comprendere; l’unica nota utile da fare è che
tutte le variabili in PHP sono indicate con $nome_variabile = .
Ho realizzato, per semplice comodità, alcune pagine PHP utili per la stazione
meteo.
Sono già pronte all’uso, a patto di modificare il file mysql.php, che
contiene i dati d’accesso al database. I file PHP sono reperibili all’interno
della cartella PHP, che è presente nella repo di Github.
Le operazioni da fare per il progetto sono:
Installare il codice di Arduino per il client, che contiene il DHT22
Installare il codice di Arduino per il server, a cui è connessa la
scheda Ethernet
Installare su PC/Raspberry/UDOO i componenti MySQL server, Apache etc…
Creare lo schema del DB
Caricare le pagine WEB PHP nella cartella WWW del server
Disponibile il libro Alla Scoperta del
Raspberry PI: il piccolo PC Linux da
35 $
Raspberry PI: il piccolo PC Linux da 35 $
Oggi è disponibile sul mio blog e quindi può essere scaricato il libro Alla
Scoperta di Raspberry PI. In questo libro, si parla delle prime operazioni da
fare con il PC targato Linux ed ulteriori operazioni da fare, per migliorare
l’esperienza complessiva. Questo libro è stato scritto da me, con l’intento
di promuovere il più possibile il progetto Inglese del Raspberry PI, anche
agli utenti italiani. Per questo motivo e per la stessa filosofia che
contraddistingue Linux, il libro è gratuito, e lo resterà anche nell’edizioni
future, nelle quali verrano introdotti capitoli riguardati la robotica e
possibili ulteriori utilizzi del Raspberry PI, oltre che eventuali
aggiornamenti del sistema operativo Debian. All’interno del libro, sarà
possibile trovare i passaggi essenziali per avviarlo, oltre che consigli per
come aumentare le prestazioni e la durate del Raspberry PI. Per avere news
sul mondo del piccolo PC, potete visitare il sito http://www.raspberrypi.org.
Ecco l’indice del libro:
1.
2.
3.
4.
5.
6.
7.
1
2
3
4
5
6
7
Il PC da 35 Euro 5
Come installare il sistema operativo su SD 13
Primo avvio del sistema operativo 17
E↵etuiamo l’overclock 21
Come installare il flash player 23
Come visualizzare filmati in HD a 1080p 25
Trasformare il Raspberry PI in un medicenter 27
1. 7.1 InstalliamoRaspbmc……………………. 27
2. 7.2 Installiamo l’add-on SportsDevil per guardare la TV . . . . .
. . 30
3. 7.3 Utilizzamol’iPhonecometelecomando . . . . . . . . . . . . . .
. 34
8. 8 Come trasformare il Raspberry PI in un server VPN PPTP 37
9. 9 Installare i principali programmi 43
10. 10 Ultime impostazioni, per migliorare l’esperienza con il Rasp- berry
PI
Per scaricare il libro in formato PDF, basterà aprire il link qui sotto.
Buona lettura a tutti e buon divertimento con il Raspberry PI !
Alla scoperta del Raspberry PI
Lista dei comandi del terminale per
Linux
Linux è sistema gratuita Open Source, cioè è gratuita e chiunque può
contribuire per renderlo un sistema migliore. Ecco una descrizione da
Wikipedia:
Linux (/ˈlinuks/[2], pronuncia inglese [ˈlɪnʊks][3]) è una famiglia di sistemi
operativi di tipo Unix-like, rilasciati sotto varie possibili distribuzioni,
aventi la caratteristica comune di utilizzare come nucleo il kernel Linux.
Molte importanti società come: IBM, Sun Microsystems, Hewlett-Packard, Red
Hat, Canonical e Novell hanno infatti sviluppato e rilasciato, e continuano a
farlo, sistemi Linux. Grazie alla portabilità del kernel Linux sono stati
sviluppati sistemi operativi Linux per un’ampia gamma di computer,
dai personal computer, ai cellulari, dai tablet computer e console,
ai mainframe e ai supercomputer ed esistono sistemi Linux installabili anche
come server[4][5][6][7].
Le piattaforme più famose sono Ubuntu, Debian, Fedora e Ovviamente Backtrack.
Alla base di Linux, c’è Unix, un sistema sicuro, su cui per prima Apple ha
progetto i suoi Mac. Per poter utilizzare al meglio Linux, sopratutto le
distro meno conosciute, è consigliabile avere una minima conoscenza dei
principali comandi da utilizzare da terminale, per eseguire le principali
operazioni. Ecco una breve, lista dei comandi da utilizzare in ambiente
linux.
Lista comandi Linux (file PDF)
6° Puntata Alla scoperta di Raspberry
PI: Come visualizzare filmati in HD a
1080P
In questa sesta puntata, parleremo di come sia possibile visualizzare filmati
in alta definizione, con il Raspberry PI. Una delle principali lacune è la
scheda grafica, che non è sicuramente una delle migliori. Tuttavia, ci sono
ottimi programmi che permettono di far girare tranquillamente filmati, grazie
a librerie “speciali”, che permettono di accellerare la scheda video. Dai
risultati, la CPU non viene utilizzata più di tanto, come si può vedere dal
grafico in basso a destra. Il migliore programma si chiama Omxplayer.
Per installare il programma apriamo il terminale e digitiamo:
sudo apt-get install omxplayer
Lo svantaggio di questo programma è quello di non essere in modalità GUI,
cioè non ha una grafica e va comandato da terminale. Per esempio per
visualizzare un filmato digitiamo la seguente sintassi:
omxplayer -o hdmi -p nomefile.mp4
Importanti sono i comandi -o hdmi e -p; questi permettono di trasferire anche
l’audio attraverso il cavo HDMI, importante feature del Raspberry PI.
Tuttavia, dipende molto dalla TV che utilizziamo. Qualora ci fossero
difficoltà, dobbiamo utilizzare il jack audio presente sulla scheda audio.
Per avere una completa lista dei comandi di questo importante programma basta
digitare da terminale:
omxplayer -h
Ci sono altri programmi che permettono di visualizzare video, come VLC, ma
purtroppo non dispone dell’accelerazione hardware di Omxplayer, dunque la
riproduzione dei filmati può risultare a scatti.
Durante l’esecuzione del filmato, è possibile utilizzare i seguenti comandi:
z
1
2
j
k
i
o
n
m
s
d
f
q
Space or p
+
Left Arrow
Right Arrow
Down Arrow
Up Arrow
Show Info
Increase Speed
Decrease Speed
Previous Audio stream
Next Audio stream
Previous Chapter
Next Chapter
Previous Subtitle stream
Next Subtitle stream
Toggle subtitles
Subtitle delay -250 ms
Subtitle delay +250 ms
Exit OMXPlayer
Pause/Resume
Decrease Volume
Increase Volume
Seek -30
Seek +30
Seek -600
Seek +600
5°Puntata Alla scoperta di Raspberry
PI: Come installare il flash player
In questa quinta puntata parleremo di come installare il flash player sul
Raspberry PI, in modo da poter visualizzare senza problemi i filmati sui vari
siti Internet, come Youtube. Adobe, famosa per questo “software” non supporta
correttamente tale dispositivo. Tuttavia, esiste un’ottima alternativa che si
chiama Gnash. Questo semplicissimo programma, permette di far visualizzare
senza problemi di compatibilità i filmati flash presenti sul WEB. In questo
modo, per esempio, è possibile visualizzare i principali eventi sportivi
trasmessi in streaming su Internet. Illegale, ma davvero carina come idea !
Come primo passo, apriamo il terminale e digitiamo:
sudo apt-get install gnash
Ora installiamo tale plugin per renderlo eseguibile dal browser Midori:
sudo apt-get install browser-plugin-gnash
Ora i video in f lash potranno essere visualizzati con il Raspberry. Bisogna
ricordare, che a causa della limitazione delle scheda video, i video potranno
essere riprodotti a scatti.
Un’ottima alternativa a questa soluzione è quella di utilizzare Chromium, la
versione di Chrome per Linux. Per installarla, dobbiamo semplicemente
digitare da terminale:
sudo apt-get install chromium-browser.
Fly UP