Cet article fait partie de la série Domotique (18 articles au total)

La plupart des amateurs du RaspberryPi ont déjà eu vent de la nouvelle : en juillet 2014, la fondation Raspberry a sorti un nouveau modèle de son ordinateur à 35€, je veux bien sûr parler de la mouture « B plus » du RaspberryPi. Même si les nouveautés ne sont pas extraordinaires, il y a quand même quelques points d’attention qui m’ont poussé à migrer ma solution domotique sur ce modèle !

Quelles nouveautés sur le RaspberryPi B+ ?

  • 4 ports USB, et l’alimentation de ceux-ci peut désormais monter à 1.2A
  • Adieu la carte SD qui dépasse : On passe à une micro-sd qui est beaucoup plus discrète une fois en position
  • Consommation électrique plus faible : On parle ici de 0.5 à 1W de moins. Ca ne métamorphosera pas votre facture EDF,  mais pour un ordinateur qui en consommait 3-4W, cela fait une belle marge de progression !
  • Plus de pins GPIO : On passe de 26 à 40 pins, ce qui autorise une connectique plus riche. La compatibilité devrait être assurée avec la majorité des cartes utilisant l’ancien port 26 pins. Je dis la majorité car le connecteur P5 ayant été déplacé, les cartes qui en tiraient parti comme la Wolfson Audio card devront évoluer pour fonctionner sur ce modèle.
  • Circuit audio amélioré : rappelez-vous, je m’en plaignais et , la fondation a donc travaillé le sujet. Alors certe on n’égalera certainement pas les performances de la carte de chez Wolfson mais c’est toujours un pas en avant !
  • Intégration facilitée : On retrouve désormais 4 points de montage, disposés en rectangle, et les connecteurs USB ont enfin été alignés !
Le RaspberryPi modèle B+ Face au modèle B

Le RaspberryPi modèle B+ Face au modèle B

Quel intérêt pour domoticz ?

En fait c’est un ensemble de petites choses qui m’ont incité à franchir le pas. Si vous avez lu la description des différences avec le modèle B vous les aurez peut-être devinées :

  • une consommation électrique plus faible
  • les 4 ports USB natifs permettent désormais de brancher plus de 2 périphériques USB sans avoir recours à un hub
  • Et enfin… une meilleure portée avec le RFXCom ! Comment est-ce possible ? Auparavant, la limitation du courant disponible était telle que le rayon d’action du RFXCom était assez limité, et j’avais dû avoir recours à un hub USB alimenté séparément pour avoir une portée décente. Avec le modèle B+ du RaspberryPi, j’ai pu ranger mon hub dans un tiroir, sans voir mon RFXCom bridé.

Migration de domoticz du modèle B vers B+

Dans mon cas j’ai préféré partir d’une plateforme propre plutôt que de faire une copie complète de ma carte SD existante. J’ai donc installé la dernière version de Raspbian, une nouvelle instance de domoticz, et pour finir, j’ai utilisé la fonctionnalité de sauvegarde/restauration de base, accessible dans les options de domoticz. Tout a fonctionné à merveille, la bascule aura été bouclée en quelques minutes.

Le bouton qui vous permettra de sauvegarder données et config de Domoticz

Le bouton qui vous permettra de sauvegarder données et config de Domoticz

Si cela vous dit de faire le grand saut, vous trouverez le nouveau modèle de RaspberryPi sur Amazon et dans toutes les autres bonnes crèmeries habituelles ! Et pour la carte micro-sd j’ai opté pour ce modèle de chez Sandisk qui me donne entière satisfaction. N’hésitez pas à me faire part de vos retours dans les commentaires si vous tentez le coup !


Si vous lisez régulièrement ce blog, vous le savez : j’aime le RaspberryPi, j’aime la musique, et j’aime encore plus la combo des deux. J’avais expérimenté une première fois ce mariage dans le cadre de la remise au goût du jour d’un vieux poste radio T.S.F. mais il fallait bien reconnaître que si le RaspberryPi offre une grande souplesse d’intégration, sa partie audio analogique est d’un piètre niveau.

C’est là qu’entre en jeu Wolfson

Wolfson, si vous ne connaissez pas cette société, est une entreprise dont le coeur de métier est l’audio, et l’audio de qualité. Quand j’ai entendu parler d’une carte audio de chez eux à destination du RaspberryPi, je n’avais qu’une envie, la tester ! Ce souhait est devenu réalité grâce au distributeur Farnell, auprès duquel j’ai pu m’en procurer un exemplaire.

Présentation de la carte

Beaucoup de choses ont été dites sur cette carte, je vais vous récapituler ici l’essentiel :

  • Elle s’enfiche sur le RaspberryPi (utilisant le port GPIO et le connecteur P5)
  • Elle coûte un peu moins de 30 euros
  • Elle offre une connectique complète en matière d’audio

 

La Wolfson Audio Card installée sur un RaspberryPi

La Wolfson Audio Card installée sur un RaspberryPi

Et oui, cette carte audio a beau faire la taille d’une demi-carte de visite, elle offre néanmmoins une belle connectique :

  • Une entrée analogique mini-jack
  • Une sortie analogique mini-jack
  • Un connecteur mini-jack à 4 contacts pour un combo micro/casque (comme sur les smartphones)
  • Une entrée numérique SPDIF
  • Une sortie numérique SPDIF
  • Un petit amplificateur intégré pour brancher 2 haut-parleurs (Attention, soudure obligatoire, et il faudra également alimenter la carte séparément pour cet usage)
  • Deux micro numériques
Détail des entrées/sorties de la carte Wolfson

Détail des entrées/sorties de la carte Wolfson

Qualité de son

En matière d’audio analogique, le RaspberryPi partait de loin : son nasillard, craquement lors de changement de piste, pas de micro, pas de sortie audio numérique séparée du HDMI… La carte Wolfson vient combler tous ces désagréments ! J’ai effectué mes tests avec mon ampli de salon, mais aussi avec un petit ampli de classe T à 20€ et dans un cas comme dans l’autre, la qualité du son produit est exemplaire ! Au niveau des fonctions annexes, j’ai également pu y brancher le kit piéton de mon smartphone et profiter aussi bien du micro que de la sortie casque sans soucis.

Pour les makers, je vois pas mal de champs d’application à cette carte : radio internet, téléphone VoIP, station de notifications… Les possibilités sont nombreuses et comme souvent dans ce domaine, la seule limite restera votre imagination :)

Configuration

Parlons maintenant des sujets qui fâchent, à savoir la configuration de la carte, ou plus précisément l’installation de ses pilotes. Si vous souhaitez utiliser cette carte, 2 choix s’offrent à vous : utiliser une distribution pré-configurée (comme celle officielle proposée par Farnell ou bien encore la distribution Volumio que j’ai découverte lors de mon test), ou alors patcher et recompiler le noyau de votre distribution (et ça, c’est beaucoup moins fun).

Des rumeurs promettent l’intégration des drivers de la carte dans une future version de Raspbian mais je n’ai pas vu de grande avancée de ce côté. Et que vous choisissiez la distribution pré-configurée ou le noyau maison, vous allez devoir rester sur une version figée de votre noyau, ce qui est loin d’être idéal en matière de support et de sécurité !

Quel avenir pour la carte ?

A l’heure où je termine cet article, une nouvelle version de Raspbian (sans les drivers de la carte) est sortie, et le modèle de RaspberryPi m’a servi dans mes tests (modèle B) risque de se raréfier au profit du modèle B+, tout simplement incompatible avec la carte son de chez Wolfson… Il va donc falloir de l’activité aussi bien sur le plan matériel que logiciel pour que l’utilisation de cette carte soit pérenne.

Cerclé de rouge, le connecteur P5 utilisé par la carte Wolfson. Ce connecteur n'est plus disponible sur le modèle B+ du RaspberryPi

Cerclé de rouge, le connecteur P5 utilisé par la carte Wolfson. Ce connecteur n’est plus disponible sur le modèle B+ du RaspberryPi

En conclusion

On a là un bon produit qui tient ses promesses au niveau matériel mais qui demande de solides connaissances au niveau logiciel pour en profiter pleinement. Si vous voyez la recompilation du noyau linux comme l’entrée des portes de l’enfer, peut-être qu’une carte son nativement supportée par Raspbian comme l’Hifiberry serait plus appropriée. Pour ma part, je pense tout de même l’utiliser pour mon prochain projet audio à base de RaspberryPi ! Enfin je remercie Farnell pour m’avoir donné l’opportunité de jouer avec !

Quelques liens utiles au sujet de cette carte qui peuvent vous intéresser


Si comme moi vous cherchiez une clef wifi compacte et pas chère pour votre RaspberryPi, vous avez peut-être choisi la clef TP-Link TL-WN725N que l’on trouve sans mal pour 5-7€ dans les bonnes crèmeries. Contrairement à d’autres clefs wifi que j’ai pu utiliser sur la même configuration, celle-ci n’est pas reconnue de manière « auto-magique ».

Voici donc comment résoudre le problème ! Rien de super compliqué mais cela nécessite quelques commandes dans le terminal, donc si cela vous effraie, peut-être serait-il plus sage de remplacer cette clef par un modèle plug and play, comme la Edimax EW-7811UN ! Pour les barbus, on va installer le driver de la clef TP-Link kivabien©, toute la difficulté va être de trouver lequel !

Note du 02/06/2015 : Si vous possédez un RaspberryPi V2, la méthode à suivre est un peu différente, vous trouverez les explications ici.

Les pré-requis

Comme je vous le disais en intro, pour suivre ce petit tutoriel, il faut :

  • avoir la clef wifi TL-WN725N V2 (il existe une V1 également mais à ma connaissance elle ne se vend plus)
  • être sur Raspbian
  • avoir un accès à un terminal (soit en direct, soit via SSH)
  • être connecté au net (sinon il vous faudra récupérer le driver depuis une machine connectée)

Un driver adapté à votre version du noyau

A chaque version du noyau linux correspond un driver différent pour cette clé wifi. Il va donc falloir trouver lequel ! Pour connaître votre version du noyau, il faut utiliser la commande uname -a

Dans l’exemple ci-dessus, on voit que j’ai la version 3.12.19+ #682, mais ce sera peut-être différent chez vous ! Notez au passage que la commande rpi-update permet de mettre votre RaspberryPi à jour. Je suis ainsi passé de 3.10.25+ à la version 3.12.19+.

Un utilisateur du forum du raspberrypi a pris le soin de compiler un driver pour chaque version du noyau. Suivez donc ce lien pour trouver le nom du fichier associé à votre version du noyau.

Dans mon cas, il s’agit donc du fichier 8188eu-20140509.tar.gz qui correspond à la version du noyau que j’ai (3.12.19+ #682).

Du coup sur votre RaspberryPi, vous aurez les commandes suivantes à entrer (n’oublier pas de remplacer NOM_DU_FICHIER par le nom du fichier correspondant à votre version du noyau).L’adresse de téléchargement du fichier sera la suivante : https://dl.dropboxusercontent.com/u/80256631/NOM_DU_FICHIER

Et voilà ! Au prochain démarrage, vous devriez voir apparaître la clef dans la liste de vos interfaces réseau (la liste s’affiche grâce à la commande ifconfig). Chez moi c’est le nom wlan0 qui lui est attribué.

Ensuite il n’y a plus qu’à configurer votre réseau wifi !

 


Cet article fait partie de la série Domotique (18 articles au total)

Après les dernières aventures matérielles pour piloter nos chauffages électriques, je vous propose un épisode où l’on gardera les mains propres :) Aujourd’hui, on va implémenter un thermostat logiciel qui va permettre de maintenir une pièce à une température donnée. Pour cet épisode, vous n’aurez même besoin d’aucun matériel supplémentaire !

Cet article est le 6ème d’une série dédiée à la domotique dont vous pourrez trouver le sommaire au bas de cet article.

Le principe du thermostat de chauffage

Dans chacune de mes pièces, j’ai une sonde de température (cf Episode 2), ainsi qu’un chauffage électrique (cf Episode 4). L’objet de l’exercice du jour sera donc d’asservir le chauffage à cette sonde : on va donc l’allumer ou l’éteindre en fonction de la température mesurée dans la pièce ! Pour éviter que le chauffage passe son temps à s’allumer et à s’éteindre, on va ajouter une « marge d’erreur » (on appelle cette marge l’hystérésis). Concrètement, si l’on souhaite maintenir une pièce à une température de consigne de 20°C et que l’on choisit une hystérésis de 0.5°C, on va allumer le chauffage quand la température va passer en dessous de 19.5°C et l’éteindre au delà de 20.5°C.

L'évolution de la température d'une pièce avec une régulation par hystérésis. Ici on cible une température de 20°C avec une marge d'erreur de 1°C

L’évolution de la température d’une pièce avec une régulation par hystérésis. Ici on cible une température de 20°C avec une marge d’erreur de 1°C. (Crédits : domotique-store.fr)

Mon cahier des charges

J’ai choisi de commencer avec quelque chose de simple.

  • Un interrupteur virtuel pour chacune de mes pièces dans Domoticz.
  • Le thermostat de la pièce en question sera actif quand l’interrupteur virtuel sera en position ON.
  • La température de consigne n’est pas modifiable directement depuis l’interface de Domoticz
  • La techno utilisée ne supportant pas le retour d’état, je cherche un moyen de fiabiliser le système

La mise en oeuvre

Etape 1 : Créer l’interrupteur virtuel

Si vous ne l’avez pas déjà fait, dans la partie Configuration/Matériel de Domoticz, ajouter un périphérique de type « Dummy ». Tous nos interrupteurs virtuels y seront rattachés.

Périphérique virtuel auquel seront rattachés nos interrupteurs virtuels

Périphérique virtuel auquel seront rattachés nos interrupteurs virtuels

Dans l’onglet « Interrupteurs », cliquez sur « Ajout manuel » et ajoutez un interrupteur ON/OFF du type qui vous plaira (seul impératif : le rattacher au périphérique « Dummy » créé précédemment).

Création d'un interrupteur virtuel. Les valeurs sélectionnées (Type, Code...) n'ont pas d'importance.

Création d’un interrupteur virtuel. Les valeurs sélectionnées (Switch Type, Unit Code…) n’ont pas d’importance.

A partir de ce moment, vous avez un bel interrupteur, en l’occurrence « Thermostat salon », que vous pouvez allumer et éteindre à loisir ! Rajoutons un peu de magie derrière tout cela ;)

Interrupteur virtuel finalisé. Il ne reste plus qu'à animer tout cela !

Interrupteur virtuel finalisé. Il ne reste plus qu’à animer tout cela !

Etape 2 : Création du script

Domoticz permet d’écrire des scripts LUA pour exécuter de petits scénarios. Aujourd’hui on va justement s’en servir pour implémenter cette logique de thermostat ! Chaque script est à placer dans le répertoire scripts/lua de domoticz. Pour cet exemple, j’ai donc créé un fichier script_device_thermostat-salon.lua dans ce dossier (le nom du fichier doit impérativement commencer par « script_device_ » comme expliqué dans le wiki de domoticz).

Le contenu du fichier

Pour adapter ce script à votre installation, il suffit de modifier les quelques variables entre les lignes surlignées en jaune (8 à 12).

Comment le script fonctionne ?

Chaque fois qu’une nouvelle valeur est reçue de la part de la sonde du salon (et si l’interrupteur virtuel du thermostat est actif), on compare la température actuelle de la pièce à la température de consigne (+ ou – l’hystérésis). Si nécessaire on allume le radiateur (en coupant le signal sur le fil pilote) ou on lui demande de s’éteindre (en envoyant un signal sur le fil pilote).

Le fait que le script soit rattaché à un interrupteur est super pratique. Déjà cela permet de lancer le thermostat en 1 clic, mais surtout cela permet d’y associer des plannings, pour faire en sorte par exemple que le chauffage se coupe la nuit, qu’il se mette en route 1h avant votre retour du travail etc…

Quelles améliorations ?

Ce système a le mérite de fonctionner, je l’ai mis en œuvre tout cet hiver mais il existe plusieurs améliorations possibles :

  • utiliser un algorithme de régulation plus performant (thermostat à base de régulateur PID par exemple)
  • prendre en compte la gestion de plusieurs sondes/radiateurs par pièce (pour les grandes pièces)
  • fournir à l’utilisateur la possibilité de spécifier sa température souhaitée dans l’interface de Domoticz, plutôt que dans le script

Voilà, j’espère que cet article vous aura plu et vous donnera envie d’aller encore plus loin dans la domotique ! N’hésitez pas à partager vos pensées et questions dans les commentaires.


Cet article fait partie de la série Reelapi (2 articles au total)

Cela fait maintenant quelques mois que j’ai écris cet article montrant comment j’avais marié une radio des années 50 et un RaspberryPi. Depuis, j’ai effectué quelques petites modifications dessus et je me suis dis qu’il était temps de les partager ici !

Nouvelle alimentation

Souvenez-vous, j’avais commencé par utiliser une alimentation d’un kit pour disque dur, proposant à la fois du 5V (pour le RaspberryPi) et du 12V (pour l’ampli) avant de finalement tout brancher en 5V ! Du coup, utiliser une alim si particulière n’avait aucun intérêt ! J’ai donc changé mon fusil d’épaule et j’ai opté pour une alim 5V acheté 3,5€ sur Dealextreme (sont forts ces chinois).

Alimentation de chez DX capable de transformer du 220V AC en 5V DC (2A max)

Alimentation de chez DX capable de transformer du 220V AC en 5V DC (2A max)

En quelques minutes le remplacement aura été fait. Cette nouvelle alim est plus compacte, plus stable (un petit potentiomètre permet de régler à l’aide d’un tournevis la tension désirée en sortie) mais surtout elle ne vient plus parasiter le signal audio comme le faisait la précédente ! Que du bon donc !

La nouvelle alimentation en place à la place de l'ancienne (la noire)

La nouvelle alimentation en place à la place de l’ancienne (la noire)

Un ampli un peu trop puissant

Bien que mon ampli ne soit pas un monstre de puissance, le son était bien trop fort avec mon unique haut-parleur de 16cm. Au niveau ergonomie, cela se traduisait par un bouton de volume très sensible, et au final, je n’utilisais que 20% de la course disponible du bouton (je n’ai jamais essayé de le tourner à fond, de peur d’endommager le haut parleur).

La réponse à ce soucis se trouvait sur le schéma de l’amplificateur.

Schéma de l'amplificateur. On voit dans la bulle les 2 configurations possibles du jumper

Schéma de l’amplificateur. On voit dans la bulle les 2 configurations possibles du jumper JP1

On voit qu’un cavalier (jumper), JP1 de son petit nom, permet de modifier la puissance d’amplification (26dB ou 46dB). Par défaut il est en position 46dB et il faut donc l’enlever pour passer à 26dB.

Photo de l'ampli. Le jumper JP1 n'est autre que le petit cavalier noir à gauche des 4 condensateurs.

Photo de l’ampli. Le jumper JP1 n’est autre que le petit cavalier noir à gauche des 4 condensateurs.

Une fois le jumper retiré, je peux à nouveau utiliser toute la course de mon bouton de volume ! Je ne crains plus pour mon haut parleur et j’ai également l’impression d’avoir gagné en clarté du son !

Adieu MPD (Music Player Daemon)

Là je touche une corde sensible :) J’étais assez content de mpd, le logiciel de lecture de musique que j’avais présenté dans l’article d’origine. Malheureusement, il a quelques défauts qui m’ont incité à tester autre chose, notamment :

  • l’impossibilité de gérer nativement mes podcasts (j’en écoute de plus en plus)
  • l’obligation de devoir rajouter à la main mes webradios dans un fichier texte pour pouvoir les écouter
  • Des craquements disgracieux se faisaient entendre lors du passage d’une chanson à l’autre (assez agaçant)

Notez que ce dernier point est en partie dû à la sortie audio analogique du RaspberryPi qui est de piètre qualité (bien que suffisante pour mon usage). Le fait d’arrêter/reprendre le flux sonore engendre ce genre de craquement, quel que soit le logiciel.

Bonjour au couple LMS + Squeezelite

Logitech fabrique (ou plutôt fabriquait) une excellente série de radios connectées, les SqueezeBox. Ces radios internet avaient comme particularité d’être assez souples dans leur utilisation en permettant de lire podcasts, fichiers MP3/OGG/Flac/etc, webradios (avec plusieurs milliers de webradios pré-enregistrées). Pour cela, ces radios se connectaient soit à un serveur de chez Logitech, soit à un serveur local avec le logiciel qui va bien : Logitech Media Server.

Coup de bol N°1 pour moi, des fans de cette ligne de radios connectées ont créé un logiciel linux permettant de profiter de toutes les fonctionnalités des SqueezeBox : Squeezelite. Coup de bol N°2, un amateur du RaspberryPi a créé une distribution dédiée à cet usage : SqueezePlug. Grâce à tout ça, en 15 minutes j’ai pu remplacer mon installation MPD par le couple SqueezePlay + LMS.

L'interface web de Logitech media Server

L’interface web de Logitech media Server

Les avantages, pêle-mêle

  • Ma radio gagne en fonctionnalités (Réveil, lecture de podcasts, des milliers de radios web disponibles en un clic, etc…)
  • Fini les craquements ! (car le logiciel maintient un flux audio constant sur la sortie son du RaspberryPi)
  • Possibilité de configurer ma radio depuis mon smartphone (via l’appli officielle SqueezeBox), mais aussi depuis mon PC (via Logitech Media Server).
  • Possibilité de faire du « multi-room » : si j’ai plusieurs RaspberryPi/SqueezeBox chez moi, je peux faire lire au premier une webradio, au second un podcast, etc… ou la même chose à tout le monde de manière synchronisée.
  • Possibilité d’intégrer le fonctionnement de la radio à mon ensemble domotique (car les SqueezeBox sont contrôlables par des requêtes HTTP)

Encore plein de choses à améliorer

Je ne sais pas si un jour j’aurai vraiment terminé cette radio, à chaque fois que je me pose la question « comment pourrais-je l’améliorer » je trouve bien une dizaine de réponses !

Parmi celles-ci, il y aurait bien :

  • Permettre de faire « play/pause, précédent, suivant » avec un des boutons inutilisés de la façade, sûrement à l’aide d’un encodeur rotatif
  • Concevoir une façade arrière un peu sympa qui permette de déporter les ports inutilisés du RaspberryPi (RJ45, USB), quelques voyants de fonctionnement, interrupteurs, etc…
  • Ajouter une entrée audio auxiliaire (et pourquoi pas un dock Apple ?)

Quoi qu’il en soit, tout fonctionne très bien, et j’écoute tous les jours France Inter sur cette radio ! Allez je vous laisse, il faut que j’écoute le dernier épisode de La Grotte du Barbu.

Ma petite radio qui me sert quotidiennement... Quelle sera sa prochaine mise à jour ?

Ma petite radio qui me sert quotidiennement… Quelle sera sa prochaine mise à jour ?