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ée : "; exec('/usr/local/bin/tdtool --on 1', $out); print_r($out); ?> /var/www/fermer_baie.php : <?php echo "Fermeture baie vitré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