Archives par étiquette : raspbian

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…

 

6 – Proptotype jukebox embarqué

Avant de démonter la voiture pour réaliser le branchement de l’alimentation, je décide de réaliser quelques tests en faisant tourner le Pi sur batterie.

Voici ce que ça donne :

image

Sur cette photo, j’ai utilisé une autre carte son (juste pour les tests), il s’agit d’une Creative SoundBlaster Play! que l’on peut trouver sur Amazon pour un peu moins de 30€.

La batterie utilisée pour  ce test est une Romoss 5200mAh, également achetée sur Amazon pour 12€.

Un mot sur cette batterie Romoss 5200mAh : Je cherchais depuis longtemps une petite batterie pas chère pour faire des tests avec mes Pi. Dans le commerce, on trouve se genre de batterie à la Fnac et autre, pour des prix totalement déconnant, parfois près de 100€ pour des capacités ridicules ! En fouillant sur Amazon, je suis tombé sur cette marque Chinoise, Romoss, qui s’est révélée être de très bonne facture. Pour à peine 12€ vous pourrez faire tourner votre Pi 5 ou 6 heures sans problème, ou vous en servir pour recharger 2 à 4 fois votre smartphone ! A noter que cette batterie existe en plusieur capacité, selon vos besoins.

Reprenons… Le Pi étant autonome avec sa batterie, je vais dans la voiture pour réaliser les premiers tests.

IMG_4758 image
image IMG_4757

Comme attendu, tout fonctionne très bien 🙂 Mon iPhone s’est automatiquement connecté au point d’accès WiFi du Pi, et je peux prendre la main sur MPD avec l’appli MPoD directement 🙂

4 – Configuration réseau et point d’accès WiFi

MPD est un daemon administré par une application cliente via le réseau. Il nous faut donc créer un réseau WiFi dans la voiture afin de pouvoir piloter MPD grâce à des périphériques divers. Nous n’allons pas poser de routeur wifi sous le siège pour créer un réseau wifi… Nous allons plutôt transformer le Pi en point d’accès WiFi !

Hostapd

Le paramétrage de hostapd se fait grâce au fichier de configuration /etc/hostapd/hostapd.conf.Il n’est pas nécessaire d’avoir un haut niveau de sécurité sur ce réseau WiFi. Aussi, je décide de laisser le réseau WiFi ouvert 🙂 C’est open bar !

Voici ma configuration :

interface=wlan0
ssid=Carpo
channel=1
auth_algs=1
driver=rtl871xdrv
ieee80211n=1
hw_mode=g
device_name=RTL8192CU
manufacturer=Realtek

dnsmasq

J’utilise dnsmasq pour attribuer une adresse IP automatiquement à tous les clients WiFi qui se connectent au Pi. Voici le contenu de mon fichier de configuration /etc/dnsmasq.conf.

interface=wlan0
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-authoritative
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.103.1 # default gateway
dhcp-option=6,192.168.103.1 # dns server
dhcp-range=192.168.103.10,192.168.103.99,255.255.255.0,72h

Configuration minimaliste 🙂

Configuration de l’interface réseau

Il convient enfin de configurer l’interface WiFi du Pi avec une adresse IP fixe. Voici le contenu de mon fichier /etc/network/interfaces.

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 192.168.100.31
        netmask 255.255.255.0
        network 192.168.100.0
        broadcast 192.168.100.255
        gateway 192.168.100.1
        dns-nameservers 192.168.100.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
        address 192.168.103.1
        netmask 255.255.255.0
        network 192.168.103.0
        broadcast 192.168.103.255

J’en profite pour configurer l’interface ethernet afin de pouvoir prendre facilement la main sur le Pi en le connectant simplement sur mon LAN.

Initialisation du point d’accès WiFi au démarrage du Pi

Si vous rebootez votre Pi dans l’état, vous constaterez que votre interface WiFi n’a pas d’adresse IP ce qui rend impossible la connexion d’un client WiFi au point d’accès. Il convient donc de créer un petit script d’initialisation, /etc/init.d/ap.sh, qui démarre hostapd et donne une adresse IP statique à l’interface réseau WiFi :

#!/bin/bash

### BEGIN INIT INFO
# Provides:          ap
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Init access point
# Description:       Init access point
### END INIT INFO

service hostapd start
ifconfig wlan0 up
ifconfig wlan0 192.168.103.1

Il suffit ensuite d’ajouter le script au démarrage du Pi grâce à la commande update-rc.d :

cd /etc/init.d
chmod 755 ./ap.sh
update-rc.d ap.sh defaults

Voilà ! A chaque démarrage du Pi, le point d’accès est initialisé et vous pouvez vous y connecter depuis n’importe quel périphérique WiFi 🙂

Liens utiles :

Création d’un hotspot wifi sur votre RPI

3 – Installation du système

raspbian_logo_tinyA nouveau, je choisi Raspbian pour faire tourner mon Raspberry Pi. Téléchargement de la dernière version ici Raspbian “wheezy”, puis installation de la carte SD en suivant le tuto du site elinux.org. On commence à avoir l’habitude, donc je passe rapidement sur ces étapes…

A noter qu’il existe une version dérivée de Raspbian, optimisé pour MPD, mais je préfère conserver une Raspbian standard, et faire la conf moi même.

Raspi-config

Après l’installation de la Raspbian, un passage par raspi-config est indispensable :

raspiconfig

  • Expand Filesystem : permet d’étendre la partition racine à la taille de la carte mémoire afin de pouvoir exploiter tout l’espace disponible
  • Internationalisation Options -> Change Keyboard Layout : permet de sélectionner un clavier AZERTY
  • Advanced Options -> Hostname : Ce Pi sera baptisé Carpo 🙂
  • Advanced Options -> Memory Split : permet de définir la mémoire allouée au chipset graphique (n’ayant besoin que d’une interface en ligne de commande, 16Mo suffiront)
  • Advanced Options -> SSH : On active SSH

Installation des paquets

Avant tout, et comme d’habitude, on met à jour l’ensemble des paquets existants :

apt-get update
apt-get upgrade

Une fois l’opération terminée, on installe les paquets nécessaires :

apt-get install vim mpd dnsmasq hostapd
  • vim : Editeur en ligne de commande
  • mdp : Music Player Daemon
  • dnsmasq : serveur DHCP
  • hostapd : permet de créer un point d’accès wifi

ATTENTION : Dans la grosse majorité des cas, le paquet hostapd fonctionnera bien avec votre carte Wifi. Or, mon dongle Wifi NetGear WNA1000M n’est pas supporté par le driver nl80211.

Hostapd pour chipset RTL8188

Il existe une version de hostapd qui supporte le chipsset RTL8188 de mon dongle WiFi. Vous pouvez le télécharger ici : RTL8188-hostapd-1.1.tar

Téléchargez le sur votre Pi, décompressez la tarball, compilez et installez :

tar -xzf ./RTL8188-hostapd-1.1.tar.gz
cd ./RTL8188-hostapd-1.1/hostapd
make
make install

L’installation est relativement longue, mais tout se passe sans problème.

C’est tout pour l’installation 🙂 Il nous reste un peu de configuration à faire, et le tour sera joué 🙂

1 – Raspberry Pi Car JukeBox

Depuis quelques temps déjà, j’utilise un Raspberry Pi en tant que JukeBox dans mon salon. J’utilise MPD (Music Player Daemon) pour jouer la musique. Le Pi est directement relié au réseau par éthernet et un DAC (Digital Analog Converter) (pour ceux que ça intéresse, il s’agit d’un Cambridge DacMagic très bien supporté par le Pi) fait l’interface entre le Pi et l’ampli HiFi. Montage très simple à mettre en place ; ça m’a pris une grosse demie-heure, installation de la Raspbian comprise…

IMG_4761

Aujourd’hui, je vais faire la même chose, mais dans ma voiture 🙂

Objectifs

  • Garder l’autoradio d’orignie
  • Ne pas avoir à manipuler de câbles pour contrôler la musique
  • Pilotage de MPD par smartphone via WiFi

Note : Rien ne me force à garder mon autoradio d’origine. C’est simplement une question de budget, et parce que je préfère concerver les fonctionnalités existantes.

Le matériel nécessaire de base

Client MPD

432-1-mpodIl existe de nombreux clients pour piloter MPD à distance (GMPC notamment, que j’utilise tous les jours). Sur mon smartphone et ma tablette, j’utilise l’appli MPoD qui fonctionne très bien 🙂

IMG_4762

A noter qu’il existe également de client en PHP. Il est donc tout à fait possible d’installer Apache et PHP sur le Pi, et de se connecter à ce type de client web avec un navigateur standard (sans avoir besoin de passer par un client lourd, ou une appli dédiée). Voici une liste complète des clients existants : http://mpd.wikia.com/wiki/Clients

12 – En résumé

IMG_4746

J’ai pris énormément de plaisir à réaliser ce dispositif de TimeLapse totalement « home made ». Le Raspberry Pi est un jouet vraiement excellent avec lequel on peut pratiquement tout faire 🙂

Après plusieurs semaines de tests, le système fonctionne parfaitement bien. Je le lance le dimanche, et il commence son travail le lundi à 8h00. Je reçois des mails toutes les 1/2 heure jusqu’au vendredi 18h00. Le système continu de fonctionner jusqu’à épuisement total de la batterie du Pi, le samedi dans l’après midi, ce qui me laisse une marge confortable 🙂

Un grand merci à mon P’pa pour le circuit de tempo, sans lequel le système complet n’aurait pas pu fonctionner 🙂 Sacrifiant soirées et week ends, devant se replonger dans ses connaissances en électroniques 🙂

J’ai hâte de voir le résultat final de la construction de la maison, RDV en fin d’année 😉

En bref

Un système TimeLapse communicant à base d’un Raspberry Pi. Capable de prendre une photo toutes les 10 minutes en journée, sur une semaine complète, en parfaite autonomie.

Le matériel au complet (environ 256€ au total) :

  • Raspberry Pi modèle B 39€
  • Carte mémoire SDHC Kingston 32Go 21€
  • Boitier Adafruit 10€
  • Webcam Logitech C525 36€
  • Dongle 3G Huawei E220 40€
  • Batterie 5V TeckNet iEP389 9000mAh 39€
  • Boite plastique 6€
  • Légos, estimés à 15€
  • Circuit de tempo fait maison, composants estimés à 30€
  • Batterie plomb 12V 20€

Technos et logiciels utilisés

Raspberry Pi

  • Linux, Raspbian
  • Streamer
  • Imagemagick
  • Wvdial
  • CURL
  • Script Bash

Serveur de monitoring

  • Linux, Debian
  • Apache
  • MySQL
  • PHP
  • Sendmail

Sommaire

Forums de discussion