Les Groupes ARM : Raspberry un datalogger de A..à..Z

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche


→ Si vous avez besoin d'aide, n'hésitez pas à vous connecter sur IRC >>> Salon de discussion #arm <<< <-

Environnement logiciel (Distributions)

Le Raspberry Pi possède un Système d’Exploitation (une distribution linux spécialement conçue pour le Raspberry PI)

Ce Système d’Exploitation situé sur la SD Card devra disposer d'au moins 4Go d'espace mémoire pour pouvoir fonctionner convenablement, mais une carte de 8 / 16 ou 32 Go sera sans doute plus pérenne; elle sera de préférence de type "SDHC class 10" pour améliorer les vitesses d'échanges lecture/écriture.

La distribution RASPIAN (basée sur une distribution DEBIAN est très agréable et simple de prise en main - Le site officiel www.raspian.org

Distribution Raspian personnalisée Du réseau

les différentes images sont disponibles ici

Comment faire avec le fichier 2014-01-07-wheezy-raspbian téléchargé ?

Extraire les fichiers de l'archive zip dans un dossier TEMP sur votre disque dur.

Préparation de la carte SD

Formater la carte SD en fat32 (une seule partition)

depuis un environnement windows

Il arrive que le formatage Windows de SD Card ne donne pas des résultats très satisfaisants, ce qui explique sans doute l’existence d'un autre petit utilitaire appelé SDFormatter (à placer dans le même répertoire que vos images Linux)

Avec un utilitaire tel que Win32DiskImager, transférez l'image 2014-01-07-wheezy-raspbian.img sur la SD Card

depuis un environnement Linux/Mac OSx

Dans un terminal, avec la ligne de commande : dd - convert and copy a file

 sudo dd if=./2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0 bs=4K
 # dd (utilitaire de copie) if=(input file= chemin de votre image) of=(output file= chemin physique du périphérique) bs=(copie par bloc de ...)

devrait être suffisant

Quelques explications sur cette dernière commande:

elle doit être lancée avec les droits root (d'où l'utilisation de sudo)

if donne l'emplacement de l'image de Raspbian "Wheezy" ( ./ pour le dossier courant )

of donne le point de montage de votre device (égale à votre point de montage /dev/mmcblk0 dans mon cas. pour le chercher, faire df -h)

   l’exécution va prendre un peu de temps... (N'hésitez pas à recommencer si nécessaire !)

Première mise en route et configuration (clavier + écran branchés obligatoire)

Lors de votre premier lancement, le menu se lance automatiquement:

Cette configuration de base pourra ensuite être modifiée en lançant le menu de configuration par la commande

 sudo raspi-config

Mais revenons à ce menu lancé automatiquement :

Quelque soit la carte SD que nous utilisons, nous souhaitons utiliser la totalité de l’espace disponible. Nous sélectionnons donc expand_rootfs (avec les flèches haut - bas) puis entrée.

Changez aussi le mot de passe de votre utilisateur pi

Nous allons lui spécifier que nous préférons la langue de Molière à celle de Shakespeare : change_locale (soyez patients)

décochez (avec la touche espace)

  • [ ] en_GB.UTF-8 UTF-8

cochez (avec la touche espace)

  • [*] fr_FR ISO-8859-1
  • [*] fr_FR.UTF-8 UTF-8

Default_locale sera alors choisi pour fr_FR.UTF-8 (avec les flèches haut - bas) puis entrée.

après avoir Validé locale, la génération des fichiers va se faire.... prévoyez le café (cela peut prendre du temps suivant le choix du type de carte SD que vous aurez choisi...)

Sans redémarrer le RaspberryPi pour le moment, nous continuons la configuration jusqu'au ssh

Le protocole ssh nous permet d’accéder au mode console(terminal) du Raspberry Pi sur site distant, c'est à dire via Internet, donc nous sélectionnons "<Enable>"

Si vous souhaitez, vous pouvez également faire une mise à jour de l'utilitaire de configuration du Raspberry Pi : "update"

Lorsque tout est terminé, nous terminons la procédure par "<Finish>" du menu principal (touche tabulation) puis touche espace pour valider. Ne rebootez pas le raspberry si il vous le demande car vous devez récupérer son adresse IP (du type par exemple 192.168.0.1) en utilisant la commande "ifconfig":

 ifconfig

l'IP se trouve dans le paragraphe "eth0" et s'appelle "inet addr" ; si vous êtes connecté sur un réseau géré par les informaticiens, vous aurez sans doute besoin de déclarer votre carte en tant que "machine informatique" en précisant son adresse MAC ("HWaddr") afin qu'elle soit répertoriée et reconnue par le réseau ... il est probable qu'ils lui attribueront une IP fixe, ce qui est de toute façon souhaitable (s'ils ne le font pas demandez le).

Finalisons le tout par un redémarrage de notre RaspberryPi

 sudo reboot

connexion distante au RaspberryPi

Maintenant que le mode ssh est activé (suivant le descriptif du menu ci-dessus) Nous pouvons accéder au Raspberry PI suivant notre environnement

Sous Linux en mode console

 ssh pi@xxx.xxx.xxx.xxx -Y -C

Sous Windows (option Y pour faire suivre les écrans des applications graphiques en local, C pour compresser les échanges et alléger le trafic réseau) Nous vous recommanderons le très bon utilitaire (dans sa version gratuite : free download) MobaXterm

MOBAXTERM

Par le logiciel dans sa version gratuite : MobaXterm -> nouvelle session -> ssh specifier l'ip xxx.xxx.xxx.xxx et le username pi (xxx.xxx.xxx.xxx = ip_du_rasberry)


Ensuite revenir sur Session et se connecter normalement en cliquant sur "Open".(les applications graphiques distantes s'ouvriront en mode graphique sur le pc local.

Nous vous recommandons vivement ce mode de fonctionnement qui vous permet de bénéficier de tout le confort de votre poste de travail et en particulier de réaliser des copier coller des commandes trouvées dans les tutos... (prenez quand même le temps de lire ces commandes et d'essayer de les comprendre si vous souhaitez devenir autonomes...)

Première connexion ssh et sécurité de la distribution

Après s'être logué (rappelez-vous des identifiants par défauts –> login : pi , mot de passe raspberry) nous allons pouvoir commencer les choses sérieuses !!

Une bonne sécurité passe par un maintien quotidien des mises à jour

 sudo apt-get update           # pour charger la liste des paquets connus et leurs versions actuelles
 sudo apt-get upgrade          # pour mettre à jour les paquets installés a la dernière version

 sudo apt-get dist-upgrade     # pour assurer la mise à jour de la distribution (de temps en temps)

Réglage du TimeZone (fuseau Horaire)

Si vous n'avez pas le Raspberry à l'heure, pour ce réglage vous devez définir :

date
# retourne : mardi 2 avril 2013, 12:37:04 (UTC+0000)
TZ=Europe/Paris;export TZ
date
# retourne : mardi 2 avril 2013, 14:37:25 (UTC+0200)

Réglage et configuration pour l'administrateur

Le Raspberry communique toutes les informations importantes à son unique propriétaire "root" par envoi d'emails. Nous allons définir votre email grace à un alias de postfix (gestionnaire mail).

 sudo apt-get install postfix

Nous allons répondre aux questions qui vous sont expliquées en ligne :

La première fenêtre explique les différentes configurations que peut prendre postfix, vous appuyez sur la flèche droite de votre clavier pour sélectionner "<ok>" (ou tabulation) puis validez par la touche entrée.

Le Raspberry envoie directement ses emails, nous sélectionons donc internet et validons par "<ok>"

L'adresse email d'envoi que le Raspberry nous présente ici doit être son nom d'host (de machine) si vous ne l'avez pas encore défini, donnez-lui un nom sous la forme "NomRaspberry.fr". Vous recevrez donc des mails de root@NomRaspberry.fr

A la fin de l'installation, nous éditons le fichier nommé /etc/aliases

sudo nano /etc/aliases

Ce fichier contient actuellement

postmaster:    root
# Ce qui fait un alias pour que tous les mail envoyés de postmaster ou à postmaster seront renvoyés a root. Nous lui rajoutons 
webmaster:   postmaster
www-data:    postmaster
pi:          postmaster

# autant d'alias que de service que vous installez
# et pour finir votre alias personnel
root:        monemail@domaine.fr

où vous prendrez soin de changer votre email au lieu de "monemail@domaine.fr"

pour enregistrer et quitter nano touche Control + touche X (CTRL + X) Confirmez l'enregistrement par la touche Entrée Confirmer l'écrasement du nom par la touche Entrée

Le Nom de machine ou Hostname

 sudo nano /etc/hostname

C'est "NomRaspberry".fr que vous avez défini plus haut dans postfix sans le fr pour ce fichier. Ce qui nous donne

NomRaspberry

Le Nom de domaine

Votre raspberry nécessite une petite modification qui est importante lors des redémarrages du serveur web (apache2)

 sudo nano /etc/hosts

par défaut ce fichier vous présente :

127.0.0.1       localhost

127.0.1.1       NomRaspberry

Il vous faut le modifier comme ci-dessous pour qu'il indique le nom de domaine.

127.0.0.1       localhost.localdomain localhost

127.0.1.1       NomRaspberry.fr NomRaspberry

Sauvegardez le fichier CTRL+X, ENTREE pour valider puis ENTREE pour confirmer l'écrasement du fichier

Installation du serveur web pour communiquer depuis l’extérieur

L'idée est de créer une Interface-Homme-Machine (IHM) au travers d'une page html. Les données enregistrées du ou des capteur(s) seront enregistrées dans une base de données et ainsi disponibles à toute requête/demande.

Le serveur web

Pour installer d’une traite : apache (un serveur HTTP permettant de publier du contenu HTML sur le web), PHP (langage serveur permettant le traitement dynamique d’informations) et MySQL (une base de données), nous donnons une procédure.

Comme chaque installation de paquet, nous procédons avant tout à une mise a jour :

 sudo apt-get update
 sudo apt-get upgrade

Bien que certains soient tentés d’installer directement le paquet lamp-server qui englobe tous ces paquets, le Raspberry ne l’entendrait pas de cette oreille, il vous faut donc installer les paquets séparément (nominativement mais en une seule ligne)

 sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Après quelques petites questions d’usage (mots de passes à se rappeler), votre serveur web est en place, pour le tester rien de plus simple, tapez la commande :

 ifconfig

et repérez l’adresse IP réseau de votre Raspberry pi (très certainement une adresse commençant par 192.168.*.*) qui se trouve dans le paragraphe "eth0" et s'appelle "inet addr" ; rappel : si vous êtes connecté sur un réseau géré par les informaticiens, vous aurez sans doute besoin de déclarer votre carte en tant que "machine informatique" en précisant son adresse MAC ("HWaddr") afin qu'elle soit répertoriée et reconnue sur ce réseau ... il est probable qu'ils lui attribueront une IP fixe, ce qui est de toute façon souhaitable (s'ils ne le font pas demandez-le).

Tapez cette adresse depuis un autre ordinateur banché sur le même réseaux local et TADDAA!! It works !

Notez qu’à partir de maintenant, toutes les pages sont situées dans le dossier /var/www de votre Raspberry PI seront accessibles via l’adresse réseau tapée (uniquement depuis votre réseau) ou via l’adresse WAN (votre adresse extérieure) une fois que vous aurez débloqué le port 80 sur votre firewall/box/routeur pour l’adresse réseau du Raspberry.

Pour plus d’informations sur apache, MySQL et PHP, vous êtes invités à lire la doc d’ubuntu : http://doc.ubuntu-fr.org/lamp qui ne fait pas l'objet d'un détail ici (étant donné qu’il ne s’agit pas de quelque chose de spécifique au Raspberry PI ,libre à ceux qui souhaitent demander plus d'informations de se rendre sur le channel "arm" IRC du réseau, nous nous ferons un plaisir de vous répondre).

installez le célèbre paquet phpMyAdmin, script php permettant de gérer facilement votre base de données MySQL depuis l’adresse http://votre.ip/phpmyadmin :

 sudo apt-get install phpmyadmin

(Le login par défaut est root et le mot de passe est celui que vous avec renseigné lorsque vous avez installé MySQL)

Veillez à cocher apache2 à l'installation de phpmyadmin

L'environnement de travail www
Communiquer avec le RaspberryPi