mon raspberry pi (rpi)

Transcription

mon raspberry pi (rpi)
MON RASPBERRY PI (RPI) – MEMO
Mon Raspberry ....................................................................................................................................................................... 2
Télécharger l’OS du RPi ........................................................................................................................................................... 2
Installer l’OS une la carte SD ................................................................................................................................................... 2
1ère Configuration .................................................................................................................................................................... 2
Installer et utiliser le protocole SSH pour prendre la main à distance sans écran ................................................................. 5
Installer un serveur VNC ......................................................................................................................................................... 5
Quelques bases de base ......................................................................................................................................................... 6
Installer le gestionnaire des paquets Synaptic ....................................................................................................................... 6
Installer Chromium (in french) ............................................................................................................................................... 6
Mise à jour du firmware du Raspberry ................................................................................................................................... 6
Prendre la main à distance avec UltraVNC à partir d’un poste client .................................................................................... 6
Prendre la main à distance avec TightVNC à partir d’un poste client .................................................................................... 7
Transférer des fichiers avec WinSCP à partir d’un poste client .............................................................................................. 7
Backup & Restore de la carte SD ............................................................................................................................................ 7
Installer un Serveur WEB : Lighttpd / PHP / MySQL / PHPMyAdmin ..................................................................................... 8
Piloter les modules DI.O Chacon (vendus chez Leroy Merlin) avec le Terminal..................................................................... 9
Piloter les modules DI.O Chacon (vendus chez Leroy Merlin) en PHP ................................................................................. 12
Gestion des Tâches avec CRON ............................................................................................................................................ 13
CRON et PHP en ligne de commande ................................................................................................................................... 13
Overclocking and More… ...................................................................................................................................................... 15
Wi-Pi, le WiFi pour Raspberry : Installation .......................................................................................................................... 15
Mise à Jour de Raspbian ....................................................................................................................................................... 16
Installer LibreOffice (in french) ............................................................................................................................................. 16
Installer VLC .......................................................................................................................................................................... 16
Installer Iceweasel (Firefox Fork) .......................................................................................................................................... 16
Modèles RPi :
Pi1 Type B – 512 MB – SD 16 Go
Pi2 Type B – 1 GB – MicroSD 16 Go
Raspbian : version 4.0.7+
Telldus-core : version 2.1.2 (sur Pi1)
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
1
MON RASPBERRY
Un modèle Type B avec 512MB, une carte Razberry, une carte SD de 16GB et un boitier transparent. La classe, hein ?
Où acheter un RPi ? Ici : http://www.raspberrypi.org/ ou bien http://www.kubii.fr/
TELECHARGER L’OS DU RPI
Aller sur la page http://www.raspberrypi.org/downloads et télécharger la dernière Raspbian.
Ou plus directement : http://downloads.raspberrypi.org/raspbian_latest
Au moment d’écrire ces lignes, c’était la version : 2015-05-05-raspbian-wheezy.zip
INSTALLER L’OS UNE LA CARTE SD
Choisir une carte SD de classe 10 la plus rapide ! Sur http://www.amazon.fr, rechercher « carte sd classe 10 ».
Pour cela, à l’aide d’un ordinateur sous Windoze, installer et utiliser le logiciel Win32 disk imager :
http://sourceforge.net/projects/win32diskimager/
Mettre la carte SD dans un lecteur de cartes et ouvrir Win32 disk imager :
Appuyer sur l'icône « Select a disk image », et sélectionner l'image à restaurer. Dans « Device », choisir la carte SD, et
appuyer sur « Write », et attendre... Une fois l’opération terminée, mettre la carte SD dans le RPi et le brancher.
1ERE CONFIGURATION
La 1ère fois, il faut nécessairement brancher un écran et un clavier. Ne pas oublier de se connecter au réseau.
A petit ordinateur, petit clavier wifi 2.4G avec touchpad intégré (ici un Rii Mini… en vente sur http://www.amazon.fr) :
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
2
Pour accéder au menu de configuration : sudo raspi-config
Mais au 1er démarrage, on arrive directement sur une page de configuration du RPi :
Choisir « 1 Expand Filesystem » et appuyer sur [ENTER]. Une fois l’opération terminée, appuyer sur <OK>.
Le mot de passe par défaut de l’utilisateur « pi » du RPi est « raspberry », mais on peut le changer en choisissant le
menu « 2 Change User Password », et saisir le nouveau mot de passe 2 fois.
Ensuite on passe le RPi en français. Choisir « 4 Internationalisation Options » et appuyer sur [ENTER] :
Pour la langue du système en français, « I1 Change Locale » et [ENTER] :
Locales to be generated :
Décocher la case :
[ ] en_GB.UTF-8 UTF-8
Cocher les cases :
[*] fr_FR ISO-8859-1
[*] fr_FR.UTF-8 UTF-8
Sélectionner <OK> puis [ENTER]. A noter que l’action de cocher/décocher se fait avec la touche [SPACE].
Default locale for the system environment :
Sélectionner fr_FR.UTF-8 puis [ENTER].
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
3
Pour le fuseau horaire, retour dans « 4 Internationalisation Options », puis « I2 Change Timezone » et [ENTER] :
Geographic area : Europe
Time zone : Paris
Pour le clavier français, retour dans « 4 Internationalisation Options », puis « I3 Change Keyboard Layout » et
[ENTER] :
Keyboard model : Generic 105-key (intl) PC
Keyboard layout : Other
Country of origin for the keyboard : French
Keyboard layout : French
Key to function as AltGr : The default for the keyboard layout
Compose key : No compose key
Use Control+Alt+Backspace to terminate the X server? : No
Pour overclocker son RPi, choisir « 7 Overclock », puis <Ok>, puis choisir la vitesse de son RPi, « Modest » étant un bon
compromis pour commencer (voir § « Overclocking and More » en fin de document) :
Et enfin, activer SSH pour la prise en main à distance : « 8 Advanced Options » et « A4 SSH »
Puis activer avec <Enable> et <Ok> pour terminer :
Une fois toutes ces opérations terminées, redémarrer le RPi : de retour sur le menu, sélectionner <Finish> avec [TAB]
et on redémarre le RPi <Yes>
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
4
INSTALLER ET UTILISER LE PROTOCOLE SSH POUR PRENDRE LA MAIN A DISTANCE SANS ECRAN
Démarrer SSH: sudo /etc/init.d/ssh start
Pour connaitre l’adresse IP du RPi : ifconfig
Sous Windoze ou Linux, utiliser Putty avec @IP du RPi, port 22, login, & pass : http://www.putty.org/
Sous Android, utiliser JuiceSSH (disponible sur le Play Store) avec @IP du RPi, port 22, login, & pass ([touch] au centre
écran pour les fonctions spéciales).
Affichage avec Putty…
…et JuiceSSH.
INSTALLER UN SERVEUR VNC
Installer VNC Server : sudo apt-get install tightvncserver
Lancer VNC Server : vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565:
La résolution d’écran 1280x800 peut bien évidemment être changée.
A l’installation, un mot de passe est demandé, par exemple : raspberry (ou saisir son mot de passe).
Pour démarrer VNC Server au boot du RPi : sudo nano /etc/init.d/tightvncserver
Copier/coller le script suivant :
# First configure the user you want to run this under - this will generally be pi, unless
you've created your own users
export USER='pi'
eval cd ~$USER
# Check the state of the command - this'll either be start or stop
case "$1" in
start)
# if it's start, then start vncserver using the details below
su $USER -c '/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565'
echo "Starting vncserver for $USER "
;;
stop)
# if it's stop, then just kill the process
pkill Xtightvnc
echo "vncserver stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start|stop}"
exit 1
;;
esac
exit 0
# thanks Phil
On quitte avec [Ctrl]+[X], puis [O] (pour oui) pour enregistrer, puis [ENTER] pour valider le chemin.
Ensuite : sudo chmod 755 /etc/init.d/tightvncserver
Et enfin : sudo update-rc.d tightvncserver defaults
Rebooter le RPi : sudo reboot
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
5
Pour changer le mot de passe de VNC Server : vncpasswd
Pour démarrer VNC Server : sudo /etc/init.d/tightvncserver start
Pour arrêter VNC Server : sudo /etc/init.d/tightvncserver stop
QUELQUES BASES DE BASE
Login : pi – Pass : raspberry
Pour arrêter proprement, il faut passer la commande : sudo halt ou sudo shutdown –s now
Pour effectuer un reboot, il faut passer la commande : sudo reboot ou sudo shutdown –r now
Pour démarrer l'interface graphique : startx
Pour voir l’adresse IP du RPi : ifconfig
Changer le mot de passe de pi : sudo passwd pi
Changer le mot de passe root : sudo passwd root
Mise à jour Raspbian : sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
INSTALLER LE GESTIONNAIRE DES PAQUETS SYNAPTIC
Dans un terminal : sudo apt-get install synaptic
INSTALLER CHROMIUM (IN FRENCH)
Dans un terminal : sudo apt-get install chromium
Puis : sudo apt-get install chromium-browser-l10n
MISE A JOUR DU FIRMWARE DU RASPBERRY
Mettre à jour Raspbian avant la mise à jour du firmware :
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
Pour connaitre la version du firmware, veuillez taper : uname -a (le n° de version est après le « # »).
Installation de rpi-update :
sudo apt-get install ca-certificates git-core
sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update
sudo chmod +x /usr/bin/rpi-update
Mise à jour du firmware : sudo rpi-update, et patienter le temps de la mise à jour du firmware…
Redémarrage du Raspberry : sudo reboot
Vérification de l'installation du nouveau firmware : uname -a
PRENDRE LA MAIN A DISTANCE AVEC ULTRAVNC A PARTIR D’UN POSTE CLIENT
Le site où télécharger le logiciel (gratuit) : http://www.uvnc.com/
Renseigner l’adresse IP et le port de VNC Server
du RPi comme ceci: @IP:1
Dans « Quick options », laisser le mode AUTO
sélectionné, cocher « Save connexion settings
as default », puis « Connect ».
Un mot de passe sera demandé : raspberry (ou celui déclaré lors de l’installation).
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
6
PRENDRE LA MAIN A DISTANCE AVEC TIGHTVNC A PARTIR D’UN POSTE CLIENT
Le site où télécharger le logiciel (gratuit) : http://www.tightvnc.com/
Renseigner l’adresse IP et le port de Remote
Host du RPi comme ceci: @IP:1
Aucun paramétrage particulier n’est nécessaire.
Appuyer ensuite sur « Connect ».
Un mot de passe sera demandé : raspberry (ou celui déclaré lors de l’installation).
TRANSFERER DES FICHIERS AVEC WINSCP A PARTIR D’UN POSTE CLIENT
Le site où télécharger le logiciel (gratuit) : http://winscp.net
Utiliser le protocole de fichier SFTP, renseigner le nom de l’hôte (@IP) et le numéro de port, mais aussi le nom
d’utilisateur et le mot de passe. Une clef à valider sera demandée à la première connexion. Ensuite, Sauver la
connexion et se Connecter.
BACKUP & RESTORE DE LA CARTE SD
Sauvegarder une carte SD sous Windoze : utiliser « Win32 disk imager »
http://sourceforge.net/projects/win32diskimager/
Dans « Image File », indiquer le chemin de l'image sauvée, ex. : F:\raspberry\rpi_131103.img
Dans « Device », choisir le lecteur qui correspond à la carte SD. Appuyer sur « Read », et attendre...
Restaurer une carte SD sous Windoze : utiliser « Win32 disk imager »
http://sourceforge.net/projects/win32diskimager/
Appuyer sur l'icône « Select a disk image » à droite de « Image File », et sélectionner l'image à restaurer.
Dans « Device », choisir la carte SD. Appuyer sur « Write », et attendre...
Sauvegarder une carte SD sous Linux : ouvrir un terminal et lister les disques avec sudo fdisk -l
Repérer celui qui correspond à la carte SD, ex. /dev/sdb
Puis : sudo dd bs=4M if=/dev/sdb | gzip > /home/my_name/image_my_date.gz
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
7
Restaurer une carte SD sous Linux : ouvrir un terminal et lister les disques : sudo fdisk -l
Repérer celui qui correspond à la carte SD, ex. /dev/sdb
Puis : sudo gzip -dc /home/your_username/image.gz | dd bs=4M of=/dev/sdb
INSTALLER UN SERVEUR WEB : LIGHTTPD / PHP / MYSQL / PHPMYADMIN
Installation de Lighttpd : sudo apt-get install lighttpd
Installation de PHP : sudo apt-get install php5-common php5-cgi php5 php5-gd php5-cli
Activation de PHP : sudo lighty-enable-mod fastcgi-php
Activation de CGI : sudo lighty-enable-mod cgi
Modification de : sudo nano /etc/lighttpd/conf-enabled/10-cgi.conf
Modifier cgi.assign = ("" => "") par : cgi.assign = (".cgi" => "/usr/bin/perl")
On relance Lighttpd : sudo service lighttpd force-reload (ou : sudo /etc/init.d/lighttpd force-reload)
Changement de propriétaire : sudo chown www-data:www-data /var/www
Donnez le droit d’écriture au groupe : sudo chmod 775 /var/www
Et on s'ajoute : sudo usermod -a -G www-data pi
Installation de MySQL : sudo apt-get install mysql-client mysql-server php5-mysql
Lors de l'installation de MySQL, saisir un mot de passe
Installer PHPMyAdmin : sudo apt-get install phpmyadmin
Créer le répertoire /etc/php5/includes : sudo mkdir /etc/php5/includes
Quelques directives à changer dans : sudo nano /etc/php5/cgi/php.ini
memory_limit = 256M
post_max_size = 256M
upload_max_filesize = 256M
include_path = ".:/etc/php5/includes"
Et on recharge Lighttpd : sudo /etc/init.d/lighttpd force-reload
Toutes les applications Web seront stockées dans le dossier : /var/www
Pour lancer une application Web : http://localhost/monappli/ ou http//@RPi/monappli/ (via un client)
Et pour tester que PHP fonctionne bien :
sudo sh -c 'echo "<?PHP phpinfo(); ?>" > /var/www/test.php'
sudo chown -R www-data:www-data /var/www/test.php
dans un navigateur, tester ceci : http://localhost/test.php ou http://@RPi/test.php (via un client)
Pour lancer PHPMyAdmin : http://localhost/phpmyadmin ou http://@RPi/phpmyadmin (voir exemple ci-dessous)
Si une erreur 403 apparaît, ouvrir /etc/php5/cgi/php.ini et ajouter en fin de fichier : cgi.fix_pathinfo = 1
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
8
PILOTER LES MODULES DI.O CHACON (VENDUS CHEZ LEROY MERLIN) AVEC LE TERMINAL
Pour piloter les modules DI.O Chacon (http://www.chacon.be/), on utilise un émetteur radio à 433MHz TellStick :
Où peut-on acheter cet émetteur TellStick ? Réponse :
http://www.domadoo.fr/produit,1390,1,TELLDUS--Emetteur-Radio-433Mhz-TellStick-avec-antenne-externe.htm
http://www.planete-domotique.com/emetteur-radio-433mhz-tellstick-usb-avec-antenne-externe.html
Installer Telldus : http://elinux.org/R-Pi_Tellstick_core (source)
La dernière version de telldus-core : http://download.telldus.se/TellStick/Software/telldus-core/
1 - Télécharger Telldus :
wget http://download.telldus.se/TellStick/Software/telldus-core/telldus-core-2.1.2.tar.gz
2 - Installer quelques prérequis :
sudo apt-get -y install libftdi1 libftdi-dev libconfuse0 libconfuse-dev cmake
3 - Décompresser l'archive :
cd /usr/src
sudo tar xzf /home/pi/telldus-core-2.1.2.tar.gz
4 - Compiler Telldus
cd telldus-core-2.1.2
sudo cmake .
sudo make
5 - Installation de Telldus
sudo make install
sudo ldconfig
6 - Installation du service
cd /etc/init.d
sudo cp skeleton telldusd
sudo nano /etc/init.d/telldusd
remplacer :
# Provides:
skeleton
# Provides:
telldusd
par :
remplacer :
# Short-Description: Example initscript
# Description:
This file should be used to construct scripts to be
#
placed in /etc/init.d
par :
# Short-Description: Tellstick service daemon
# Description:
Tellstick service daemon controlling remote switches.
#
Remplacer :
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Description of the service"
NAME=daemonexecutablename
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
9
par :
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin
DESC="Tellsick service daemon"
NAME=telldusd
DAEMON=/usr/local/sbin/$NAME
DAEMON_ARGS=""
[Ctrl]+[X], puis O (pour oui), puis [ENTER] pour valider le chemin
sudo
sudo
sudo
sudo
sudo
chmod +x telldusd
service telldusd start
service telldusd status
chmod 755 /etc/init.d/telldusd
update-rc.d telldusd defaults
Avant de configurer l’émetteur TellStick, installer le volet roulant et de brancher le module Chacon Réf. 54754 :
Montage sans interrupteur
Montage avec interrupteur
Pour configurer les modules : http://developer.telldus.com/wiki/TellStick_conf (source)
sudo nano /etc/tellstick.conf
Puis déclarer les modules, exemple de base :
user = "nobody"
group = "plugdev"
ignoreControllerConfirmation = "false"
device {
id = 1
name = "Example device"
protocol = "arctech"
model = "codeswitch"
parameters {
house = "A"
unit = "1"
}
}
Exemple de script pour mon volet roulant avec module Chacon Réf. 54754 :
user = "nobody"
group = "plugdev"
ignoreControllerConfirmation = "false"
device {
id = 1
name = "baie_vitree"
protocol = "arctech"
model = "selflearning-switch"
parameters {
house = "1"
unit = "1"
}
}
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
10
Pour finir : sudo service telldusd restart
Pour apprendre le module : tdtool -e 1 [ENTER], et appuyer sur le bouton d'apprentissage du module.
Quelques fonctions intéressantes :
• Liste et état des modules :
• Pour apprendre un module :
• Pour démarrer un module :
• Pour arrêter un module :
• Un peu d'aide :
tdtool -l
tdtool -e 1 (avec 1 l'id du module)
tdtool --on 1 (avec 1 l'id du module)
tdtool --off 1 (avec 1 l'id du module)
tdtool –h
Voici le script complet de mon installation avec 2 modules Chacon pour volet roulant (Réf. 54754), et 3 modules Chacon
pour prise de courant (Réf. 54798) :
user = "nobody"
group = "plugdev"
deviceNode = "/dev/tellstick"
ignoreControllerConfirmation = "false"
device {
id = 10
name = "bureau_lampe"
controller = 1
protocol = "arctech"
model = "selflearning-switch"
parameters {
# devices = ""
# house = "1"
unit = "10"
# code = ""
# system = ""
# units = ""
# fade = ""
}
}
device {
id = 11
name = "sejour_neon"
controller = 1
protocol = "arctech"
model = "selflearning-switch"
parameters {
# devices = ""
# house = "1"
unit = "11"
# code = ""
# system = ""
# units = ""
# fade = ""
}
}
device {
id = 12
name = "sejour_lampe"
controller = 1
protocol = "arctech"
model = "selflearning-switch"
parameters {
# devices = ""
# house = "1"
unit = "12"
# code = ""
# system = ""
# units = ""
# fade = ""
}
}
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
11
device {
id = 13
name = "volet_fenetre"
controller = 1
protocol = "arctech"
model = "selflearning-switch"
parameters {
# devices = ""
# house = "1"
unit = "13"
# code = ""
# system = ""
# units = ""
# fade = ""
}
}
device {
id = 14
name = "volet_baie"
controller = 1
protocol = "arctech"
model = "selflearning-switch"
parameters {
# devices = ""
# house = "1"
unit = "14"
# code = ""
# system = ""
# units = ""
# fade = ""
}
}
controller {
id = 1
# name = ""
type = 1
serial = "A1016B7R"
}
A noter dans cette configuration que le numéro de maison « house » n’est pas utilisé (mis en commentaire avec #).
Note importante : tellstick.conf sert de backup pour les modules appris.
PILOTER LES MODULES DI.O CHACON (VENDUS CHEZ LEROY MERLIN) EN PHP
Il faut au préalable installer et configurer le module radio Tellstick (voir § précédent), que les modules DI.O Chacon
aient été reconnus par apprentissage, et que le serveur Web soit installé.
Ensuite, aller dans le dossier /var/www/, et par exemple, créer les programmes suivants :
/var/www/ouvrir_baie.php :
<?php
echo "Ouverture baie vitr&eacute;e : ";
exec('/usr/local/bin/tdtool --on 1', $out);
print_r($out);
?>
/var/www/fermer_baie.php :
<?php
echo "Fermeture baie vitr&eacute;e : ";
exec('/usr/local/bin/tdtool --off 1', $out);
print_r($out);
?>
Dans un navigateur, on appelle maintenant l’ouverture et la fermeture comme ceci :
• Ouverture : http://localhost/ouvrir_baie.php ou http://@RPi/ouvrir_baie.php
• Fermeture : http://localhost/fermer_baie.php ou http://@RPi/fermer_baie.php
A noter que le retour de la commande est écrit dans la variable $out.
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
12
GESTION DES TACHES AVEC CRON
La création des tâches se fait avec grâce à la commande CRONTAB. Les options :
• Editer / modifier des tâches : crontab -e
• Afficher la liste des tâches :
crontab -l
crontab -r
• Effacer la liste des tâches :
• Création d’une liste des tâches à partir d’un fichier : crontab nom_de_fichier
Pour redémarrer le service CRON :
sudo service cron restart
Pour éditer ou modifier une table, on utilise : crontab -e
• La variable d’environnement à définir est PATH :
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
•
Chaque tâche doit ensuite être définie comme ceci : mm hh jj MM JJ action, avec :
o mm : les minutes,
o hh : les heures,
o jj : le jour du mois (1 à 31),
o MM : le nom du mois en anglais sur 3 caractères (ex. jan) ou le numéro du mois (1 à 12),
o JJ : le jour de la semaine en anglais sur 3 caractères (ex. mon) ou le numéro du jour (0 à 7, 0 et 7 étant
les dimanches).
Pour chaque paramètre, des plages de valeurs peuvent être définies, exemple : 1-5 pour 1 à 5.
Exemple pour mes volets roulants :
# chemin tdtool : /usr/local/bin
# chemin php-cgi : /usr/bin
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# baie=13 - volet=14
0 9 * * * tdtool --on 13 --on 14 > /dev/null 2>&1
0 17 * * * tdtool --off 13 --off 14 > /dev/null 2>&1
Ouverture des volets tous les jours à 09h00, et fermeture tous les jours à 17h00. A noter que "> /dev/null 2>&1"
annule l’envoi automatique d’emails à chaque exécution de commande.
CRON ET PHP EN LIGNE DE COMMANDE
Si PHP client n’est pas installé : sudo apt-get install php5-cli
Pour les exemples, les scripts sont écrits dans : /home/pi donc : cd /home/pi (ou le répertoire utilisateur)
Exemple pour passer et récupérer des arguments, créer le fichier test.php :
#!/usr/bin/php
<?php
print_r($argv);
?>
En ligne de commande : pi@raspberrypi ~ $ php -f /home/pi/test.php on , le -f servant à utiliser un fichier avec PHP
Résultat :
Array
(
[0] => /home/pi/test.php
[1] => on
)
Pour récupérer l’argument [1], il suffit d’utiliser : $argv[1] dans PHP.
Exemple testé sur ma lampe de bureau (identifiée 10) pour l’allumer et l’éteindre à chaque minute :
• Le but est régénérer le CRON automatiquement à partir de PHP,
• Cela permet de passer des paramètres variables (ou arguments), et actualiser le CRON.
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
13
Dans le script PHP, la séquence est la suivante :
• On lit les arguments : état de la lampe de bureau
• On traite les arguments : allumer la lampe si elle est éteinte, et vis-versa
• Paramétrer le script pour lancer le CRON toutes les minutes : "* * * * *"
• Ecrire le script du CRON dans un fichier temporaire : /home/pi/lampe.txt
• Appliquer ce script dans CRON
Le script PHP dans le fichier lampe.php :
#!/usr/bin/php
<?php
/* traitement du ON/OFF */
if (isset($argv[1]))
$onoff = ($argv[1] == "on") ? "off" : "on";
else
$onoff = "off";
/* ouverture du fichier */
$fichier = "/home/pi/lampe.txt";
$ecri = fopen ($fichier, "w");
/* préparation du CRON */
fputs ($ecri, "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin\n");
fputs ($ecri, "* * * * * tdtool --".$onoff." 10 > /dev/null 2>&1\n");
fputs ($ecri, "* * * * * php /home/pi/lampe.php ".$onoff." > /dev/null 2>&1\n");
/* clôture du fichier */
fclose ($ecri);
/* écriture du crontab */
exec("crontab /home/pi/lampe.txt");
?>
Exécuter le script PHP au moins une fois : pi@raspberrypi ~ $ php -f /home/pi/lampe.php
Autre exemple basé sur le même principe : ouvrir les volets en fonction de l’heure de lever et de coucher du soleil.
• Récupérer les coordonnées de chez soi (latitude et longitude) sur Maps : https://www.google.fr/maps
• Le zénith est une valeur par défaut à 90.5,
• Le décalage GMT est de +2h (erreur dans les fonctions PHP, décalage normalement à +1h),
• Utilisation des fonctions PHP : date_sunrise() et date_sunset(),
• Actualiser le script CRON tous les jours à minuit.
Le script PHP dans le fichier tache.php :
#!/usr/bin/php
<?php
/* ouverture du fichier */
$fichier = "/home/pi/tache.txt";
$ecri = fopen ($fichier, "w");
/* calcul de l'heure de lever et coucher du soleil chez moi */
$latitude = 50.355241;
$longitude = 3.069048;
$zenith = 90.5;
$gmt = 1 + date("I", mktime(12, 0, 0, date("m"), date("d"), date("Y"))); // GMT + heure d'été
$lever = explode(":", date_sunrise(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $gmt));
$coucher = explode(":", date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith, $gmt));
/* préparation du CRON */
fputs ($ecri, "# chemin tdtool : /usr/local/bin\n");
fputs ($ecri, "# chemin php-cgi : /usr/bin\n");
fputs ($ecri, "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin\n");
fputs ($ecri, "# baie=13 - volet=14\n");
fputs ($ecri, $lever[1]." ".$lever[0]." * * * tdtool --on 13 --on 14 > /dev/null 2>&1\n");
fputs ($ecri, $coucher[1]." ".$coucher[0]." * * * tdtool --off 13 --off 14 > /dev/null 2>&1\n");
fputs ($ecri, "0 0 * * * php -f /home/pi/tache.php > /dev/null 2>&1\n");
/* clôture du fichier */
fclose ($ecri);
/* écriture du crontab */
exec("crontab /home/pi/tache.txt");
?>
En ligne de commande, lancer une fois : pi@raspberrypi ~ $ php -f /home/pi/tache.php
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
14
OVERCLOCKING AND MORE…
Si le RPi semble trop lent, on peut l’overclocker : sudo raspi-config, puis « 7 Overclock », puis « OK ».
On choisit ensuite le réglage qui convient (Modest pour commencer), puis « OK ». Un reboot sera demandé.
Attention, overclocker son RPi peut le griller ! Donc tranquille et détendu ! Un dissipateur thermique peut se trouver
ici : http://www.amazon.fr/gp/product/B00EVJF4NY/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A2KJIH09GLLC6P
Pour connaitre la température de son RPi : vcgencmd measure_temp
Le but est de ne pas dépasser 80°C (limite maxi), mais 60°C est une bonne moyenne.
La fréquence courante du processeur (KHz) : cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Ou bien (Hz) : vcgencmd measure_clock arm
La fréquence maxi du processeur (KHz) : cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
WI-PI, LE WIFI POUR RASPBERRY : INSTALLATION
Où trouver une clef Wi-Pi ? Facile : http://www.kubii.fr/
Arrêter le RPi : sudo halt, puis brancher la clef Wi-Pi sur l’un des ports USB.
Redémarrer le RPi (débrancher l’alimentation, attendre 5 secondes et rebrancher).
Editer le fichier : sudo nano /etc/network/interfaces
Et s’arranger pour obtenir l’une des 2 configurations qui suivent (selon la protection wifi).
Dans le cas d’une connexion protégée par clef WEP :
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wireless-essid mon_ssid
wireless-key mon_mot_de_passe
Ou alors, dans le cas d’une connexion protégée par clef WPA :
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid mon_ssid
wpa-psk mon_mot_de_passe
[Ctrl]+[X], puis O (pour oui), puis [ENTER] pour valider le chemin
Redémarrer le service avec : sudo /etc/init.d/networking restart ou rebooter le RPi : sudo reboot
Pour vérifier l’adresse IP : ifconfig
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
15
MISE A JOUR DE RASPBIAN
Lors de l’annonce d’une mise à jour Raspbian, lancer ces 3 lignes de commande :
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install raspberrypi-ui-mods
INSTALLER LIBREOFFICE (IN FRENCH)
Dans un terminal : sudo apt-get install libreoffice
Puis : sudo apt-get install libreoffice-l10n-fr
INSTALLER VLC
Dans un terminal : sudo apt-get install vlc
Sur Freebox, le lien réseau avec toutes les chaines TV : http://mafreebox.freebox.fr/freeboxtv/playlist.m3u
INSTALLER ICEWEASEL (FIREFOX FORK)
Dans un terminal : sudo apt-get install iceweasel
Puis : sudo apt-get install iceweasel-l10n-fr
Si Iceweasel ne veut pas démarrer et affiche « Iceweasel is already running, but is not responding », la procedure est :
Dans un terminal, taper : ps -A|grep iceweasel, et relever le numéro de la tâche (ex. 9876)
Puis tuer la tâche avec : sudo kill 9876
Mon Raspberry Pi (RPi) – Mémo – v1.151107 – PhilPam © 2015
16