Emetteur/Recepteur infra rouge sur Raspberry

edited juillet 2013 in Le tuto du poivrot
J'ai envi de faire un tuto depuis un petit moment donc je vais me faire la main sur un petit montage assez simple que j'ai fait.

Problématique

Ma problématique, dans mon système domotique, est de contrôler mon système
audio visuel sans avoir 43 télécommandes sur la table.

J'ai donc une TV, une Freebox et un home cinema. Cependant pour les opérations les
plus courantes je n'ai besoin que de la télécommande de la Freebox. La TV ainsi que le home cinema ont seulement besoin d'être allumé ou eteind
(vous me direz, "Ouai mais le HDMI CEC ca existe", ouai ben pas sur mon home cinema...).

Le bonus : contrôler tout le système avec son téléphone ou avec sa tablette en créant une petite page web par exemple.


Solution

Ma solution : utilisé un bouton de la télécommande domotique Chacon pour mettre sous tension tout ce petit monde et par la suite lié l'extinction à d'autre événement : lors de l'appuie sur un bouton spécifique "Dodo", la tv s'eteind, le home cinéma s'eteind, toutes les lumières sous contrôle domotique s'eteignes et les lampe de chevet de la chambres s'allume.

Seule la partie lié à l'allumage/extinction infra rouge sera traité dans ce post, si le reste vous interesse je pourrais vous donner plus de détail.


Mise en oeuvre

Je me suis inspiré du tuto mis en ligne sur http://aron.ws/projects/lirc_rpi/.

Pour les feignasses je vais reprendre les éléments de cette page telle que je les aient mise en place.

Electronique

Alors
on commence par la partie éléctronique, je n'ai pas éxactement repris ce qu'avais faire Aron sur le tuto que j'ai suivi. Voici à peu pret comment je l'ai mis en oeuvre :

image

R4 dépend des LED que vous choisissez bien sûr. J'ai choisi d'alimenté le système directement via 'alimentation du raspberry car le tout ne sert que quelques milliseconde de temps à autres et ne pompe pas beaucoup de courant (et j'ai mis une alim de 2A sur mon raspberry). J'ai aussi ajouter un jumper pour activer ou desactiver le recepteur (à vous de voir si il vous est utile souvent ou non).

Partie Raspberry PI

Au moment ou je l'avais fait, LIRC ne contenait pas le module pour le raspberry, j'avais était obliger de le compiler, c'était chiant (très chiant) mais il semblerai que ce module ai enfin été inclu dans le package. Je vais donc vous la faire simple (mais non testé !).

Installez LIRC :

sudo apt-get install lirc
Editez le fichier /etc/modules :
lirc_dev
lirc_rpi gpio_in_pin=23 gpio_out_pin=22
Les pin GPIO sont donc paramètrage ici !
Il faut ensuite éditer le fichier /etc/lirc/hardware.conf  pour obtenir ceci :
########################################################
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
########################################################<br><br>
Puis redemarrer lirc :
sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start

Le test

Pour tester votre installation, vous pouvez executer la commande suivante :

sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0
Et presser n'importe quelle touche d'une télécommande en direction de votre recepteur, des informations s'afficherons à l'écran. N'oubliez pas de redemarrer le service lirc après.
Les commandes standard de LIRC sont ensuite disponible :
  • irrecord -d /dev/lirc0 lircd.conf
    permet d'enregistrer une serie de touche correspondant à une télécommande dans le fichier lircd.conf. Vous pouvez ensuite fusionner ce fichier au fichier lircd.conf se trouvant dans /etc/lirc/ pour utilisé les touches de votre télécommande
  • irsend send_once [NOM_DE_LA_TELECOMMANDE] [NOM_DE_LA_TOUCHE]
    permet donc de simuler l'appuie sur une touche d'une télécommande enregistrée (ce qui m'interesse).

Il y a sans doute d'autre commande mais ce sont celle que j'ai utilisé dans le cadre de mon projet. Vous pouvez à partir de la soit simuler l'appuie sur une touche d'une télécommande, soit faire reconnaitre une touche à votre raspberry et lié une action à cette touche (de bon tuto existe pour lié des actions à la récéption IR via LIRC sur google ;) )

Conclusion

C'est donc assez simple et sans trop de composant que l'on peut faire un emetteur recepteur IR pour raspberry. Quand on compare le tarif de ce genre d'outils sur les site de ventes de materiel domotique, c'est un gain non négligeable.

Pour ce qui est du "design" et de la connectique, j'ai fait un truc simple mais qui va très bien dans mon intérieur :

- j'ai soudé le tout sur une plaque d'essai cuivré (c'est un peu gore mais ca marche)

- j'ai utilisé un cable RJ45 pour faire la liaison entre mon boitier domotique (qui contient le raspberry) et le transmetteur. Je conseil d'ailleur l'achat d'une pince a sertir les prise rj45, ce connecteur est vraiment bien pour les "plugins" sur nos installation existante.

- le tout est enfermé dans un bol en bambou acheter chez IKEA dans lequel j'ai fait quelques trou à la Dremel pour les LED et le recepteur IR.


Quelques photos :

image
image
image
image
image
image
image
image

Commentaires

  • edited juillet 2013
    Super!
    Dommage que tu n'ai pas lié le transmetteur en sans fil mais j'imagine que ce n'est pas si simple.
    Est-ce que cela fonctionne avec n'importe quel diode?
    EDIT: tu ne parle même pas du matériel...
  • @Flink en effet j'y avait pensé, faire une liaison sans fil vers un arduino qui transmetterai le signal. Sur le papier se n'est pas très compliquer, le plus dur étant de s'interfacer avec LIRC mais je ne pense pas que ce soit très complexe. Dans mon cas ce n'était pas un besoin.
    Quitte à le faire sans fil par contre je pense que je me serai plutot penché vers un recepteur WiFi pour être au plus proche du marché actuel et pour pouvoir etre controler directement via un téléphone sans passé par le raspberry.
    De quel matériel parles-tu ? Etant donné que c'est mon premier tuto (et même si ça ne l'était pas) je suis ouvert au critique. Que manque-t-il selon toi ?
  • J'ai ajouté quelques images, si elle sont trop grosse je ferais un petit travail de reduction...
  • @liollury
    En fait je pensais plutôt faire ça avec un atmega. Utiliser un arduino juste pour ça c'est peut-être pas nécessaire. à moins que c'est ce que tu voulais dire... Je pense que du wifi serais plus compliquer à mettre en oeuvre et surtout plus coûteux. Surtout que en passent par le pi tu peux le diriger depuis l'extérieur via internet. 

    Je parle de tout les composants électronique (ou pas d’ailleurs) que tu as utilisé.
    De même, pour continuer dans la critique (je suis méchant Niakr Niark Niark :p) ça pourrais être bien de simplifier ton schéma (j'ai pas tout compris mais c'est sans doute moi qui suis encore une grosse quiche :p) et de préciser ce qui "sort" de ton module en bois. Je vois trois led IR mais au dessus je ne suis pas sur de ce que c'est. Je présume que c’est le récepteur mais suis pas sur.

    En tout cas j'adore la bouille que ça a. Ça me fais penser à une tête de robot. :)
  • edited juillet 2013
    @liollury Les images sont grandes :p, sinon pas mal le petit tuto.

    Au chargement, il images sont longues et grandes. Réduit les juste a la taille du post 
  • Ouai des que j'aurai un peu de temps je vais alleger les images.

    @Flink en effet le ptit bouiboui sur le dessus c'est le recepteur IR. C'est jamais évident de faire un montage qui ne fasse pas tache dans le decors d'ou l'idée du bol retourné !
    En terme de composant, je ne pensai pas qu'il y ai besoin de les detaillés, j'ai simplement pris des led IR (en me basant principalement sur leur degrès d'emission et leur intensité pour avoir une taux de réussite élevé).
    Le reste des composants mis à par les transistors (eux aussi standard) sont détaillés sur le schéma.
  • edited août 2013
    (Sait-on jamais :p)

    Salut liollury,

    j'ai moi même l'ambition de transformer mon raspberry en télécommande IR afin d'automatiser mes séances cinéma perso :)
    Après plusieurs recherches, j'en ai déduit ce schéma:
    image

    La partie réception fonctionne mais pas la partie émission. Je pense que le problème est matériel et non logiciel, car en regardant la LED avec mon portable la LED reste désespéramment éteinte lors d'une commande d'émission.

    Si ça peut aider, voilà une photo de IRL de mon montage

    image


    Une idée du problème?

  • ta résistance est male mise
    Tu ne peux pas mettre les deux bornes sur la même ligne de ta breaadboard
  • edited août 2013
    ...
  • edited août 2013
    Salut Flink,

    Si mes souvenirs de collèges sont exacts (dernière fois que j'ai fait de l'électro), le courant emprunte le chemin le plus facile, c'est ça? Donc, il passe directement dans la LED sans passer par la case résistance? Si c'est bien ça j'espère ne pas l'avoir grillé.

    Voilà le schéma corrigé. Plus d'erreur cette fois? :)
    image
  • Je ne suis pas un spécialiste en électro et même surement moins que toi mais je me souvient d'une question similaire sur un autre post où le fait de placer la résistance comme tu l'a fais était le problème d'après quelqu'un qui apparemment s'y connaissait beaucoup mieux (je sais plus qui c'est mais soit) et ça avais réglé le problème. Ça me parait logique vu que comme tu la met la (ta résistance) le courent passe par la résistance et en parallèle passe à coté. Test comme ça et dis moi si ça règle le problème.

    Au passage si un électronicien passe par ici qu'il me corrige si je dis des conneries.
    Encore une fois je débute en électronique.
  • Je ne suis pas un grand spécialiste, mais tu as raison Flink, le problème vient du câblage de la résistance (en gros elle ne sert à rien comme elle est câblée ici...).
    Décales ta résistance d'un rang et ça devrait être bon....
  • HEHE c'est que je deviens s bon :p
    Voilà mon jetage de fleurs est terminé :p
  • Testé et approuvé, merci beaucoup!!!!

    Par contre, sait-on jamais (bis), alors que je ne rencontre pas de problème avec mon ampli, le vidéoprojecteur lui (BenQ W1070), refuse de s'allumer (je n'ai pas testé les autres boutons). J'ai refais la procédure d'apprentissage deux fois mais rien n'y fait. Quelqu'un aurait déjà rencontré ce problème?
  • Non je n'ai pas encore fais ce genre de montage. Vérifie quand même au passage si émetteur est bien positionné par rapport à ton projo et essaie quand même d'autre boutons au cas où...
  • J'ai viré la résistance, ça fonctionne un peu mieux :) Je ne pense pas que ça pose de problème étant donné la durée des signaux envoyés.
    Je pars maintenant à la recherche d'une LED plus puissante. Je suis tombé sur celle là (je l'ai choisi par rapport au prix élevé): http://www.conrad.fr/ce/fr/product/185809/LED-dmission-IR-haute-performance
    Par contre 7€ de FDP pour une LED faut pas rigoler...

    Si quelqu'un à des avis sur la manière d'améliorer les signaux envoyé?

  • Bonjour à tous!
    Je reviens au news avec mon problème de puissance d'émission. J'ai acheté tout à l'heure des nouvelles led (1/2 de route pour 2 leds....) et problème, elles ne fonctionnent que sur 5v...
    J'aimerais donc savoir s'il était possible de contrôler le GPIO de 5v, ou alors s'il était possible de magouiller pour que cela fonctionne :)
    Merci beaucoup!
  • Salut,
    D'abord super tutoriel, il m'a bien servi. Voilà quelques mois que j'utilise mon émetteur/récepteur sur mon Pi qui me permet notamment de faire de la répétition IR (irexec lircrc).
    Or il y a quelques jours j'ai décider d'intégrer mon montage dans un boîtier pour faire plus propre et depuis j'ai un problème avec la réception ir. J'ai testé mon récepteur sur mon arduino et il fonctionne bien mais sur mon Pi plus rien.
    Pour voir les données brutes reçus, j'ai fait ça :
    <span style="font-family: Arial, Verdana;">sudo /etc/init.d/lirc stop</span>
    mode2 -d /dev/lirc0

    Comme résultat j'ai un flux continu de space et pulse. J'ai vérifier 15x le branchement (la seule modification matériel a été de rallonger les fils du récepteur), j'ai testé un autre GPIO en entrée et c'est pareil. J'ai remarqué aussi que si je débranche le récepteur et que je fais un mode2 -d /dev/lirc0 j'ai aussi un flux continu de pulse et space avec juste un fil sur le GPIO en entrée (qui fait antenne ?)

    La partie émission fonctionne elle très bien, franchement là je ne comprend pas et ne sais plus quoi faire. Vous avez une idée ?

  • @zycker as tu bien mi un condo entre vcc et gnd ? entre l'instabilité de l'alim et la grandeur de ton fil il est possible que tu ai des perturbations sur le signal, ce condo pourrais réglé une parti du probleme.
    Ensuite si la seule chose qui à changé est la longueur du fil, quel type de fil utilises-tu ? quelle longueur ?
    Personnellement pour eviter tout problème et garder un aspect exterieur pas trop moche, je me suis servi de cable réseau blindé (ou non), le mètre est pas trop cher et le nombre de pair de fil est largement suffisant pour la plupart des montages.
    Après il faut regarder au niveau de ton boitier et verifier que la reception n'est pas entravé par quoi que ce soit.
  • Bonjour,

    Merci beaucoup pour ce tuto.

    J'ai tout suivi sans problème. Par contre, lorsque j'entre la commande  mode2 -d /dev/lirc0, il y a une erreur qui apparait, qui n'est pas due au processus qui est déjà en cours... Je ne sais pas d'où cela vient et je ne peux donc pas aller plus loin. Avez vous des idées ? Je vous remercie d'avance pour vos réponses.

    Cordialement,

    il

  • edited novembre 2015
    Salut,

    Je dispose actuellement de 3 Raspberry à la maison (Openelec 6.0.0) 

    J'ai préparé le montage électronique sur une plaque de simulation tout est prêt mais par contre je galère pour configurer lirc.
    Il refuse la fonction sudo car OpenElec est fermé. Du coup je ne vois pas comment démarrer.
    Quelqu'un pourrait-il m'aiguiller ?
    Merci 

    @-)
  • edited novembre 2015
    J'ajoute qques précisions :

    Salut,

    Je dispose actuellement de 3x Raspberry B+ à la maison (Openelec 6.0.0) . Fonctionne très bien mais j'aimerai couplé la fonction IR.

    J'ai préparé le montage électronique sur une plaque de simulation tout est prêt mais par contre je galère pour configurer lirc.
    Il refuse la fonction sudo car OpenElec est fermé. 
    J'ai tenté de suive un tuto pour configurer les pin 22 et 23 
    Losque je me met sous la racine : 
    /etc/lirc # cat /sys/kernel/debug/gpio
    je constate que les pin in et out sont actuellement configurée sur 35 et 47.
    Alors quand j'essai de les configurer avec la commande :
    modprobe lirc_rpi gipo_in_pin=23 gpio_out=22
    j'ai la réponse suivante :
    modprobe: ERROR: could not insert 'lirc_rpi': No such device

    Je pense que tout ça est lié au fait que le tuto est initialement établi pour un Raspberry 1, qu'en pensez-vous ?

    Du coup je ne vois pas comment démarrer.
    Quelqu'un pourrait-il m'aiguiller ?
    Merci 

    @-)
Sign In or Register to comment.