Archives par étiquette : système

6 – Module 3 – Météo

Intéressons nous maintenant au module météo qui affiche la météo du jour et les prévisions pour 3 à 5 jours.

jarvis_screenshot_meteoCe module est particulièrement délicat car il est très difficile à personnaliser. En effet, il s’agit d’utiliser des « widgets » mis à disposition par des sites spécialisés et qui proposent des options de configuration limitées. Pour le moment, je n’ai pas encore trouvé de design qui me plaise totalement, je change régulièrement le type d’affichage jusqu’à en trouvé un qui me plaise et qui soit suffisamment lisible de loin.

J’aime beaucoup le design de la météo Google, qui apparait automatiquement quand vous taper « météo » dans la barre de recherche :

meteo_googleCependant, je n’ai pas, pour le moment, trouver le moyen de l’insérer dans une page web…

Widgets

J’ai repéré 3 sites qui proposent des widgets météo plus ou moins complets et plus ou moins jolis : my-meteo.fr, tameteo.com et meteocity.com

Tous propose de personnaliser les informations à afficher, le nombre de jours de prévision, les couleurs des éléments ainsi que différents styles d’icônes.Une fois vos options choisies, le site génère du code HTML à copier/coller dans votre page.

Voici des aperçu des otpions de base de chaque site :

my-meteo.fr

my-meteo

tameteo.com

tameteo

meteocity.com

meteocityEn rédigeant cet article je me suis replongé dans les options du widget proposé par meteocity. Je suis finalement parvenu à trouver quelque chose qui me convient à peu près, même si je ne suis toujours pas emballé à 100% :

meteocity_okC’est déjà un peu plus sympa 🙂 Hormis les informations sur l’humidité et le vent, le reste est parfaitement lisible de loin. Il va falloir ruser pour masquer ces informations inutiles 😉

index.php

Nous ajoutons à notre fichier index.php une simple balise <div> qui reste vide pour le moment.

 <div id="meteo"></div>

Comment pour l’ensemble des modules de ce dashscreen, c’est une fonction JavaScript qui sera charger d’insérer le contenu à afficher dans la div du module concerné.

style.css

Cas particulier de ce module, nous n’avons pas la possibilité d’agir directement sur les styles CSS du code fourni par le site météo. Nous avons devons donc simplement positionner la div qui contiendra les informations météo.

/* meteo */

div#meteo
{
  right             : 0px;
  top               : 300px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
  color             : #FFF;
  font-weight       : bold;
  text-align        : center;
}

javascript.js

La fonction JavaScript de ce module se content d’envoyer une requête AJAX et d’insérer le résultat de la requête dans la div idoine.

/* meteo */

var meteo_timeout;

function meteo ()
{
  $.ajax({
    async : false,
    type: "GET",
    url: "./ajax.php",
    data: "block=meteo",
    success: function(html){
      $("#meteo").html(html);
    }
  });

  meteo_timeout = setTimeout("meteo()", 3600000);
}

Rafraichir les informations météo une fois par heure (toutes les 3600000 ms) est largement suffisant.

inc.php

Pour ce module nous avons besoin d’une fonction PHP qui renvoie le code généré par le widget. Ce qui nous donne une fonction très simple, dans laquelle il vous suffit de copier/coller le code HTML qui vous a généré le site météo :

/////////////////////////////////////////////////
//  Meteo
/////////////////////////////////////////////////

function meteo () {
  $meteo = 'coller ici le code HTML généré par le site météo';
  return $meteo;
}

Masquer les informations inutiles

Si vous souhaitez masquer certaines informations fournis par le widget, il suffit d’ajouter une <div> de couleur noir au dessus des éléments que vous voulez voir disparaitre.

Ajoutez une <div> dans le fichier index.php juste en dessous de la div meteo :

<div id="meteo"></div>
<div id="meteo_black"></div>

Puis modifier le fichier style.css en ajoutant le code suivant dans la section meteo :

div#meteo_black
{
  right             : 0px;
  top               : 420px;
  width             : 600px;
  height            : 100px;
  position          : absolute;
  z-index           : 9999;
  background-color  : rgba(0, 0, 0, 1);
}

Bien entendu, vous devrez adapter la position et la taille de la div en fonction de vos besoins 🙂

Voici le rendu final avec ce nouveau widget météo :

dashscreen_new_meteoJe suis plutôt satisfait du résultat car c’est très lisible et que le design est très épuré 🙂

Avec ces trois premiers modules horloge, xplanet et météo, il est déjà possible de réaliser un beau dashscreen dans votre séjour. Ces informations peuvent être intéressantes pour tout le monde et son utiles au quotidien 🙂

Les prochains modules qui vont suivres sont plus des modules de « monitoring » qui ont pour rôle la surveillance de serveurs et de réseaux.

A suivre…

5 – Module 2 – Xplanet

Voilà mon module préféré 🙂 Celui que je trouve le plus joli et qui mériterait un écran pour lui tout seul. L’affichage de la terre avec la phase d’ensoleillement et la carte des nuages en temps réel ainsi que la phase de la lune 🙂

jarvis_screenshot_xplanetCe module s’appuie sur le logiciel Xplanet qui permet de générer des images de toutes les planètes et satellites natuels du système solaire. Vous pouvez représenter, en temps réel toujours, le système solaire en entier avec la position des astres et planètes, zoomer sur une ou plusieurs planètes etc,…

Concernant la terre, vous pouvez afficher la position des villes et tout un tas d’informations météos notamment. Il est également possible de représenter nos satellites artificiels, avec leur position réelle, leur orbite, etc… Je vous laisse parcourir la galerie de screenshot de Xplanet qui donne une idée des possibilités et du rendu. Perso, je trouve cela magnifique 🙂 Un jour, j’achèterai un grand écran juste pour afficher le système solaire 😀

Xplanet

Installation

Xplanet est un soft qui existe depuis… très longtemps ! Il est dispo dans les dépôts Debian, donc pour l’installer, rien de plus simple :

apt-get install xplanet

Les maps

Xplanet contient de base une « map » pour chaque planète (une image qui représente la surface). Vous pouvez, et je vous le conseille, télécharger des maps de meilleure qualité en haute définition. Il est également intéressant de télécharger une map dédiée à la partie de la surface de la terre non exposée au soleil (nuit), sinon, Xplanet se contentera d’asombrir la map du jour.

Vous trouverez ici de nombreuses maps pour la terre et tous les autres astres du système solaire :

Exemple de map pour la terre – jour :

earth-livingExemple de map pour la terre – nuit :

night-electricXplanet se chargera de créer une combinaison des deux images pour repésenter la partie ensoleillée de la terre et la partie plongée dans l’obscurité.

Génération des images

Xplanet n’est au final qu’un générateur d’image qui représente les astres dans leur état à un instant T et depuis un certain point de vue. Tout se passe en ligne de commande, et comme vous avez pu le constater en parcourant le site web de Xplanet, il y des centaines d’options ! Je vais ici me limiter aux paramètres que j’utilise pour mon affichage.

Je génère en fait deux images distinctes, une pour la terre et une pour la lune. Voici mon fichier de configuration xplanet.conf :

[default]                       # Values in this section apply to all bodies unless overridden below.

arc_color=white
arc_thickness=1
bump_scale=3
cloud_gamma=1
cloud_ssec=false
cloud_threshold=90
color={255,255,255}             # fallback color in case an image map isn't found
draw_orbit=false
grid=false
grid1=6
grid2=15
magnify=1
marker_color=red
max_radius_for_label=3
min_radius_for_label=.01
min_radius_for_markers=40
orbit={-.5,.5,2}
orbit_color={255,255,255}       # color for the orbit
random_origin=true
random_target=true
shade=30                        # 0 = black, 100 = same as dayside
text_color={255,0,0}            # color for text (markers & body label)
twilight=6                      # blend the day and night images for
                                # pixels within this many degrees of
                                # the terminator

[sun]
"Sun"
color={255,255,166}
map=/home/jarvis/xplanet/img/sunmap.jpg
max_radius_for_label=0
shade=100

[earth]
"Earth"
color={28, 82, 110}
map=/home/jarvis/xplanet/img/land_ocean_ice_2048.jpg
night_map=/home/jarvis/xplanet/img/night-dark.jpg
cloud_map=/home/jarvis/xplanet/img/clouds_2048.jpg
min_radius_for_label=0

[moon]
"Moon"
color={100, 100, 100}
map=/home/jarvis/xplanet/img/moonmap2k.jpg

Dans les sections [earth] pour la terre et [moon] pour la lune, vous voyez les chemins vers les maps pour le mode jour « map » et le mode nuit « night_map« .

Les nuages

Vous avez également repéré la map « cloud_map » pour la terre. En effet, Xplanet permet de calquer une image ou carte des nuages sur la terre pour obtenir un résultat très réalise avec la couverture nuageuse modiale presque en temps réel.

cloud_combined_2048Vous pouvez obtenir cette carte des nuages ou « cloud_map » sur différents sites. Selon les sources, elles sont mises à jour entre 1 et 10 fois par jour : http://xplanet.sourceforge.net/clouds.php

Il convient de faire un petit script qui va télécharger la dernière carte des nuages publiée. Une tâche CRON se chargera d’exécuter le script à intervalle régulier. Voici mon script xplanet_cloud.sh :

#!/bin/sh

pat=/home/jarvis/xplanet/img/ # destination de l'image téléchargée
tmp=$pat"tmp_clouds_2048.jpg" # nom du fichier temporaire
img=$pat"clouds_2048.jpg"     # nom du fichier final

rm $tmp # supprimer l'ancien fichier temporaire

wget -O $tmp http://xplanet.sourceforge.net/clouds/clouds_2048.jpg # télécharge l'image

if [ -f $tmp ] ; then # si le fichier a bien été téléchargée...
  mogrify -resize 2000x1000 $tmp # redimenssionne l'image téléchargée pour qu'elle est la même résolution que la map "jour"
  mv $tmp $img # remplace l'ancienne image par la nouvelle
  chown -R jarvis:www-data $pat && chmod -R 775 $pat # change les droits sur le fichier
fi

N’oubliez pas de rendre le script exécutable avec un chmod 755 xplanet_cloud.sh 😉

Et voilà la tâche CRON associée qui peut être configurée en utilisant la commande crontab -e :

0 */4 * * *     /home/jarvis/xplanet/xplanet_cloud.sh

Toutes les 4 heures, le script est exécuté et une nouvelle carte des nuages est téléchargée 🙂

Générer les images

Dernière étape, lancer xplanet au démarrage du système pour qu’il génère les images de la terre et de la lune toutes les N minutes. Pour un petit script qui contient deux commandes (une pour l’image de la terre et une pour l’image de la lune). Voici mon script xplanet.sh :

#!/bin/sh

# TERRE
xplanet -conf /home/jarvis/xplanet/xplanet.conf -output /home/jarvis/xplanet/img/xplanet_earth.png -wait 120 -body earth -latitude 40 -longitude 10 -geometry 500x500 &

# LUNE
xplanet -conf /home/jarvis/xplanet/xplanet.conf -output /home/jarvis/xplanet/img/xplanet_moon.png -wait 600 -body moon -geometry 250x250 &

On passe à la commande xplanet les paramètres suivants :

  • -conf : le fichier de configuration xplanet.conf
  • -output : le fichier de sortie
  • -wait : l’intervalle de temps, en seconde, à attendre entre chaque génération d’image (120 secondes soit 2 minutes pour la terre, pour pouvoir bien observer l’ensoleillement tout au long de la journée. 600 secondes soit 10 minutes sont suffisantes pour la lune, dont la phase varie très lentement).
  • -body : nom du corps céleste à afficher, définie dans le fichier de configuration
  • -geometry : taille, en pixel, de l’image générée
  • -latitude & -longitude : permet de fixer le point centrale de l’image pour la terre. En choisissant la latitude 40 et la longitude 10, l’image sera centrée à peu près sur l’Italie. N’y voyez aucune affinité particulière avec ce pays, simplement c’est un angle de vue qui laisse apparaitre la France et toute l’Europe, l’Afrique en entière, une bonne partie de la Russie, les Amériques, et le pôle nord 🙂 C’est joli ! Vous pouvez également choisir le point de vue du soleil par exemple, pour toujours voir la face ensoleillée de la terre, ce qui permettra de voyager un peu et de ne pas voir toujours la même partie du globe 🙂

Il suffit ensuite de place ce script dans le répertoire /etc/init.d et de lancer la commande suivante pour qu’il soit exécuté à chaque démarrage du système :

update-rc.d xplanet.sh defaults

Nous avons fait la moitié du travail 🙂 Toutes les 2 minutes, une nouvelle image (de 500×500 pixels) de la terre est générée avec une carte des nuages mise à jour toutes les 4 heures. Toutes les 10 minutes, l’image de la phase de la lune ( de 250×250 pixels) est mise à jour.

xplanet_earthxplanet_moon

Il ne nous reste plus qu’à créer le module qui affiche ces images sur notre écran 🙂

index.php

Dans la page d’index, nous ajoutons deux balises <div>, contenant chacune une balise <img>, une pour la terre et une pour la lune.

  <div id="earth"><img id="img_earth" src="pict/blank.png"></div>
  <div id="moon"><img id="img_moon" src="pict/blank.png"></div>

Pour éviter l’affichage d’une erreur au chargement de la page il convient d’initialiser les sources des balises <img> avec une image vide blank.png.

style.css

La feuille de style pour ce module est très simple car il suffit de définir la position et la taille des div qui contiennent les images à afficher.

/* earth */

div#earth
{
  width             : 500px;
  height            : 500px;
  left              : 0px;
  top               : 0px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

/* moon */

div#moon
{
  width             : 250px;
  height            : 250px;
  left              : 500px;
  top               : 0px;
  position          : absolute;
  overflow          : hidden;
  background-color  : rgba(0, 0, 0, 1);
}

javascript.js

Il s’agit simplement de remplacer l’image affichée par la nouvelle image générée. Le problème c’est que le nom du fichier ne changeant pas, le navigateur aura tendance à afficher l’image qui est déjà stockée dans son cache. Pour palier ce problème nous ajouterons un timestamp (date et heure exprimées en nombre de secondes écoulée de le 1er janver 1970) dans le chemin de l’image. De cette manière le navigateur pensera qu’il s’agit d’une nouvelle image à chaque fois.

Par souci de fluidité, il convient également de précharger les images avant de les substituer à l’écran. On évite ainsi que l’image se charge au fur et à mesure de son affichage.

/* xplanet */

var xplanet_timeout;

function xplanet () {

  var now = new Date().getTime();

  /* préchargement des images */
  var img_earth = $("<img />").attr("src", "xplanet/img/xplanet_earth.png?"+now);
  var img_moon  = $("<img />").attr("src", "xplanet/img/xplanet_moon.png?"+now);

  /* affichage des nouvelles images à l'écran */
  $("#img_earth").attr("src", "xplanet/img/xplanet_earth.png?"+now);
  $("#img_moon").attr("src", "xplanet/img/xplanet_moon.png?"+now);

  xplanet_timeout = setTimeout("xplanet()", 120000);
}

La fonction est exécutée toutes les 120000ms (soit toutes les 2 minutes) ce qui, au final, fait défiler l’ensoleillement de la terre et de la lune au fil de la journée 🙂

C’est vraiment plaisant d’observer le défilement de l’ensoleillement au cours de la journée, et de pouvoir prévoir la météo des prochains jours en constant l’approche d’une grosse perturbation au nord ouest de la France 🙂

1 – Raspberry Pi Home Dash Screen

J’ai toujours été passionné par la domotique et par tout ce qui touche à l’informatique dans la maison. J’adore les stations météo qui affichent tout un tas d’informations, les horloges high-tech qui font calendrier et qui sonnent quand vous recevez un mail, les cadres photos numériques, etc,… En revanche, vous ne trouverez chez moi aucun de ces appareils (ou presque). En effet, je trouve que ce qui existe aujourd’hui est soit beaucoup trop limités, soit très limités et beaucoup trop chers 😀

En parallèle, j’aime avoir une vue globale sur ce qui se passe sur mon réseau informatique à la maison. Savoir comment se porte ma bande passante, connaitre l’état de mes serveurs et NAS, savoir qui est connecté sur mon serveur TeamSpeak ou sur mon VPN, etc…

J’adore également savoir quelle est la phase de la lune, et connaître l’ensoleillement de la terre au cours de la journée, l’heure du lever et du coucher du soleil… Les écrans de contrôle de la NASA, comme on les voit dans les films, me font un certain effet 😉

Donc voilà, un projet relativement simple mais très fun, un écran tableau de bord pour regrouper toutes ces données 🙂

Bien en vue au dessus du bar qui sépare ma cuisine de mon séjour, voici ce que ça donne :

IMG_5393

Cette photo montre la chose dans sa version finale, proprement installée au mur.

En détail

Voilà la liste des informations qui sont représentées sur cet écran :

  • Phase de la terre avec cartographie des nuages en temps réel
  • Phase de la lune
  • Heure
  • Date
  • Météo du jour
  • Prévisions météo à 3 jours
  • Etat des serveurs et NAS
  • Clients TeamSpeak connectés
  • Clients VPN connectés
  • Bande passante internet

J’ajoute de temps en temps des fonctionnalités, tant qu’il reste de la place pour afficher des informations. L’important c’est que ce soit visible/lisible depuis n’importe où dans la pièce.

Voici ce que ça donne en détail (cliquez pour agrandir) :

dashscreen_final

Le matériel nécessaire

Contrairement à mes autres projets, ici un Raspberry Pi et un écran suffisent… D’ailleurs, vous pouvez utiliser autre chose qu’un Pi, notamment un vieux eeePC ou PC portable pour rester dans le compacte 🙂 Une tour standard fera également l’affaire si vous pouvez la planquer. J’ai simplement ajouté un dongle WiFi pour connecter le Pi au réseau car aucune prise RJ45 n’arrive à cet endroit. Un support mural pour accrocher l’écran au mur ainsi qu’une goulotte extra plate pour masquer les câbles d’alimentation. Si vous choisissez de poser votre écran au dessus de votre frigo par exemple, vous économiserez l’achat de ces deux accessoires.

Pour l’écran, choisissez le moins cher. Préférez les écrans LED, plus fin et qui consomment moins. Ils offrent généralement un angle de vue plus large (pratique quand on se balade dans la pièce), ainsi qu’une luminosité plus élevée. Si vous souhaitez l’accrocher au mur, il doit biensur disposer des fixations de type VESA. Pour la taille, c’est comme vous voulez, et cela dépend de ce que vous voulez afficher. Sachez toutefois qu’un écran de plus de 20-22″ devient vite encombrant… Je vous conseille donc une écran entre 16″ et 20″, au format 16/9 (plus esthétique qu’un 4/3), avec un bord fin (toujours par souci d’esthétisme 😉 ).

Voici en détail ce que j’ai choisi :

  • Un Raspberry Pi Modèle B 512Mo
  • Une carte mémoire SDHC 8Go
  • Un dongle WiFi USB NetGear WNA1000M
  • Un écran LCD AOC e941Vwa 18,5″ (n’importe quel écran peut convenir)
  • Un support mural VESA pour écranAavara EL1010
  • Une goulotte plate pour cacher les câbles

Dans les prochains articles, j’expliquerai comment procéder pour créer facilement ce type d’écran et je publierai tout mon code source en détaillant le fonctionnement de chaque module.

Comme toujours, et j’insiste, je compte sur vous pour alimenter la chose, partager vos avis et idées d’amélioration. Si vous réalisez quelque chose de ce type, ce pourrait être génial de créer un soft avec une bibliothèque qui regrouperait tous les modules créés. 🙂

IMG_5389

10 – Un boitier en Légos

J’aime beaucoup les Légos, les possibilités sont sans limites, et c’est très pratique pour réaliser de petits boitiers fonctionnels et sur mesures 🙂 En attendant que les imprimantes 3D deviennent abordables, je n’ai pas trouvé mieux 🙂

image

Comme vous pouvez le constater sur la photo ci-dessus, la carte du Pi correspond, à 1 mm près, à 7 x 11 plots de Légo. Ce qui fait que la carte tient parfaitement en place, avec très peu de jeu. Le circuit Velleman VM188 occupe lui 6 x 10 plots. L’ensemble tient tout juste sur une hauteur de 3 rangées de Légo. On pourrait penser que ça a été fait pour 😉

Il ne reste qu’à placer le couvercle, et à positionner le régulateur de tension 🙂

imageIMPORTANT : Lorsque l’on abaisse une tension comme ici, en passant de 12V à 5V, il y a une partie de l’énergie qui est « absorbée » par le circuit. Pour connaître la puissance absorbée ou « dissipée » en Watt par le circuit, il faut faire la différence entre la puissance du courant de sortie et celle du courant d’entrée P diss = P out – P in. On obtient la puissance en faisant le produit de la tension et de l’intensité du courant P = U x I. Si on considère que le Pi tire environ 700 mA, soit 0,7 A, on obtient P diss = 12 x 0,7 – 5 x 0.7 = 4,9 W. Sur ces 4,9 W de puissance dissipée, une partie sera convertie en chaleur, c’est l’effet Joule. Ce qui veut dire que le module va chauffer ! C’est pour cela que le régulateur de tension  KEMO M015N est équipé d’une patte en métal qui sert de radiateur, et  qui peut être vissé à un radiateur plus grand en cas de besoin. Sur la datasheet du régulateur de tension  KEMO M015N il est précisé qu’au-delà de 3W dissipé, il est conseillé de laisser respirer le module et de ne pas l’enfermer. Au-delà de 6W, il est vivement recommandé d’utiliser un radiateur pour refroidire le module.

Comme le régulateur de tension  KEMO M015N risque de chauffer, je vais le positionner au dessus du boitier, en laissant bien respirer la patte en métal. Voici le résultat final :

image

Tout à fait à gauche, le domino qui fera le lien avec le faisceau électrique de l’allume-cigare. A droite, la carte son prête à être connectée à l’autoradio 🙂

Baptisé Carpo (en référence à une lune de Jupiter), le module est presque complet. Il me reste le circuit capacitif pour l’extinction du dispositif à ajouter 🙂

8 – Alimentation du Pi dans la voiture 2/3 – Allumage

Au démarrage de la voiture

Le problème

Si nous branchons simplement le Pi sur un abaisseur de tension, que se passe-t-il lorsque nous entrons dans notre voiture et démarrons le moteur :

  1. On entre la clé, et on met le contact (petit pique de tension)
  2. A ce moment là, du courrant est disponible sur le circuit électrique et le Pi boot
  3. On tourne la clé à fond pour démarrer le moteur (grosse chute de tension + parasites)
  4. Là, l’appel de courant du démarreur est tel que plus rien n’est disponible pour le Pi, qui s’éteint, privé de courant
  5. Le moteur tourne (tension relativement stable selon usage des équipements de la voiture)
  6. Du courant est à nouveau disponible, et le Pi boot à nouveau

Pour faire simple, notre pauvre Pi s’en prend plein les carreaux… Subissant piques et chutes de tension, parasites, multiple boots et extinctions sauvages… On peut s’attendre à réduire considérablement la durée de vie du Pi, voir à sérieusement l’endommager dès les premières utilisations.

La solution

La première chose à faire est de choisir un régulateur de tension continue stabilisé et anti-parasite. Ceci permettra d’absorber les variations importantes du courant pour fourrnir une tension propre et stable au Pi.

imageLe régulateur de tension  KEMO M015N disponible chez Conrad notamment, répond à ces exigeances. Il permet de choisir la tension de sortie voulue (5V pour  le Pi), et accepte une tension d’entrée entre 6V et 28V (parfait pour les 12V fournis par la prise allume cigare).

Ensuite, il faut empêcher le Pi de booter lorsque l’on met le contact avant de démarrer le moteur, et le démarrer seulement une fois que le moteur tourne. Pour cela, il convient d’ajouter un petit circuit de tempo équipé d’un relais, qui n’autorisera l’arrivée du courrant au Pi qu’au bout de quelques secondes.

ar-module-vm188-377C’est alors que j’ai repensé au circuit de tempo Velleman VM188 que j’aurais pu utiliser pour mon projet Pi TimeLapse. En effet, ce petit circuit alimenté en 12V (comme c’est pratique 😉 ), peut être utilisé de plusieur façons, et notamment, déclancher le relais après un nombre de secondes déterminé. En déclenchant le relais au bout de 10 secondes, le Pi ne sera pas alimenter entre le moment où vous mettez le contact et le moment où vous démarrez le moteur.

Un mot sur le circuit de tempo Velleman VM188 : Quelque soit votre projet, si vous avez besoin d’une minuterie à sortie sur relais, c’est LE kit qu’il vous faut ! Vous pouvez le trouver entre 15€ et 20€ (pas donné mais très fonctionnel…), et faire fonctionner sur des temps allant de 1 seconde à 60 heures selon 4 modes :

  • démarrage avec impulsion (démarre allumé)
  • démarrage avec pause (démarre éteint)
  • activation et désactivation unique (s’allume ou s’éteint après un certain temps)
  • fonctionnement cyclique (s’allume puis s’éteint en boucle, on peut choisir la durée d’allumage et la durée de coupure pour chaque cycle)

Le relais équipé est prévu pour des courants de 230V sur 16A, vous avez donc de quoi programmer l’alimentation tout ce que vous souhaitez dans votre maison, voiture, panneaux solaires,…

Voici le schéma complet du montage :

UntitledAvec ce montage, j’assure à mon Pi une alimentation propre, sans danger pour ma voiture 🙂

Reste à gérer la coupure brutale de courant lorsqu’on éteint le moteur…

 

7 – Alimentation du Pi dans la voiture 1/3

Comme pour le projet Pi TimeLapse l’alimentation du Raspberry Pi est le point le  plus problématique. Décidemment, il n’existe pas de solutions simples et universelles…

463372_10151013958851148_2123947142_o_art-8-19403

Présentation du contexte

Je souhaite brancher mon Pi JukeBox sur le circuit électrique de ma voiture. De nos jours, les prises allume-cigares présentes dans les voitures sont prévues pour fournir du courant ; d’ailleurs, même s’il s’agit toujours d’une prise dite « allume-cigare », cela fait déjà quelques années qu’on ne trouve plus la résistance permettant d’allumer une cigarette… A la place, un jolis capuchon en plastique avec la mention « 12V« , preuve qu’il s’agit maintenant plus d’un circuit d’alimentation qu’autre chose. D’ailleurs, les fusibles ont été adaptés et il y a un système d’économie d’énergie qui met « en veille » la voiture au bout d’un certain temps lorsque du courant est tiré sur la batterie moteur éteint. Les derniers modèles de voiture ne s’embarassent même plus de se type de prise, et proposent directement une prise USB… Comme ça c’est clair 🙂

Branchement sur le faisceau électrique 12V

Il convient de faire un montage discret, sans monopoliser la prise allume-cigare qui pourra servir pour autre chose.

Dans ma voiture, il m’a suffit de démonter la console centrale pour accéder au faisceau électrique de la prise allume-cigare. Grâce à un domino, je fais une dérivation (un branchement en parallèle) et fais passer le câble derrière l’autoradio jusque dans la boîte à gants où sera logé l’ensemble du dispositif. Une fois la console centrale remise en place, on ne voit rien du tout 🙂

image

Nous avons donc une source d’alimentation continue 12V à porté de main. Il suffit donc d’un simple abaisseur de tenstion 12V -> 5V pour alimenter le Pi 🙂

Sauf que… c’est loin d’être aussi simple si on veut faire les choses proprement ! En effet, l’allumage de la voiture et son arrêt peuvent poser problème…