Véritable Radio Réveil Raspberry avec Radio Internet et ecran LCD

Aztiau532eyooecba3gu

Difficulté:

Concept : “Avoir un radio réveil simple, autonome et intuitif”


Radio reveil Raspberry PI avec affichage LCD et seulement 1 bouton pour la navigation.
Désactivation du Wifi automatique au bout de 5 minutes si la radio ne fonctionne pas.


C’est un projet que j’ai fait il y déjà 2 ans. Je n’ai jamais eu le temps de le mettre sur écrit pour en faire profiter la communauté du rasp, mais le petit concours oui are makers, m’a donné envie de la partager.


Ce projet de radio reveil est en prod dans ma chambre depuis 2 ans, et je ne l’ai jamais rebooter, seulement quand il y a des coupures électriques chez moi ;-).
(Edit : J’ai du changer de carte SD au bout de 1 et 1/2 car elle s’abime très vite à cause de l’ecriture…causé par les fichiers log du systeme, mais resolu avec l’optimisation des log en memoire avec notre ami korben : http://korben.info/raspberry-pi-allonger-la-duree-de-vie-de-vos-cartes-sd.html)


Dans la navigation par menu sur le radio reveil, on peut régler l’heure/minute de l’alarme, l’activer ou la désactiver.
Lire les radios Internet, utiliser le mode timer pour éteindre la radio au bout de 30 minutes.
Un snooze de 10 minutes quand l’alarme se déclenche.
Désactivation automatique du wifi si la radio est éteinte(réactivation automatique)
Et tout simplement éteindre le rasp en mode propre (shutdown –h now)


C’est très simple, intuitif et hyper efficace.


Mon seul (petit) regret est d’avoir un trop petit écran LCD. Lorsque je l’ai acheté sur internet, je pensais qu’il était beaucoup plus grand 😉

Matériel

H9h0rop89itczr8n2qjg

Budget:

70 €

1 Raspberry PI : 27,40 € (09/2012)
1 petit LCD SPI OLED 128×32 chez Adafruit : 17,50 $
1 petit dongle USB Wifi chez Adafruit : 11,95 $
1 encoder rotatif (breakout board) chez Snootlab : 13 €
1 enceinte Fantec PS10AJ à 16 € ( chez SAB International)
Quelques petits câbles de connexion > 1 €
1 boite maxicoffee en carton (gratuite) 😉

Etape 1 : PREPARATION DU SYSTEME

Il vous faut au minimum :
– Raspberry avec Port Ethernet
– Un chargeur microUSB
– Un cable RJ45
– Un ordi avec internet

Préparation Carte SD

Tout d’abord, une bonne raspbian dispo ici :
http://www.raspberrypi.org/downloads/

Je suis sur une Raspbian wheezy 2014-12-24 en version 3.12

On telecharge Win32 Disk Manager
http://sourceforge.net/projects/win32diskimager/?source=typ_redirect

On l’install et on le lance en mode Administrateur (clic droit sur le programme)
On selectionne le bon device (la lettre du lecteur sdcard)
On selectionne le fichier .img precedement decompréssé
Et on lance le write.

Dès que l’img est copié, vous pouvez mettre la sd dans votre raspberry.

Installation avec un (ecran + clavier) ou Install à distance

1 Installation avec Ecran et Clavier, on pouvez suivre ce très bon tutorial.
http://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/

2 Instalation à distance sans ecran ni clavier, vous pouvez suivre ce très bon tutorial aussi.
http://jeyg.info/installer-raspbian-sur-raspberry-pi-sans-ecran-ni-clavier/

Normalement votre raspberry est maintenant installé et vous avez le clavier en FR, la partition agrandi et le ssh activé.

Installation des packages

Si vous voulez eviter de faire un sudo avant chaque commande..

sudo -s
et hop, vous passez en mode root….(désolé, j’ai de trop mauvaises/vielles habitudes 😉

On install la librairie GPIO – WiringPI pour controler les GPIOs

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
cd ..

apt-get install python2.7-dev
apt-get install python-pip
pip install wiringpi2

On install la librairie SPI pour communiquer avec le petit LCD SSD1306

git clone git://github.com/doceme/py-spidev.git
cd py-spidev
python setup.py build
python setup.py install
cd ..

On install la librairie Gaugette qui permet de facilement controler le lcd SSD 1308 et le rotary encoder

git clone git://github.com/guyc/py-gaugette.git
cd py-gaugette
python setup.py install

Maintenant on install mpc et mpd et alsaaudio

apt-get install mpc
apt-get install mpd
apt-get install python-alsaaudio

et on install les radios

SOMAFM – shoutcast
mpc add http://mp1.somafm.com:8800
FIP
mpc add http://mp3.live.tv-radio.com/fip/all/fiphautdebit.mp3
Radio NOVA
mpc add http://broadcast.infomaniak.net/radionova-high.mp3
Radio Classique
mpc add http://broadcast.infomaniak.net:80/radioclassique-high.mp3
France INTER
mpc add http://mp3.live.tv-radio.com/franceinter/all/franceinterhautdebit
RTL
mpc add http://ais.rtl.fr:80/rtl-1-44-128
mpc save RADIO (pour sauver les radios dans un fichier RADIO.m3u dans /var/lib/mpd/playlists)

Pour faire un petit test, connectez des enceintes et tapez :

mpc play 1

pour info :

amixer cset numid=3 1
(va sortir le son sur le jack 3.5)

amixer cset numid=3 2
(va sortir le son sur le hdmi)

INSTALLATION DE LA CLE WIFI
on branche la clé usb wifi dans le rasp et on le redemarre

vi /etc/network/interfaces
#———————-
auto lo
iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid “le nom de votre reseau wifi”
wpa-psk “votre mot de passe”
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
#———————–

Ensuite restart de l’interface réseau
ifdown wlan0
ifup wlan0

Et si vous faites un ifconfig, vous devriez voir vos 2 cartes reseau eth0 et wlan0
En cas de probleme, google est ton ami avec “raspberry wifi”

ACTIVATION DU BUS SPI SUR LE RASP (Serial Peripheral Interface)

On desactive le blacklist du bus SPI pour communiquer avec le petit LCD SSD1306

vi /etc/modprobe.d/raspi-blacklist.conf
Ajouter un # devant la ligne blacklist spi-bcm2708
reboot

Le bus SPI est maintenant activer

Etape 2 : BESOINS AVANT CABLAGE

Zkfhx94sy3b0qrvkncwc


Il vous faut au minimum :
– un lcd SSD1306 dispo chez Adafruit : http://www.adafruit.com/product/661
– Un rotary encoder dispo chez snootlab : http://snootlab.com/lang-en/snootlab-shields/337-encodeur-rotatif-24-positions-noir-breakout-board.html
– des petits cables de connection femelle

Etape 3 : CABLAGE

Rhrokoeo3uw0wvrix71l


connectez vos cables suivant ce cablage (important pour ne pas griller le rasp et surtout pour faire fonctionner le programme en python)

A savoir

Pour le bouton encoder sachez que :
GND = masse = cable noir
VCC = 3,3v = cable rouge
CHA = Channel A = cable jaune
CHB = channel B = cable orange
SWI = bouton poussoir = cable blanc
Pour l’ecran lcd, vous avez juste à cabler comme indiqué.

Etape 4 : LANCEMENT (VeritableRadioReveil.py)

Zhewugk9xuy2vxkjrxv1


Vous êtes bon maintenant ?
n’oubliez pas de brancher des enceintes sur le port jack 3.5

Telechargement du programme

Allez, vous pouvez demarrer votre raspberry et vous connecter ssh
Vous pouvez faire un :

wget http://knarou.megaplog.com/VeritableRadioReveil.py

et le lancer avec :

sudo python VeritableRadioReveil.py

Normalement, vous devriez voir l’heure sur le petit ecran.
Vous pouvez appuyer sur le bouton pour voir le menu
Vous pouvez tourner le bouton pour augmenter ou diminuer le volume
Je n’explique pas le reste, car normalement c’est très intuitif 😉

Lancement automatique au demarrage.

Si vous voulez le lancer automatiquement au demarrage du rasp

vi /home/pi/VeritableRadioReveil.sh
#!/bin/bash
sudo python /home/pi/VeritableRadioReveil.py

chmod 777 /home/pi/VeritableRadioReveil.sh

vi /etc/rc.local
sudo /home/pi/VeritableRadioReveil.sh

4 – AMELIORATION & CONCLUSION

Je vous encourage fortement à critiquer ce tutorial dans le but de l’améliorer et de corriger les erreurs.
Ce tuto m’as pris pas mal de temps, mais c’est juste un retour à l’envoyeur. Car moi même j’ai pu avancer grace à des personnes qui ont pris du temps pour faire des tutos.

Pour toutes remarques, veuillez me contacter via fabrice@mounin.com

J’ai pleins d’autres idées sur l’evolution du programme. je suis en train de refléchir avec une version 2.

Amélioration du programme
Changer d’ecran LCD pour un plus grand
Construire une vrai boite en bois ou plexi

Vous aimez ce tutoriel ?


yar0d

07 juil. 2016 à 10:25

Excellent tuto ! Tu m'a donné l'envie de coupler ça à un écran tactile pour me faire mon propre réveil 🙂

Quel modèle de raspberry as-tu utilisé ?

janolafrite

25 jan. 2017 à 14:04

Salut, T'as pris quel écran tactile pour faire ça ?

yar0d

07 juil. 2016 à 10:25

Le gros plus serait de le mettre sur batterie (couplé à un Adafruit powerboost 1000C ?) et la tu deviens “panne-de-courant-proof” 😉

knarou

07 juil. 2016 à 10:25

Bonjour Yar0d,

Merci beaucoup pour le commentaire, l’écran tactile était prévu pour la version 2, mais je n'ai pas encore trouvé le temps pour le faire (l'hiver approche 😉 . Mais en gros, si les librairies existe en python pour piloter l’écran tactile, la modification du programme serait assez simple à faire.

Pour le modele du raspberry, c'est le modele B

knarou

07 juil. 2016 à 10:25

Excellent, je ne connaissais pas le produit. Merci

Ipxav

07 juil. 2016 à 10:25

Merci pour le détail ! Super tuto ! @yarod merci pour l'info pour protéger de la panne de courant.

knarou

07 juil. 2016 à 10:25

Merci, très bonne idée que de remplacer l'ancien radio reveil.

En plus il est presque WAF (Wife Acceptance Factor) 😉

knarou

07 juil. 2016 à 10:25

Merci du retour !

Bon ben, si jamais je gagne un ecran tactile, je crois que je vais etre obligé de refaire le DEV et le tuto.

Finalement, je ne sais pas si c'est une bonne idée de gagner 😉

janolafrite

25 jan. 2017 à 14:14

je voudrais savoir comment on fait pour mettre un écran tactile a la place et aussi mettre une alarma a la place de la radio.

Flowerpower

22 avr. 2018 à 17:34

J'ai quasiment la même question que janolafrite ... comment faire fonctionner un écran de 3,5 chinois sur ce genre de projet ?


Recevez une fois par mois les meilleurs tutoriels Technologie dans votre boîte mail




S'inscrire:


  • Vues totales: 14465
  • Vues uniques: 3808
  • J'aime: 12