Projets Domotique : Commander l'éclairage par télérupteurs via Raspberry Pi 2 [photos et vidéo]

edited décembre 2015 in Projets
Salut à tous.

En 2010 lorsque j'ai rénové ma maison, j'ai refait toute l'installation électrique et je voulais absolument faire de la domotique. 

J'avais vu qu'il était possible d'ajouter des modules pour piloter des télérupteurs. Alors je me suis dit aller je monte tout en télérupteur même si j'aurais pu mettre de simple interrupteur pour les pièces n'en ayant qu'un.

J'ai donc laissé l'espace d'un module vide pendant 5 ans... en attendant.

En attendant quoi ? Et bien de trouver une solution peu coûteuse, j'ai acheté un Rpi2 il y a 1 mois et demi pour m'en faire un ordi de salon mais je ne suis pas satisfait ou je m'y suis mal pris je pense que c'est plutôt ça vu que d'autre son satisfait. bref.

Je suis tombé sur le tuto d'idleman, le N°7 qui m'a motivé. 

J'ai vu qu'il fallait faire le 4 avant je n'y arrivais pas j'étais découragé lol. J'ai fini par m'en sortir comme un grand. Tuto 6, Tuto 7. Et m'y voilà
J'avais reçu ma carte relais et là je me dit super !!

Euh... je n'ai pas de connecteur !

J'ai donc acheté des connecteur dupont 

J'avais déjà tout configuré pour n'avoir plus qu'à brancher. 

Et là ! sa marche! mais PROBLÈME. 

Commentaires



  • Relai ON lumière ON ( Poussoir impossible à utiliser )
    Relai OFF lumière ON 
    Relai ON lumière OFF ( Poussoir impossible à utiliser )
    Relai OFF lumière OFF

    Je me suis donc attardé sur l'interface. et j'ai trouvé une solution simple en bidouillant le code de base.


    case 'demo1':
    system("gpio write ".$pins['7']." 1");
    sleep(1);
    system("gpio write ".$pins['7']." 0");
    break;

    case 'demo2':
    system("gpio write ".$pins['11']." 1");
    sleep(1);
    system("gpio write ".$pins['11']." 0");
    break;

    case 'demo3':
    system("gpio write ".$pins['12']." 1");
    sleep(1);
    system("gpio write ".$pins['12']." 0");
    break;

    case 'demo4':
    system("gpio write ".$pins['13']." 1");
    sleep(1);
    system("gpio write ".$pins['13']." 0");
    break;

  • chaque case demo de 1 à 8 j'ai mis une photo de la pièce à allumer. 
    J'ai conservé la case demo que j'ai modifié comme ça :

    case 'demo':
    system("gpio write ".$pins['7']." 1");
    system("gpio write ".$pins['11']." 1");
    system("gpio write ".$pins['12']." 1");
    system("gpio write ".$pins['13']." 1");
    system("gpio write ".$pins['16']." 1");
    system("gpio write ".$pins['18']." 1");
    system("gpio write ".$pins['22']." 1");
    system("gpio write ".$pins['29']." 1");
    sleep(1);
    system("gpio write ".$pins['7']." 0");
    system("gpio write ".$pins['11']." 0");
    system("gpio write ".$pins['12']." 0");
    system("gpio write ".$pins['13']." 0");
    system("gpio write ".$pins['16']." 0");
    system("gpio write ".$pins['18']." 0");
    system("gpio write ".$pins['22']." 0");
    system("gpio write ".$pins['29']." 0");
    break;

    Je bascule tout du mode 0 à 1 ou 1 à 0 : cependant, sa inverse juste la position. Car je ne peux pas avoir l'état de la lumière vu que l'état est défini par le relai. Mais si le relais reste allumé, je ne peux plus utiliser les poussoirs. Donc pas pratique.

    Si une pièce est allumé que j'utilise la case demo tout s'allume sauf la pièce allumée qui s'éteint.

    Je réfléchis mais je ne vois pas comment faire.
  • J'ai eu quelque déboire malgré tout, je l'ai sortie au mon 4 fois du tableau dont une ou j'ai aussi sortie la carte relais. 
    tout étais allumé rPi2 et carte relais mais rien ne fonctionnais, la page web s'affichais. Aucune réaction.
    J'ai testé la case changestat sa a fonctionné et ma page à fonctionné après. Euh. Oui je suis une bille je n'y comprends rien.

    Bref après tout mes port ne fonctionnais pas, il ne restais pas en OUT après le boot alors j'ai fait :

    gksudo gedit /etc:rc.local

    j'ai rajouté les commandes

    gpio mode 7 out
    gpio mode 0 out
    gpio mode 1 out
    gpio mode 2 out
    gpio mode 3 out
    gpio mode 4 out
    gpio mode 5 out
    gpio mode 6 out
    gpio mode 21 out
    gpio mode 22 out
    gpio mode 26 out
    gpio mode 23 out
    gpio mode 24 out
    gpio mode 27 out
    gpio mode 25 out
    gpio mode 28 out
    gpio mode 29 out

     
    ceci permet de lancer ses commandes au démarrage du Rpi2 pour ouvrir tout les ports.

    et mon script ne pose plus de problème après cette manipulation.

    Mon pavé n'est pas très structuré je débite un peu tout se qui vient lol

  • edited décembre 2015
    Voici quelque photo de mon installation.

    Apercu de la page web pour le téléphone et dans le futur pour les tablettes
    image

    Le tableau 

    image

    image
    Le coeur de la bête, fixé sur une plaque d'immatriculation en plexi lol.
    image
    Et une vidéo pour voir ce que donne mon bouton démo :) j'aime.


    Si vous avez des questions n'hésitez pas.

    Si vous avez des améliorations hésitez encore moins, je suis preneur et c'est aussi pour ça que je partage mon projet.

    Tcho

    PS : Désolé mais j'avais tout écrit je vois que c'était trop long ... Euh. Pas pratique pour un forum de pas pouvoir poster des pavés...
  • Et aussi !!! une fois dans le tableau pour ne plus avoir besoin de le démonter, je l'ai paramétré en FTP.

    Vraiment simple.


    sudo apt-get install vsftpd
    y
    entrée
    sudo nano /etc/vsftpd.conf

    ligne anonymous_enabled=yes
    mettre no

    enlever les #  devant

    local_enable=yes
    local_unmusk=022
    write_eanble=yes
    ascii_upload_enable=yes
    ascii_download_enable=yes

    ctrl X
    y
    entrée

    plus qu'à gérer via un client FTP

    La encore j'ai redémonté pi2 du tableau il ne réagissait plus, il avait changé d'ip :/ 

  • Super boulot, c'est vraiment propre, félicitations, ça donne envie :)
  • Salut, Bon boulot !!! 
    Je suis impressionné par ton tableau !
    ^:)^

    Pour ça : 
    Relai ON lumière ON ( Poussoir impossible à utiliser )
    Relai OFF lumière ON 
    Relai ON lumière OFF ( Poussoir impossible à utiliser )
    Relai OFF lumière OFF
    C'est normal, je présume que tu as mis tes relais en parallèle à tes BP (c'est ce qu'il faut faire), ils réagissent donc comme tes BP ... Si tu fais le test, tu verras que si tu laisses appuyer sur un BP, si une autre personne appui sur un autre, ben il ne se passe rien ;-)
    Par contre de laisser enclencher ton BP (ou ton relais) sur une longue période est mauvais pour tes télérupteurs, à ne pas faire !!!.

    Car je ne peux pas avoir l'état de la lumière vu que l'état est défini par le relai.
    Pour avoir l'état de tes lampes sur le RPi, il faut faire la manipulation inverse, c'est a dire, tu branches un relais 230V en parallèle de ta lampe, et tu relis le contacte (comme si c'était un BP) à ton RPi pour avoir l'info.
  • Bonjour,

    Stunko, avec ce type de relecture (relais en parallèle de la lampe) tu aurais l'état de sortie du telerupteur, autant pousser jusqu'au bout et savoir quand la lampe est morte pour ça rien de plus simple, suffit de mettre le relais en série.
Sign In or Register to comment.