Archives par étiquette : raspbian

Mini Pi Dash Screen

Quelques années après le Raspberry Pi Home Dash Screen j’ai eu envie d’explorer d’autres manières de réaliser un affichage simple sur de petits écrans. Dans cette article, j’explique pas à pas comment réaliser très simplement un écran d’affichage en utilisant un Raspberry Pi et la lib Python PyGame.

Continuer la lecture

Téléinfo EDF – Suivi conso de votre compteur électrique (màj 08/2016)

teleinfo_edf_conso_electrique

MAJ août 2016 : Depuis la parution de cet article en septembre 2014 (bientôt 2 ans Oo), de nombreuses évolutions ont été faites sur les Raspberry Pi et Raspbian. Grâce aux retours d’expériences de plusieurs lecteurs et à leur participation, cet article est aujourd’hui mis à jour 🙂 Un gros merci à Arnaud (qui se reconnaîtra) qui m’a notamment envoyé de nombreuses informations sur les modifcations relatives à Raspbian Jessie et au RPi3 🙂

Vous pouvez notamment télécharger les versions revues et corrigées des scripts PHP par Arnaud, ici : teleinfo.zip


A l’ère de la domotique et des économies d’énergie, le suivi de la consommation d’électricité dans nos maison devient un point incontournable. Détecter les appareils électriques gourmands, optimiser sa consommation en jouant sur les tarifs heures creuses/pleines, opter pour des ampoules à économie d’énergie et couper ses équipements multimédia lorsqu’on ne s’en sert pas : autant de gestes qui prennent sens à partir du moment où l’on peut en mesurer l’effet sur sa facture EDF.

Dans cet article, nous allons explorer une méthode très simple pour collecter et analyser les informations de notre compteur EDF et les représenter sur un graphique. Comme toujours sur magdiblog.fr, nous utiliserons un Raspberry Pi pour construire ce petit système 🙂

Continuer la lecture

Pi BOAt – Drone marin

PiBOA_Boat

Deux ans après la présentation du projet Pi BOA Drone – Un avion drone autonome longue distance (qui reste d’actualité), force est de constater que les problématiques logistiques et législatives autour d’un tel projet ont largement freiné son avancement.

En effet, outre le fait qu’il est quasiment impossible d’obtenir une autorisation pour faire voler un engin de près de trois mètres d’envergure en toute autonomie, le matériel et les locaux nécessaires à sa construction ne sont, pour le moment, pas à ma portée.

Rassurez vous, le projet n’est pas abandonné, il me faut simplement trouver les bons partenaires et sponsors pour le mener à bien ainsi que de quoi le financer 😉

Un projet intermédiaire

Tout ceci m’amène à vous présenter un nouveau projet, ô combien plus accessible, le Pi BOAt, un drone marin !

Alors oui, hors de question ici de faire un Lille-Metz (quoi que ?!), mais comme vous allez le voir, les problématiques de navigation et de contrôle entre un avion et un bateau sont relativement similaires. Si si !

Sur un bateau comme sur un avion, il faut gérer des moteurs et des ailerons (ou gouvernails), une position, une direction, une vitesse, la télémétrie, etc… La seule différence finalement, outre les questions de flottaison/aéronautique, c’est qu’un bateau navigue dans un plan, en deux dimensions donc, alors qu’un avion évolue dans un espace en trois dimensions. Voyez, c’est tout pareil 😉

De plus, un bateau coûte beaucoup moins cher en crash-test ! Au pire, un bateau, il faudra aller le chercher à la nage, alors qu’un avion ça a tendance à se vautrer lamentablement en éparpillant des morceaux sur cinquante mètres…

Pour finir, personne n’ira m’embêter avec un bateau, la chasse aux sorcières étant focalisée sur les drones volants 😉

Présentation : Pi BOAt, un drone marin

L’objectif principal de ce projet est le même que pour le Pi BOA Drone et l’ensemble des projets présentés sur MagdiBlog : se confronter à différentes problématiques techniques afin d’étendre nos connaissances 🙂

L’objectif secondaire de ce projet est de réaliser une plateforme de drone marin qui pourra servir de base pour une multitude de projets.

Je vais découper le projet en lots techniques que je détaillerai dans des articles dédiés au fur et à mesure de mes avancées. De cette manière, nous pourrons étudier les différents sujets un par un et chaque morceau pourra servir indépendamment à d’autres projets.

Voici les lots techniques que j’ai identifié pour le moment :

  • gestion des moteurs (PWM)
  • contrôle des gouvernails (servos moteurs)
  • télémétrie (WiFi ou 433Mhz)
  • gestion de la caméra embarquée (module pi caméra avec stabilisateur)
  • position GPS
  • position dans l’espace (gyroscope, accéléromètre et boussole)
  • sonde radar (télémètre à ultra-son)
  • sonde température
  • architecture logicielle (Python)
  • IHM de pilotage (web PHP)
  • construction du navire (en bois)

Un beau programme donc, qui fait intervenir une multitude de technologies 🙂

La construction du navire (la coque et la structure) sera la dernière étape de ce projet.

Deux valent mieux qu’un !

En m’imaginant piloter mon bateau sur un grand lac, il me vint une idée, ou plutôt une angoisse : comment récupérer mon bateau s’il ne répond plus ou qu’une panne survient au beau milieu du lac ?

raspberry_pi_boat_navyLa réponse : faire un deuxième bateau, plus simple, plus petit, qui pourra accompagner le premier.

Nous fabriquerons donc deux bateaux, sur le même modèle, l’un pouvant venir au secours de l’autre en cas de problème. J’imagine déjà un petit système d’aimants à l’avant et l’arrière… que dis-je !? A la proue et à la poupe des deux bateaux 🙂

A suivre 😉

Comment prolonger la durée de vie de vos cartes SD sur Raspberry Pi (màj)

raspberry_pi_sd_card_killer

Je le clame haut et fort, le Raspberry Pi est un tueur de cartes SD ! Je l’ai vu de mes propres yeux et de nombreux témoignages l’attestent ! Mais il y a plus grave, mesdames et messieurs les jurés, ce crime abject n’est pas un cas isolé, derrière cette framboise affriandante se cache un véritable tueur en série ! Nous devons stopper cette infamie !

Le drame

Si je mets, aujourd’hui, le Raspberry Pi au banc des accusés, c’est parce que depuis sa sortie j’ai cramé une bonne dizaine de cartes SD, de marques (même les plus réputées) et de tailles différentes. Toutes ont rendu l’âme après quelques mois d’utilisation intensive… Les preuves ne laissent aucune place au doute ; le Raspberry Pi est coupable ! Mais, mais ! Ce n’est pas vraiment de sa faute 🙂

raspbian_logoCar, voyez-vous, Raspbian, la distribution Linux dédiée au Raspberry Pi, est un système d’exploitation qui, comme tous ses homologues, sollicite énormément la carte SD du Pi (qui joue le rôle de disque dur, rappelons le) ; écrivant et lisant sans vergogne des kilo tonnes de données à un rythme immodéré. Or, une carte SD n’est pas du tout (vraiment pas !!!) taillée pour encaisser ces assauts répétés.

sandisk_ultra_micro_sd_16goLe nombre de cycles d’écriture étant limité, les jours de votre carte SD sont comptés dès le moment ou vous la branchez sur un Pi. Secteur par secteur, votre carte SD se consume jusqu’à devenir totalement inutilisable.

Le problème ne vient donc pas directement du Pi, mais plutôt de Raspbian. Le Pi étant disculpé, nous allons voir comment modifier légèrement le fonctionnement de Raspbian pour pallier ce problème de sollicitation abusive de la carte SD.

La solution

La méthode est très simple à mettre en oeuvre. Il « suffit » de déporter de la carte SD à la RAM, les répertoires faisant l’objet de nombreuses écritures de la part du système d’exploitation. Ce tour de passe-passe est possible grâce au système de fichier tmpfs (plus d’info sur tmpfs ici : http://doc.ubuntu-fr.org/tmpfs). En gros, il s’agit de créer des « partitions » (notez les guillemets pour les puristes) directement dans la RAM du Pi ; RAM qui elle, est spécialement conçue pour encaisser de nombreux cycles d’écritures 😀

Les répertoires du système Rasbian à « déplacer en RAM » sont essentiellement les répertoires temporaires et les répertoires contenant les logs. Nous allons donc cibler les répertoires systèmes suivant :

/tmp
/var/tmp
/var/log

On pourrait aller chercher d’autres répertoires, mais ces trois là sont les plus critiques.

Alors oui, je ne le précise pas mais cela coule de source, l’ensemble des données présentes dans ces répertoires seront supprimées à chaque reboot du Pi… Ah bah oui ! Donc si vous souhaitez conserver certains fichiers de logs par exemple, pensez à les déplacer avant 🙂

Pour déplacer ces répertoires en RAM, il convient d’éditer le fichier /etc/fstab qui gère les points de montages du système. Ajouter les lignes suivantes :

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=10m 0 0

J’attire votre attention sur le paramètre size de chaque ligne, qui limite le volume maximal de données qui pourront être stockées dans chaque répertoire en RAM. Et comme nos Pi ne sont pas généreusement dotés de ce côté là, il faut y aller avec parcimonie ; 10Mo par répertoire sont suffisants dans la plupart des cas 🙂

Bien entendu, il conviendra de redémarrer le Pi pour que les modifications soient prises en compte 🙂

Voilà pour les répertoires systèmes qui sollicitent le plus la carte SD.

Décliner la solution

Le gros intérêt de cette méthode, c’est que vous pouvez la décliner pour tous les programmes ou opérations qui, d’une part réalisent de nombreuses écritures sur la carte SD et qui d’autre part ne nécessitent pas de conserver des données de manière persistante.

Prenons l’exemple d’un système de vidéo surveillance ou de streaming vidéo. Les images capturées pour être transmises ne nécessitent pas d’être conservées sur la carte SD. Vous pouvez donc créer un sous-répertoire dans le répertoire home de votre utilisateur, pour y stocker temporairement ces fichiers images :

tmpfs /home/pi/images tmpfs defaults,noatime,nosuid,size=50m 0 0

Cas spécifique des fichiers de logs

Dans le cas des fichiers de logs, la méthode tmpfs décrite plus haut présente deux gros inconvénients :

  • Le premier est que vous perdez toute trace des événements système après chaque redémarrage. Si ce n’est pas gênant pour certains projets, ça peut l’être si vous vous servez de votre Pi comme serveur Web par exemple.
  • Le deuxième est que certains softs (typiquement Apache) créent un sous répertoire dans /var/log pour y stocker ses fichiers de logs. Hors avec tmpfs, le répertoire /var/log monté en RAM est vide à chaque démarrage ; ce qui empêchera Apache par exemple de démarrer correctement…

Rappelons que le problème des fichiers de logs est le nombre important d’écriture sur la carte SD. L’idéale serait donc de pouvoir conserver nos fichiers de logs mais d’en limiter le nombre d’écriture. C’est exactement ce que se propose de faire ramlog : Il stock temporairement les logs en RAM, puis vient les écrire par bloc dans les fichiers sur la carte SD de temps en temps 🙂

Merci à Jerry pour l’info 😉

Pour installer ramlog sur nos Pi, rien de plus simple :

wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
sudo dpkg -i ramlog_2.0.0_all.deb
sudo reboot

Une fois le Pi redémarré, vérifier que ramlog est bien actif avec la commande suivante :

/etc/init.d/ramlog status

Voici le lien vers le site officiel de ramlog pour plus d’info : http://www.tremende.com/ramlog/

Longue vie aux cartes SD !

PiHomeDashscreen et domotique : températures et humidité

PiHomeDashScreen_domotique_meteo

Quand j’ai débuté le projet PiHomeDashscreen il y a un peu plus de deux ans (déjà ?!?), j’avais déjà en tête de le relier, un jour, à un système domotique. En effet, ce type d’écran d’information domestique ne présente de réel intérêt que si les données affichées sont utiles au quotidien. Quoi de plus pertinent que des informations concernant la maison, les températures intérieures et extérieures, la consommation électrique, l’état de l’alarme anti intrusion, la vidéo-surveillance etc… ?

Aujourd’hui, nous allons voir comment exploiter les données de température et d’humidité d’une installation domotique à base de Raspberry Pi et Domoticz et les afficher sur notre PiHomeDashScreen. Cette méthode, qui se base sur l’API de Domoticz, est générique et peut s’appliquer à n’importe quel type de données ou module domotique (interrupteurs, sondes météo, capteur de luminosité, chauffage…).

Continuer la lecture