Raspberry PI ~ 15 : Créer sa propre prise radio (et autres périphériques) pour 6€

Ce post est le quinzième d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! :D

Suite à nos précédents tutos sur le Raspberry PI  et la domotique contrôlée par radio (et notamment le tuto 12), certains d’entre vous m’ont demandé si il n’était pas possible de se passer de prises Chacon, d’autres m’ont demandé si des multiprises existaient sur le même principe, quant à moi je souhaitais de débarrasser de Chacon pour diverses raisons :

  • Je voudrais, sur le long terme, personnaliser le protocole radio (inclure une notion d’état de la prise, en retour de consommation d’énergie etc..)
  • J’aimerais construire de A à Z mon système domotique dans une optique pédagogique (100% DIY)
  • J’aimerais ajouter quelques gadgets dans ma prise (pourquoi pas un capteur de température ou de consommation de courant ? :D)

C’est pourquoi nous allons aujourd’hui construire notre propre prototype de prise radio (pouvant facilement être transformée en multiprise) commandée par le Raspberry PI

2013-02-13 19.58.07

Je parle de « prototype » pour une bonne raison, bien que le montage fonctionne parfaitement, il peux être amélioré au niveau du « packaging » (boitier).

Afin de vous motiver un peu (car je vous sent mous aujourd’hui :p), wala la petite vidéo de démo du prototype (avec quelques explication sommaires pour vous mettre en jambe)

Notez bien que vous devez au moins avoir lu le tuto 12 pour comprendre celui ci :)

Vous êtes chaud patate pour commencer ? Voyons voir un peu le matos à se procurer :)

Le matériel

Pour aller plus loin, il vous faudra les curieuses bêbêtes suivantes :

Notez bien que vous n’aurez à Acheter la carte arduino qu’une fois, elle nous servira de programmateur pour construire toute nos futures prises, de même, les résonateurs sont par lots de 5 et nous n’en avons besoin que d’un par prises.

Vous en aurez donc environ pour 6€ par prises radio par la suite, notez que je ne compte pas l’alim (un vieux chargeur de portable récupéré fera l’affaire) ni le boitier (bah oui la vas falloir se dépatouiller avec un Tupperware qui traine XD), nous ne faisons pas vraiment ça pour le prix mais il faut souligner qu’on y gagne quand même par rapport au commerce (d’autant qu’il est possible de faire des multiprises avec ce montage et donc de réduire encore le cout par prises, on peux aussi remplacer/supprimer certains composants en bricolant (suppression du résonateur,remplacement de l’atmega par une Attiny etc..)  mais je vais pas tout vous faire non plus :p).

Attends attends…C’est quoi ton Arduino la ?

Dans ce tuto nous introduirons les carte de programmation « Arduino » et leurs micro contrôleur Atmega qui nous permettrons de créer tous nos périphériques à bas cout sans avoir à acheter un raspberry à chaque fois ^^.

Petite explication rapide sur l’arduino donc :p

image

L’arduino (souvent nommé ardui) est une carte électronique très similaire au raspberry PI, à savoir qu’elle peut gérer des entrées sorties GPIO et contenir un code (en C++) pour réagir en fonction de ces gpio, cela dit, il y a quelques différences importantes :

  • L’arduino coute 16€ pour son modèle le moins cher (duemilanove), le raspberry pi coute 30€
  • L’arduino comprends 23 gpio digitaux (donc plus que le rpi), de plus, l’arduino à des 7 gpio analogiques (peux prendre d’autres valeurs que 0 ou 1), le rpi n’en possède pas
  • L’arduino ne peux contenir qu’un code C++, le raspberry Pi peux contenir un système d’exploitation(ex : raspian…)
  • L’arduino est en temps réel, pas le raspberry PI
  • L’arduino (en fonction des modèles) ne contient pas de port Ethernet
  • Le cerveau d’un arduino est la puce Atmega328, qui avec un peu d’astuce, peut être utilisée toute seule dans nos montage, cette puce ne coute que 3€ et est de plus petite taille que l’ardui.

Vous l’aurez compris, l’arduino est une carte de bas niveau, très rapide, moins chère, réductible à une puce et avec plus de gpio que le rpi ce qui en fait un élément parfait pour créer tous nos périphériques radio (prise radio, sonde de température radio, capteur d’ouverture radio etc…).

Les arduino (ou plutôt a terme : les atmega 328) seront les muscles de notre domotiquemaison

En revanche l’ardui n’a pas les capacité de traitement du rpi, de plus le rpi est plus haut niveau et gère en natif l’Ethernet, la gestion d’un os etc…

le rpi sera donc le cerveau de notre domotiquequi commandera et sondera les muscles arduino.

Le fonctionnement de la prise

Nous allons refaire le tutoriel #12 : allumer/éteindre une prise à distance avec le raspberry PI,sauf que cette fois ci, la prise sera « maison ».

Concrètement vous allez appuyer sur un certain bouton de votre télécommande chacon (ou envoyer le signal depuis votre rpi)

Ce signal vas être capté par le récepteur RF relié à l’arduino, l’arduino vas vérifier que le signal parle bien de lui (à son code récepteur) qu’il provient bien de la télécommande (a le bon code émetteur) et a un état on ou off (afin de savoir ce qu’il doit faire).

L’arduino vas alors envoyer 0 ou 1 a la carte relais, celle ci vas donc « ouvrir » ou « fermer » le circuit classique de la prise et laisser passer ou non le courant.

OUI MAIS !!!

Comme les cartes arduino c’est un peu gros et que c’est un peu cher d’en mettre une dans chaque prises, on ne vas utiliser que leurs micro contrôleur : l’Atmega328, qui lui coute 3€ et fait la même chose que l’arduino.

Évidemment comme c’est une puce nue, ça vas être un peu moins rigolo a programmer qu’une carte ardunio (qu’il suffit de brancher sur le port usb du pc), on vas donc se servir de la carte arduino pour programmer les puces Atmega que l’on inclura dans chaque prises :)

Ça parait un peu fou comme ça pour les novices électroniques que nous sommes mais vous allez voir, c’est en fait très simple :)

La programmation de la puce : branchements

Avant tout, téléchargez et installez l’IDE (environnement de développement Arduino) sur le site d’arduino.

Voila le schéma permettant de programmer une puce atmega à partir d’une carte arduino

http://idleman.fr/ressources/PHP/priseMaison/progatmega.jpg

Notez que sur le schéma j’utilise ce qu’on appelle une « BreadBoard », c’est une plaque en plastique qui permet de tester des circuits sans avoir à souder juste en plantant des fils dans des trous, les trous sont reliés de manière horizontale entre eux, sauf pour les lignes bleu et rouges (utilisée pour l’alimentation) qui eux sont verticaux.

Je vous conseille vivement l’achat d’une breadboard, ça ne coûte rien et c’est quasi indispensable pour tester les circuits dans de bonnes conditions (je m’en veux un peu de ne pas vous en avoir parlé avant)

  • Les fil rx et tx sont ceux qui envoie le programme à l’Atmega
  • La puce Atmega originellement implantée sur l’Ardunio doit être dé-clipsée sinon c’est elle qui sera programmée
  • L’ensemble du circuit doit être alimenté en 5V, ici on utilise l’alimentation de l’arduino (conseillé)
  • L’atmega doit être alimentée (5V + GND) des deux cotés aux bornes indiquées
  • Le pin Reset de l’Atmega doit être relié au reset de l’arduino comme indiqué sur le schéma
  • Le pin Reset de l’Atmega être relié au 5V via une résistance 1.27Ω (brun rouge violet gris rouge) comme indiqué sur le schéma

Une fois le circuit branché et alimenté vous pourrez lancer l’IDE arduino et programmer la puce comme si elle se trouvait sur la carte arduino.

Le code

Commencez par choper les sources du programme ici :

http://idleman.fr/ressources/PHP/priseMaison/priseRadio.zip Premièrement, allez dans votre repertoire arduino puis dans \libraries\ et créez un dossier nommé : EEPROMAnythingDedans vous placerez le fichier EEPROMAnything.h Nous venons d’inclure une nouvelle librairie à l’arduino IDE, celle vi vas nous permettre de gérer l’EEPROM (petite mémoire interne de l’atmega dans laquel nous allons stocker nos données)

Ensuite, lancez l’IDE (arduino.exe) : il ne vous reste qu’a copier le programme priseRadio.txt ci dessous dans l’ide, et cliquer sur télé-verser

image

nb: En fonction de l’atmega programmée, vous aurez peut être a changer le modèle de la carte dans l’ide, ex : j’ai une carte arduino duemilanove, mais mon atmega acheté est un uno, du coups lors du télé versement j’ai une erreur du genre “invalid sync blablabla”, donc je sélectionne uno dans le menu :

image

Et je retente le coup :p

Une fois la puce programmée on vas pouvoir passer a notre vrai branchement de prise radio final (fiou !! ^^, vous verrez avec le temps ça parait enfantin)

Le montage finale : branchements

La je ne peux pas faire explication plus détaillée (et plus débordante) que ce schéma… :D

http://idleman.fr/ressources/PHP/priseMaison/radiomaison.jpg

En gros l’Atmega est toujours relié au résonateur (son horloge) et est alimenté des deux coté en 5v comme sur le montage précédent.

On à en plus branché trois composant sur l’Atmega : une led qui vas clignoter quand la prise recevra un signal, afin de ne pas griller la led, on rajoute une résistance (la résistance est a définir en fonction de la led) notez bien que led+ résistance sont optionnels et ne servent que pour avoir un visuel des signaux reçus.

On ajoute à ça une carte de réception radio 433 mhz qui vas capter les signaux radio et les envoyer à l’Atmega par le pin 9, cette carte radio est évidemment alimentée en 5v

On ajoute enfin une carte relais qui vas recevoir un ordre de l’Atmega part le pin 10 quand le signal reçu sera le bon, la carte relais vas alors fermer le circuit de droite (lampe + prise) ce qui vas allumer la lampe. Evidemment, cette carte aussi est alimenté en 5v.

Attention :Faites attention au sens de l’Atmega, vous pourrez vous repérer au petit creux rond en haut de la puce

nb: Les pattes extérieures du résonateur ne sont pas polarisées donc vous pouvez les intervertir par rapport au schéma, en revanche les pattes de la led le sont, donc si votre led ne s’allume pas, c’est peut être que vous vous êtes loupé de sens :)

L’utilisation

Le programme se comporte de la façon suivante :

Le tout premier signal au protocole home easy envoyé à la prise sera enregistré dans celle ci et deviendra le signal de référence pour ouvrir ou fermer le relais de la prise, il est donc nécessaire d’envoyer ce signal le plus rapidement possible après la mise en route du montage final, car un signal voisin pourrait vous piquer la place.

Actuellement, un seul signal peut être enregistré et vous n’avez droit qu’a un seul essai (bien que le matériel puisse en mémoriser beaucoup plus, le code doit être amélioré).

Lorsque la prise reçoit un signal correspondant a son signal de référence, la led clignote 10 fois très rapidement, et le relais change d’état

Lorsque la prise reçoit un signal non correspondant a son signal de référence mais au protocole home easy, la led clignote 1 fois lentement.

Les améliorations possibles

  • La puce :En bidouillant un peu, on peux remplacer l’AtMega328 par un Attiny85, qui est un peu moins cher et bien plus petit, donc gain de place dans la prise et rapinage de quelques centimes à l’achat.
  • Toujours la puce :L’Atmega328 possède une horloge interne, il est donc possible de se passer du résonateur, cependant il faut pour cela bidouiller un peu (je vous laisse chercher l’astuce :p) et vous passerez de 16mhz à 8mhz de fréquence d’horloge, donc ça sera moins réactif.
  • La diode : Une diode RVB (pouvant s’allumer en rouge, vert ou bleu) serai plus appropriée car nous pourrions associer une couleur à chaque état (attente d’un signal, enregistrement d’un signal, refus d’un signal etc…)
  • Le packaging :pas encore d’idées précise de ce côté la, si quelqu’un a des bons prix de boiter personnalisables, qu’il se manifeste ^^, si vous devez bricoler ou faire de la récup, évitez le bois (qui brûle trop bien en cas de court circuit) et le métal (qui conduit, donc risque de court circuit/électrocution) préférez le plastique (ou éventuellement le verre si vous voulez faire quelque chose d’artistique), un Tupperware un peu rigide et une rallonge coupée en deux me parait sensé, vous avez aussi l’option de l’imprimante 3d mais il faut en avoir une sous la main.
    Notez que vous pouvez aussi inclure votre montage dans un boitier de ce genre ça fait plus pro (merci à Placto pour l’idée)
  • Le code :Vous aurez peut être noté que contrairement aux prises chacon, notre prise n’a qu’un mode « apprentissage » et il est très restreint, petite flemme de ma part, c’est pourtant très simple à ajouter, il faudra que je m’y mette quand j’aurais une petite seconde :)
  • L’objet :En modifiant légèrement le code et en prenant une carte relais avec plus de canaux, vous pouvez faire une multiprise radio, ce qui sera plus rentable car pour disons 8 prises, vous n’aurez besoin que d’un atmega, un récepteur, un résonateur, une alim etc…
  • Le protocole :maintenant qu’on a notre protocole identique à celui de chacon, pourquoi ne pas ajouter quelques fonctions comme une notion de retour sur l’état de la prise, ou même la consommation de la prise, sa température, la possibilité de faire varier la lumière, etc… ?
  • L’alimentation : il faudrait trouver une alim pas chère pour le système, mais ne faites pas comme moi, pour ces choses la : ne commandez pas chinois :p

Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

  • Prendre une alim externe pour les cartes radio  et les l’alimenter au maximum de ce qu’elles sont capables de faire (cf la clause « voltage max » de fiche technique, souvent c’est entre 5 et 12V)
  • Souder un fil conducteur de 17.3 cm a l’émetteur et au récepteur pour servir d’antennes.

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.

Article rédigé par Idleman

344 réflexions au sujet de « Raspberry PI ~ 15 : Créer sa propre prise radio (et autres périphériques) pour 6€ »

  1. gat

    salut super tuto
    suposition d un noob
    dit par contre pour le 5V pouvait on l alimenter par 5V/230V
    directement dans la prise

    perso avec un capteur de niveau un relais 12/230 je gere le niveau de mon aquarium
    ( la pompe de remonter est en 220 et ca marche bien )

    Répondre
    1. Idleman Auteur de l’article

      Si ta question est « peux t’on alimenter le circuit avec du 220 V direct » la réponse est : non surtout pas, tu vas tout cramer (et je ne parle pas que du circuit).

      En revanche si la question était « peux t’on se servir d’un transformateur 220v vers 5v pour alimenter le circuit » la oui tu peux le faire, c’est même une bonne solution, c’est pourquoi je parle d’utiliser des chargeurs de portable dans le tuto (qui sont des transfos 220v vers 5v):)

      Répondre
      1. chrisKross

        Bonjour,

        pour faciliter l’intégration d’une alimentation 220VAV/5VDC, je vous fait remonter l’objet de mes recherche :)
        – Un chargeur iphone de dernière génération. (Évidement a démonter et à modifier légèrement.)
        _retrait du port USB et soudure du 5V puis MASSE vers ATMEGA, MODULE RF et carte relais.
        _retrait des deux broches alimentations 220VAC pour enclipsage avec connecteur WAGO ou domino.

        CORDIALEMENT CHRIS
        nota : : IMAGE CHARGEUR DÉMONTER

        Répondre
    2. Alain87

      @gat Où peut on trouver un capteur de niveau ?

      Répondre
        1. Alain87

          Merci gat et Idleman. C’est parfait !
          Quatre de ces capteurs peuvent donner une bonne idée du niveau d’eau dans une cuve. Reste à trouver le bon montage qui avec un Arduino ou peut-être un réseau 1-wire enverra l’information sur un site web.

          Répondre
  2. Yaug

    Ah enfin :)
    Bon, j’ai hâte de tester le montage (Le jour où je reçois enfin une de mes 3 commandes de câbles mâles …)

    Joli travail en tout cas !

    Niveau optimisation, je valide pour le ATtiny85. Actuellement pour une prise unique, l’atmega fait un peu overkill, j’ai un peu l’impression qu’on nuke une mouche avec toutes ces pattes inutilisées.

    Pour l’optimisation de l’alim, tu as pu lire les idées de Sky99 sur pcinpact ? Car mine de rien, on se retrouve avec une GROSSE prise actuellement.
    Mais quoi qu’il en soit, félicitation ! Superbe tuto encore.

    Répondre
    1. Idleman Auteur de l’article

      Oui l’ATmega est sur-dimensionné dans ce circuit, mais je l’ai utilisé pour plusieurs raisons :

      1) Je ne voulais pas passer direct du rpi a l’attiny et perdre les lecteurs qui arrivent encore à me suivre (l’attiny etant un peu plus champ a programmer avec l’ide arduino)
      2) Je voulais faire découvrir l’arduino et l’atmega a ceux qui ne le connaissent pas encore étant donné son potentiel
      3) Je voulais me laisser la possibilité d’ajouter pas mal de gadget sur ma prise (capteur de température, consommation de courant, variateur, relais radio …) qui risque de prendre plus de pin
      4) J’ai grillé mon attiny85 en faisant des tests et j’avais la flemme d’en attendre un autre

      Pour ce qui est de l’alim, sur pc impact ils ne parlent que de batteries non ? Ce n’est pas très interessant pour un capteur allumé 7/7j non stop, changer les piles de toutes tes prises tous les 4 matins c’est un peu dommage…

      Concernant la taille par contre je ne suis pas d’accord, je montre le montage sur une breadboard, mais soudé à une plaque pcb, ça fait même pas le quart de ma main, en y ajoutant un chargeur de portable la taille totale fait environ la moitié de celle d’une prise chacon.

      Répondre
      1. Yaug

        Merci pour tes réponses.
        Pour la taille, ok, je ne réalise peut être pas en effet :) Vu que je suis dans une logique de réduction (parce que si y’a trop de gros trucs partout, madame va râler …), j’essaye d’en faire un point crucial. Il faudra que je teste par moi même de toute manière.

        Par contre, j’ai un peu de mal à avoir un esclave branché 24h/24, ça fait vite pas mal de prises utilisées par les capteurs.
        Dans le cas d’une prise multiple commandée par le raspberry, okay, pas de soucis. Mais si on élargit ton concept (ce que j’ai envie de faire :p) à des esclaves chargés de piloter une sonde (température, pression, effet de hall, ou whatever), là une petite batterie peut faire l’affaire non ? Même si il faut la recharger tous les x mois ( ce qui en soit ne me dérange pas).

        Sinon, pour ce qui est du mode apprentissage, pourquoi ne pas mettre un bouton qui du coup relance le mode apprentissage quand il est pressé ?
        ça ne prend pas de place, et ça permet de relancer le mode apprentissage facilement.
        Inconvénient : ne pas laisser à porter de toutes les mains :p

        Vivement la suite !

        Répondre
        1. Idleman Auteur de l’article

          La série de tutos vas aussi s’orienter vers différent types d’esclaves, j’ai déjà le prototype de sonde radio (sur le même principe atmega + émetteur radio + capteur ds18b20) mais perso je suis assez anti-piles, sur le long terme ce n’est ni pratique, ni économique, ni écologique.

          Après je peux comprendre qu’on ai pas de prises secteur partout dans sa maison, mais dans ce cas je préfère encore utiliser une petite plaque solaire avec batterie de stockage (quitte a augmenter un peu le coût).

          Après c’est une question de choix personnel, effectivement si tu optimise bien ton circuit et ton code (que tu gère la veille, réduire le nombre de composant etc…) tu n’aura pas à changer les piles souvent.

          Pour le mode apprentissage, j’avais mis un bouton à la base, mais pour les besoins du tuto, j’ai voulu simplifier le circuit (j’ai failli virer la led aussi) histoire qu’il soit plus simple à comprendre :), après c’est une modif à faire dans le code et 1 bouton à ajouter donc ceux qui veulent peuvent facilement mettre ça en place :)

          Répondre
      2. Bruno

        Tu fabriques toi-même tes PCB?

        Répondre
        1. Idleman Auteur de l’article

          j’achetes des plaques de prototypage sur ebay, comme je n’ai pas besoin de construire à la chaine c’est amplement suffisant :)

          Répondre
  3. Alexandre Dubois

    Hello champion,

    Un beau tuto que tu nous présentes là ! Vu que j’ai pas mal de matos chacon ça m’intéresserait de poursuivre dans ta voie ;) L’idéal serait d’intégrer à ta prise un convertisseur 220VAC en 5VDC pour pouvoir alimenter de manière propre l’Atmega !

    Une remarque : je ne suis pas sûr que tu puisses supprimer ton résonateur car pour la radio tu as besoin de timing bien précis et l’oscillateur interne ne l’est pas trop… Après si c’est pas soucis d’économie d’énergie, tu dois pouvoir remplacer ton résonateur 16Mhz par un plus petit (8/4/2 Mhz ?).

    Pour le boitier, la meilleure piste en terme de sécurité esthétique serait vraisemblablement celle de l’imprimante 3D… Espérons que nos confrères du labx la termine vite !

    Répondre
    1. Idleman Auteur de l’article

      Je suis totalement d’accord pour le convertisseur, malheureusement je ne trouve rien qui ne soit pas hors de pris ou qui ne fasse pas sauter mes plombs (cf la dernière photos d’une alim chinoise bas prix que j’avais essayé), si tu a une idée low cost dans ce sens tu me sauverais la vie, pour le moment à part faire de la recup de chargeur de portable je vois pas :p

      Ce n’est pas toi qui me disais que l’horloge interne était en 8mhz ? Dans ce cas je ne vois pas l’utilité d’en prendre un plus petit externe puisque ca sera la même chose non ? Après je suis d’accord que pour la radio mieux vaut mettre le paquet question précision, mais j’aimerais bien tester voir si on peux s’en passer quand même histoire d’en être certain… tu pourra m’expliquer la manip que tu as faite sur le bootloader à al prochaine session du lab ?

      Oui une imprimante 3D serait le top, mais bon c’est tellement chiant d’en trouver une qui fonctionne que ça prend certainement moins de temps de bricoler un tupperware ou des plaques de pvc (après tout, ya juste à faire un cube en plastique ^^)

      Répondre
      1. Geo

        Yop, j’ai trouvé ça pour l’horloge interne :
        http://oddwires.blogspot.fr/2012/06/burning-bootloader-into-bare-atmega328.html
        Je teste mais j’ai du mal à trouver où ça déconne…
        A mon avis il faut aussi changer des paramètres dans TOOLS/PROGRAMMER mais il en parle pas (un truc du genre AVR) … :( Je vais essayer toute les options :p puis si ca fume tant pis!

        EDIT : J’ai compris où ca merde… Je vais attendre d’avoir un second ATM…
        J’avais pas bité qu’il en fallait un pour programmer l’autre (je pensais pouvoir le faire direct comme quand on upload un prog dessus)…

        En fait faut programmer celui de la UNO avec le prog « ArduinoISP » qui est fourni.
        Ensuite tu cables ta board, dans IDE tu selectionnes « ATmega328 on a breadboard (8 MHz internal clock) » (celui que tu as créé dans Hardware).
        Puis tu peux graver le BOOTLOADER en utilisant le programme de la première …

        Bon c’est plus compliqué que de changer un ADCON=0b0000 en ADCON=0b0001 dans un pic :P mais ca se tente quand même :D

        Répondre
        1. Idleman Auteur de l’article

          Effectivement ça semble être un bon tuto pour envoyer le bootloader sur une puce vierge ET en profiter pour utiliser l’horloge interne de 8 mhz :)

          C’est plausible qu’il faille effectivement une puce pour en programmer une autre au moins pour le bootloader, si tu y arrive et que tu as l’occasion de tester le module radio avec , tiens moi au courant des résultats :)

          Répondre
          1. Geo

            BOn ca fait un petit momement mais je viens aux nouvelles.

            J’ai essayé de graver les bootloader avec 2 atm… Mais impossible!
            Même en utilisant les tuto made in arduino ( et en ajoutant leur histoire de condensateur de 10µ ou une resistance blablabla rien à faire, impossible sans programateur je pense …)

            Sinon petite question, as tu changé ton code en c++ ?
            Car je viens de le retelecharger et il ne fonctionne plus :/

            J’ai vérifié avec 2 rasp, j’emets et je reçois bien les bonnes valeurs. Mais quand je passe à l’arduino, ca ne fonctionne plus (alors que ca fonctionnait avant :p)

          2. Idleman Auteur de l’article

            Je n’ai pas encore essayé de graver les bootloader moi même, du coup je ne suis pas très à même de te conseiller désolé :), ceux que j’ai vu faire suivaient le tuto à la lettre , ça avait l’air de bien fonctionner…

            Non je n’ai rien changé sur le code :), et les autres utilisateurs ont l’air de continuer à me faire des retours positifs donc je ne pense pas qu’il soit compromis ^^

            Étrange que ça fonctionne entre deux rpi mais pas entre un rpi et un ardui ^^, ça devrait être plutôt l’inverse, l’ardui étant plus doué pour les échanges bas niveau raide que le rpi :p

          3. Ariolas

            Alors je viens porteur de bonnes nouvelle !

            Je viens de recevoir mes Attiny85, et donc, j’ai fait joujou ;)

            Pour programmer mes Attiny85, j’ai utilisé ce tuto:
            http://bateaux.trucs.free.fr/arduino_attiny.html

            Et ça marche nickel ! (j’en ai d’ailleurs profiter pour me faire un petit shield de programmation Attiny85, comme dit ici : http://www.semageek.com/tuto-programmation-des-attiny45-avec-un-arduino/ . Sérieusement, c’est pas long à faire, et c’est très pratique ! J’ai amélioré son shield en mettant simplement une LED + résistance sur la patte 3. Ainsi j’ai juste a charger un petit blink pour tester en direct mon Attiny85, si j’ai un doute sur son fonctionnement ;) )

            Concernant le test en soit, j’ai utilisé l’horloge interne 8Mhz et ça roule nickel. Dans mon montage, je n’ai donc que mon alim, mon Attiny85, mon récepteur, ma LED et mon relai. Ce qui me laisse encore 2broches libres sur mon Attiny85 pour faire ce que je veux ;)

            De sacrées évolutions en perspective :D

        2. Dimitri

          Après avoir fait 50 test et autant de foirages et de grattages de tête, j’ai réussi à reprogrammer un ATMega328 avec utilisation de l’horloge interne en suivant ce tuto: http://www.gammon.com.au/forum/?id=11637

          Il y a deux scripts qui permettent de mâcher le boulot et de flasher le chip sur breadboard via des commandes envoyées à l’arduino par la console. Pour utiliser l’horloge interne, on flashe en fait le bootloader de lilypad avec ATMega328.

          Pour info, je suis passé par un Arduino UNO.

          Répondre
      2. Gautier

        Je passe vite fait avec ma pelle et je déterre un peu les vieux messages…

        Pour ceux que sa intéresse j’ai trouvé ceci (et je l’utilise dans mes montage)

        http://www.conrad.fr/ce/fr/product/401785/Convertisseur-ACDC-5-VDC-200-mA-1-W-Recom-International-RAC01-05SC

        C’est le plus petit et le moins cher que j’ai pu trouver (avec boitier inclus, avoir un chargeur de portable depioté comme ça avec le 230V qui passe on ne sait ou c’est pas super safe je pense) en plus avec ses 1W de consommation et ses 200mA il sera moins gourmand que les chargeurs de portable (500mA a 1A en général) et largement suffisant pour alimenter même un tas de composants reliés a l’Atmega328.

        Si sa peut en aider certains …

        Répondre
  4. H3

    Impressionnant… Très impressionnant !

    J’en reviens pas, sachant qu’il y a quelques semaines je t’expliquais ce qu’étais fréquence, longueur d’onde et tout le tintouin…

    Répondre
    1. Idleman Auteur de l’article

      ^^ t’inquiète je suis encore loin d’avoir tout compris sur le fonctionnement radio (il me faudrait des années), pour le moment ça vas parce que je reste sur un domaine précis mais reparle moi encore des harmoniques résiduelles machin chose et tu vas me voir palir :p

      Répondre
  5. cm

    Quelques idees :

    Boitier : faire imprimer par une imprimante 3D ? Ca fait plus « pro », mieux fini est n’est pas horriblement cher.

    Variateur : indispensable mais il faudrait remplacer la carte relay par autre chose

    Alimentation : Une alimentation basse conso qui prend le courant directement depuis la prise serait l’ideal et mettre le tout dans le boitier

    Répondre
    1. Idleman Auteur de l’article

      Imprimante 3D oui, mais encore faut il en trouver une qui marche dans son entourage ^^, a Paris je ne sais pas, mais à bordeaux, ça court pas les rues ^^ , après comme je le disait, faire deux trou dans un petit tupperware un peu rigide c’est pas le temps que ça prend ^^ .

      Pour l’alim basse consso, c’est très simple, il suffit de bricoler un chargeur de portable, je ne l’ai pas mis sur le montage histoire qu’on se concentre sur la partie traitement, mais j’aurait peut être du étant donné qu’il y a quelques questions qui fusent la dessus.

      Le principal problème d’une alim de portable étant que ça reste très cher pour ce que c’est (6/7 € minimum) donc obligé de faire de la récup…

      Répondre
      1. Alex

        Moi je vois deux solutions pour un boitier :
        – Récupérer une vieille rallonge, la raccourcir, et ajouter un tupperware effectivement entre les 2.
        – Sinon, avec une multiprise, il devrait y avoir moyen de placer le système dans les espaces vides à l’intérieur, si celle ci n’est pas trop compacte. Après chacun choisit s’il n’y a qu’une seule sortie activable par la radio ou si ça active toute la multiprise…

        Répondre
      2. Pierre

        Bonjour,

        J’ai trouvé sur eBay des chargeurs d’iPhone de marque « Abble Japan » (^^), ça fait 1cm3 (sur 2 petits PCB donc c’est aussi possible de les mettre côte à côte (photo si nécessaire :)). Le prix 1,07$ livré soit avec le cours €/$ du jour de mon achat 0,83€ !

        PS: Pour réduire encore plus la taille j’ai dessoudé la connectique USB.
        PS: Le lien http://linkr.fr/xY6t (j’ai pas acheté chez ce vendeur, mais c’est le même chargeur)

        Répondre
          1. R.

            La page renvois un avertissement inquiétant !

            « Malheureusement, l’accès à cet objet a été bloqué en raison de restrictions légales en vigueur dans certains pays. Conformément à ces restrictions, nous nous efforçons de bloquer l’affichage des objets concernés. Nous regrettons de vous informer que pour des raisons techniques, certaines annonces ne rentrant pas dans le cadre de ces restrictions peuvent ne pas être accessibles aux utilisateurs. Nous vous prions d’accepter nos excuses pour tout désagrément et nous espérons que vous trouverez d’autres objets intéressants sur eBay. »

            Hum… si on remplace le .fr par le .com ça passe… mais quid de la restriction, pas de validation pour les perturbation électrique ?

          2. Idleman Auteur de l’article

            Ce message est useless, tu achèterais un parapluie qu’il te mettrait la même chose au bout d’un moment, j’ignore pourquoi les fiches sont déplacées et/ou censurées au bout d’un moment mais ça n’a rien à voir avec la conformité de matériel, bref, ne pas hésiter à recherche le même mot clé pour retomber sur la même fiche (mais sans message ce coup ci) ou à bidouiller l’url.

          3. R.

            Ok merci pour ta réponse rapide !

  6. Blackmam3a

    Salut,

    J’ai parcouru ton code et je te conseillerais de mettre le data du récepteur radio sur une broche d’interruption qui te permettra de déclencher un évènement de plus pour optimiser tu pourras mettre le micro en « pseudo-veille » qui se réveillera lorsque la broche d’interruption serra active.

    De plus avec un ATTiny, tu peux gérer plusieurs relais (quasi illimité) avec l’utilisation d’un Shift Register de type 74HC595 qui utilisera unique 3 broches sur le micro !

    Blackmam3a

    Répondre
    1. Idleman Auteur de l’article

      L’idée de la veille me plait, après j’ignore comment faire ça, si tu as un micro tuto à me filer je suis preneur, sinon je demanderais au lab je crois qu’il y en as qui ont déjà fait ça :)

      Quitte à utiliser un attiny avec plusieurs shift, autant prendre direct un atmega, ça prendre moins de place et ça coûtera moins cher, rien n’empêche de rajouter des shift par la suite a l’atmega si plus aucune pin dispo.

      L’attiny n’a d’intérêt que dans le cas d’un montage ou le nombre de pin doit être réduite (par exemple dans le montage que je propose sans autres ajout ça conviendrait totalement) après si il y a besoin de plus d’I/O autant prendre une puce qui en gère plus en natif et qui coute 3 centimes de plus tel que l’atmega

      Répondre
      1. Blackmam3a

        Par simplicité je te conseillerais de regarder la doc atmel complète (celle de 500 pages :D appelée aussi par mes anciens prof : la bible), tu dois avoir un paragraphe sleep mode ou power management si mes souvenirs sont bon.
        Par contre je crois qu’il faut obligatoirement avoir un quartz externe pour la plupart des modes !

        Répondre
        1. Idleman Auteur de l’article

          Se taper une bible de 500 pages (certainement en anglais) me parait être tout sauf simple ^^, je vais plutot partager une bière 5 min avec quelqu’un du lab :D mais merci pour le conseil :p

          Répondre
          1. Idleman Auteur de l’article

            Jvais mater ça merfi :)

  7. Geo

    Méfiance!

    Ta carte ne te permet que de transférer ton programme dans le µC à condition que celui ci soit déjà flashé. 15€ c’est pas la ruine, mais c’est un peu cher alors que tu pourrais faire la même chose avec un port ethernet ou usb à 3€ … (plus deux trois fils et une prise de tête sur les datasheets je te l’accorde ^^). Et en plus, tu ne peux pas passer à un µC avec plus de pin que le support… Finalement c’est 15€ pour remplacer quelques fils et des boutons poussoirs …

    Comme je te le disais, avec un pickit (la version 2) à une 15n d’€ aussi, tu peux transferer ton programme sur des PIC mais en plus te passer de bootloader puisque pickit va se charger de les flasher pour toi. Pour peu que tu possèdes une adresse mail étudiante en Elec ou Info, microship t’offre 2 échantillons gratuis (même les frais de port) par mois (je parle d’échantillons de µC). Et le logiciel utilisant PICKIT est gratuit.

    Donc c’est bien mais méfie toi de toujours acheter un Atmega328 flashé. (Et pas un truc vaseux à HongKong qui va mettre 3 mois à arriver et qui ne fonctionnera pas) (et pour passer à une puce plus puissante, méfie toi qu’il y ai le même nombre de pin).

    Répondre
    1. Idleman Auteur de l’article

      Je suis au courant :) c’est bien pour ça que je précise dans la liste du matériel « Micro contrôleur ATmega 328-pu avec bootloader inclus »

      Cela dit, il est possible (et assez simple) d’intégrer le bootloader nous même, je propose la puce avec bootloader intégré pour nous mâcher un peu le travail et éviter de complexifier le tuto d’avantage, mais a terme nous feront exprès de ne pas acheter de puces flashées, historie de réduire le coût et de modifier un peu le bootloader à notre avantage (par exemple pour utiliser l’horloge interne de l’Atmega et se passer du résonateur pour les montages autres que radio).

      En fait l’Arduino IDE permet, comme pour les PIC, de flasher l’atmega vierge, c’est juste que je souhaite épargner un peu mes pauvres lecteurs pour le moment ^^.

      Répondre
      1. Geo

        D’acc :)
        C’était juste pour préciser au cas où un mec se dirait « Chouette j’en ai trouvé des moins cher sur EBAY!!! » et qu’ils ne soient pas flashés :)
        Pour l’horloge interne, je suppose que c’est dans le « build » qu’il faut choisir un truc du genre interne osc et pas HS (high speed qui correpond au quartz).
        En tout cas c’est cool, vu que je galère un peu en C++ (surtout pour la compilation, merci au passage ^^) ton tuto m’a donné envie d’essayer ces puces. Et oui le PIC c’est en C :p
        J’ai déjà découpé une multiprise (oui pourquoi la démonter quand on peu y aller à la pince coupante… Non javais pas les tournevis et j’avais la flemme de fraiser les vis :p)et connecté le relai 8 canaux. J’ai soudé la carte de l’alim du téléphone pour que tout s’auto alimente au secteur.
        Et du coup je vais essayer de passer du pic au ATmega (compilateur gare à toi!)

        Bon courage pour la suite :)

        Répondre
        1. Idleman Auteur de l’article

          C’est effectivement un risque :), faudrait que je mette cette partie en gras, que les lecteurs se doutent que c’est une précision importante, après si ils achètent une vierge ya pas mort d’homme mais ils auront un peu plus de boulot :) (enfin 3 clics en plus dans les menu de l’ardui IDE mais bon faut le savoir).

          C’est possible oui pour l’horloge interne, au pire je demanderais à Alexandre (qui à posté un commentaire tout a l’heure) qui fait partie du lab et qui à déjà fait ça pour son projet de gestion de plante ultra basse consommation :)

          Bonne chance pour ta multiprise :), et prend tes précautions, je ne voudrait pas avoir un électrocuté sur la conscience :)

          Le passage du pic a l’atmega ne devrait pas poser trop de soucis, c’est juste une question de marque différente, mais tous les fonctionnements (flash de la puce, programmation, langages prix) ont l’air identiques à deux trois broutilles prêt.

          Répondre
          1. Geo

            Un dernier truc et je t’embete plus (pour la journée du moins :p)

            Arduino Uno R3 c’est la même chose que l’Arduino Duemilanove en plus récent?

          2. Idleman Auteur de l’article

            En fait tous les arduinos sont basés sur le même principe (une puce atmega + une plateforme de dev et de branchements) c’est juste qu’il y a plus ou moins d’ajout de périphériques en fonction du modèle et que la puce atmega peut également changer de modèle (atmega8, atmega 128, atmega 328, atmega1280) ce qui augmente ou diminue la mémoire programme (respectivement 8k, 16k, 32k et 128k).

            Certes ardui contiennent des particularités comme la nano, mini et micro qui sont faites pour de petits montages, l’ethernet qui contient un shield ethernet intégré pour la brancher au réseau, la léonardo qui peut apparaître comme un périphérique sur les pc et qui possède un atmega spécial,la lilypad faite pour les gaypride (ok je sort..)

            Tous les modèles sont dispo ici pour faire des comparatifs hardware : http://arduino.cc/en/Main/Products?from=Main.Hardware

          3. Geo

            Nickel !

            Merci pour les infos (sympa la lilypad :p)

            Ca y est t’es tranquille pour la journée ;)

          4. Idleman Auteur de l’article

            C’était du gâteau !! *s’éponge le front discrètement*

        2. Alain87

          @geo
          Merci pour tes question ! C’est bien utile pour les débutants comme moi.
          @Idleman
          Très sympa ton blog, dans lequel je comprends presque tout. Bravo!
          Ma commande est passée pour 4 nivaux à eau sur Ebay. La lecture du blog va me coûter cher en bidouilles.

          Répondre
          1. Idleman Auteur de l’article

            Le but c’est de faire du low cost, donc normalement non ça ne coute pas très cher ^^ (enfin pour vous parce que moi en testant je grille pas mal de trucs que je dois racheter quand même XD)

  8. anthony

    T’as pas encore foutu le feu ;) ?

    Répondre
    1. Idleman Auteur de l’article

      Curieusement non, j’ai bien fait sauter les plombs avec l’alim chinoise et je me suis roussis quelques poils de nez mais c’était plus un éclair qu’une flamme alors ça compte pas :p

      Répondre
  9. Gat

    Tite question
    Il y a quelques temps pour pirater une Pc on utilisait des clee USB a programmer. En c
    Atmel32 ou 64 voir 128 pour la x3max
    Pourrai ton en fair quelque chose dans la x3max il y a même un lecteur micro sd

    Répondre
      1. Gat

        Auto correction de. L’iPad désoler
        En gros je parlais des d’ongle USB pour pirate les PS3 comme psjailbreak et x3max

        Répondre
  10. deff

    Déjà eu un incendie avec un disjoncteur programmé acheté sur ebay donc c’est un no-no.
    le prob c’est que ta carte relay elle vient d’ebay, donc bon si tu as un incendie ( ce que j’espère pas ) tu es pas assuré même civilement(norme CE?), ce qui est profondément pas cool( genre tu crames la baraque du voisin tu es respo.).
    Pour le montage si éventuellement tu veux le faire, une alim d’iphone 5/4S dont tu retire le cache plastique me parait la solution idéal ( environs 2*0.8*3cm d’alim) par contre je te conseil fortement de mettre un fusible a genre 10 amp, ça limitera les soucis sur sur ton relay, on sait jamais.

    Pour ta prise, moi je ferais plutôt un cast de résine, tu as a invest peut être 50 ou 60 euro mais tu peux couler genre 10litres( en +sieurs fois je te l’accorde). Le faire sur une reprap ca va être galère a cause de la forme intérieur et surtout de l’ancrage ( comment t’emboîtes les morceaux).

    J’ai une reprap à la maison à poitiers, si tu passes dans le coin, je dois faire ce type de montage pour des leds (17m en RGB) que je contrôle en wifi sur un wn703+microduino

    Try harder!

    Répondre
    1. Idleman Auteur de l’article

      Un composant construit hors UE ne veux pas forcement dire un composant qui n’est pas aux normes CE :), et heureusement sans quoi aucune équipement de ton appartement ne respecterait les normes ^^, la plupart des composants vendus par des professionnels chinois ou japonais sont obligatoirement aux normes européennes puisque leurs plus gros clients sont européens, après je suis d’accord qu’une petite vérification sur les datasheet s’impose, mais ce n’est pas le sujet de mon blog :).

      Pour l’alim, je cherche justement quelque chose de moins couteux et moins volumineux qu’un chargeur quel qu’il soit, pour le moment je n’ai pas trop de pistes :)

      Répondre
      1. deff

        1* Ta carte relay n’est certifié rien ( vu les photos c est la meme que la mienne , j’en une en 16 aussi): si tu as un départ de feu == tu es responsable, le mettre en gras dans l’article pourrait être une idée car si ca a arrivait genre a un ado/adulte qui te lis ca serait genre la loose. (Je parle chinois, et je vivais en chine, donc oui je connais les produits et leur certifs :: check taobao.com.cn si tu veux te faire une idée du shopping). Les produits chinois sont même pas moins mauvais que les produits francais ( disjoncteur legrand avec des contacts en mousses…) simplement expliquer ca a ton assurance habitation autre histoire.

        2* Acheter juste le bloc usb du chargeur iphone revient relativement cheap ( tu payes juste le bloc prise -> female usb, mieux qu’un chargeur complet) ~~1euro tu récupères du 5V .
        http://www.ebay.fr/itm/USB-Wall-Home-Charger-AC-Adapter-for-Apple-iPhone-4-4G-/260746096384?pt=PDA_Accessories&hash=item3cb5adaf00
        Tu peux aussi en récuperer d’occaz

        3* Je serait intéressé de voir si on peut pas realiser la prise carrément juste sur un module radio( un qui transmet de la data après reconnaissance de l’adresse) avec un circuit double gachette. Mais bon ce ne sera plus compatible avec la télécommande que tu as déjà.

        Bonne chance

        Try harder

        Répondre
        1. Idleman Auteur de l’article

          Effectivement le chargeur femelle semble être pas mal, je l’ai commandé pour le tester (parce que l’alim chinoise semblait pas mal aussi à la base ^^).

          Je n’ai pas compris ce que tu aimerais faire (3em point).

          Répondre
          1. deff

            il y a des modules en 433Hz qui fonctionnes avec un adressage sur la carte, et envoie ensuite le message sur un port data. Avec un circuit bi stable de commande de ton relay on peut imaginer se passer de uc si le but c ‘est juste un on/off. Ca devrait permettre d’encore diminuer la taille et le prix du montage, par contre les possibilités d’évolutions seront nulles.

          2. Idleman Auteur de l’article

            Ah je vois ^^, effectivement ça m’intéresse moyen, je préfère encore payer les 3€ du micro et pouvoir personnaliser mon protocole/mes périphériques, surtout que l’atmega est remplaçable par des puces plus petites et moins chères sur le long terme.

            De plus j’aimerais améliorer encore ma prise en ajoutant quelques éléments :

            Variateur de luminosité
            Capteur température
            Capteur de luminosité
            Émetteur RF (pour les retours d’infos etat du relais et capteurs)

            De cette manière je n’ai qu’a ajouter quelques bits à mon protocole

    1. Idleman Auteur de l’article

      Ce n’est pas idiot du tout, pourrait tu m’avertir dans le cas ou il y aurait effectivement un transformateur dans ce petit bijoux de boitier ? :)

      Répondre
        1. Idleman Auteur de l’article

          Dommage ^^ bon au moins ya un joli boitier :)

          Répondre
  11. chep

    Je connais ton blog depuis quelques jours seulement. Je cherchais a faire… Exactement ca.

    Super boulot!

    Maintenant jai une question: comment faire pour avoir un bouton ou/et un bypass manuel. De meme pour des interrupteurs.

    Pour l’instant se que je compte faire c’est changer les boitiers des prises par des doubles, une prise modifié a ta facon et un interupteur va et viens, donc soit courant direct soit courant commandé a distance.
    Je precise aussi que je ne suis pas locataire, j’ai autoconstruit une petite maison, un circuit 220v pour les prises et un circuit 12v pour les lumières. Je peux modifier a souhait, mais pas envie de retirer des cables (en tout cas pas des cables gainés donc pas de grosse puissance)

    Pour les interrupteurs je comptais utiliser des modules blyss mais je vais attendre car je suis sur que tu va bientot faire un module rf avec un poussoir qui allumera un relais soit a la main soit a distance :-)

    Aussi pourquoi ne pas simplement mettre ton circuit dans le boitier de la prise directement dans le mur? C’est plus propre, le waf est meilleur.

    Répondre
    1. chep

      Et une autre question. Pourquoi au debut du tuto si on suit betement on achete un émetteur recepteur a 15 balles et ici a 1.5€ ? Ya t il une difference particuliere? Puissances, temps de reaction etc?

      Répondre
      1. Idleman Auteur de l’article

        Oui grosse différence : La première est construite en France, la seconde en chine, reste à savoir si comme moi, tu es 10 fois plus avare que patriote :D

        Plus sérieusement, lors du premier tuto, je commençais l’électronique et je ne fournissais pas encore au bon endroit (conrad est horriblement cher) je te conseille vivement le modèle a 1.5 qui est exactement le même et qui fonctionne de la même façon (il est même mieux puisque sa portée peut aller jusqu’a 200 m en fonction du voltage quand le premier ne vas qu’a 30m max).

        Répondre
        1. chep

          Je suis citoyen du monde, et c’est pas ici que je devrais donner mon opinion sur notre beau pays, libre juste ou transpire le bonheur le partage et l’honnêteté :-)

          Les chinois font autant du bon que du mauvais, quand c’est du bon je prefere acheter chez eux, ca leur permet d’en etre arriver a pouvoir demander des acquis sociaux, comme c’est des euros caz reviens forcement dans nos poches a un moment et ca allège pas trop mon portefeuille!

          Donc si tu a testé le matos et qu’il est bon je prend celui la. En plus il m’en faudra une petite 20aines donc le calcul est vite fait.
          Autant d’atmega ou meme attiny, autant dalim 220/5 ou de 12/5
          Plus les capteurs en tout genre.
          J’aimerais bien trouver un site ou prendre tout d’un coup dailleur mais surement pas chez conrad qui par ailleur vendent enormement de matos chinois au prix de l’Européen.

          Merci pour les info sur les boutons, je vais partir sur des interrupteur poussoir classique, ajouter les detecteur ir et integrer ton circuit dans les boitier encastrable.

          Visiblement la plus grosse difficulté sera la detection et le positionnement des gens dans lz maison, le reste etant deja résolu par tes tutos :-)

          Répondre
          1. Idleman Auteur de l’article

            Ma petite phrase sur le patriotisme était un cynisme, aucune personne normalement constituée ne choisirait sciemment de se faire enfler de 13.5 € par kit simplement par patriotisme (ou alors je dis ça parce que je suis jeune et que j’ai aucune valeur morale mais dans ce cas j’assume :p).

            J’ai bien progressé sur le capteur de température radio ce soir (augmentation des limites de -128 à 128 degrés, augmentation de la portée, inclusion des valeurs négatives) , je pense poster le tuto dans la semaine prochaine.

          2. chep

            -128 +128, Tu me dit ou tu habite que je vienne jamais ;)

            Merci d’avancer sur la temperature.

            De mon coté pour la localisation j’ai pensé a la fauconnerie, j’ai trouvé ca http://www.ayama.com/fr/emetteurs

            C’est tres cher mais le but est pas d’acheter, simplement voir la taille, c’est du 433 aussi donc on peux penser utiliser les emetteur recepteur des prises pour trianguler. Maintenant faut que ce soit rechargeable et pourquoi pas par induction (genre chargeur qi sur table de chevet)
            Mis dans une montre ou un bijou.
            On a meme pas besoin de beaucoup de porté, quelques metres a peine vu qu’on aura des recepteur partout dans la maison.

          3. Idleman Auteur de l’article

            Simple question de bits ^^ je suis sur 7 bits d’infos pour la température, donc 128 valeurs possibles (+ un bit de « polarité ») avec un bit de moins on ne pourrait aller que jusqu’à 64, et la ya quelques zones dans le monde ou ça pourrait faire chier ^^

            Mais à bordeaux il fait très bon :)

            Je n’ai pas compris à quoi sert le truc de fauconnerie, c’est un traqueur en fait? Si c’est ça, ça me parait relativement cher effectivement ^^. Autant construire un petit traqueur actif perso à base d’attiny + émetteur rf le plus petite trouvable + mini piles 3v ça peux teir assez longtemps aussi, à voir.

          4. chep

            Tu mesure ta temperature en numerique?

            Le truc de fauconnerie c’est simplement un emeteur 433 miniature. quand tu vois que sur loiseau c’est tout petit, que l’oiseau tiens dans la main du mec, ca donne une idée de se qu’il est possible.

            Et ouais c’est cher, faut pas acheter ca, mais simplement s’en inspirer. je verrais bien ca dans une bague ou autre, la maison sais ou tu est exactement, les animaux aussi, elle peux faire la distinction, allumer les lumieres ou les eteindes, sans que ce soit perturbé par les chats.
            C’est tjr dans l’optique d’econnomie d’energie pour chez moi.

            Un exemple bete, tu mate un film, tu va pisser, le son continue mais l’ecran s’eteind, quand tu reviens il se rallume. pareil pour la lumiere ou meme l’alarme qui se desactive quand tu arrive pres de chez toi. Ca me parait etre le gros truc a inventé parce que jusque la ya rien de fait meme en pro pour detecter proprement les gens dans la maison.
            Une fois que tout est automatisé c’est l’etape qui optimise tout. Pour les gars c’est rarement un probleme d’avoir un appareil type montre ou un petit porte feuille electronique dans la poche, pour mesdames ca n’est pas acceptable sauf si on le fait incruster dans un bijou sympa par le bijoutier du coin.
            Donc petit, le moins consomateur possible. sur le liens il on des traceur plus petit qu’une phalange qui tiennent 1 mois avant de recharger…

          5. Idleman Auteur de l’article

            Oui ce sont des numériques (mais si j’avais su j’aurais pris de l’analogique c’est tellement plus simple à code …) des ds12b20 pour être précis, de vrai usines à gaz question code (c’est bien ce que je leurs reproche ^^).

            sympa ton idée de quadrillage, mais si c’est pour éteindre la tv ou autres actions qui n’ont pas besoin d’être liées à une personne mais juste à une présence, autant utiliser des barrières infrarouges,des détecteurs de mouvements classiques (ou webcam) plutôt que de se trimballer avec un emetteur radio non stop ^^

    2. Idleman Auteur de l’article

      Tu veux un bouton pour allumer/éteindre la prise manuellement sur la prise c’est ça ?

      Il te faut modifier le code pour qu’il prenne en compte ce bouton (Arduino IDE propose plusieurs exemples de gestion de bouton dans Fichiers->Exemples->02 – Digital)

      Il faut ensuite que tu relie le bouton entre un pin de l’atmega et la masse (pin que tu aura précisé dans ton code). Voila le plan des pins de l’atmega :

      http://domotique.idleman.fr/data/priseMaison/arduinocircuit_fig12.jpg

      Après il est effectivement possible que je propose dans la v2 de la prise quelques options en plus comme celle ci :)

      Pour ce qui est de la dernière question, moi je suis locataire, si je touche aux prises, je me fait déglinguer ^^.

      Répondre
    3. wyz

      Salut,
      pour bypasser, il va te falloir un interrupteur C6 ( va et viens ) pour couper l’ arriver de ta phase en 230v de ton relais et la rediriger directement sur ta prise ou ton éclairage, tu peux inetrcaler un interrupteur simple entre ton av et viens et ta prise ( ou ta lampe ) pour allumer et étteindre, ou encore, avec un atmega et un émetteur ( et un p’tit transfo 230 / 5v ) créer un interrupteur HF qui commandera via l’ Atmega qui est dans ta prise ( ou lampe ).

      Répondre
    1. Idleman Auteur de l’article

      64,90 € la prise ^^ ça picote quand même, pour le même prix on peux en faire 10 des miennes (okay elles sont un peu moins classes ^^ mais elles font moins gaypride aussi :p). ET puis ça sent un peu l’interface de gestion proprietaire ultra verrouillée comme il en existe déjà des milliers, mais bon je reconnais que l’idée de l’afficheur de consommation de courant m’a faite marrer ^^ (même si ces veilleuses doivent du coup elles même consommer non stop un peu de courant ce qui rend le principe un peu paradoxale :p) bref, même pas peur XD !

      Répondre
  12. Eswak

    Salut,

    Dis moi, pourquoi brancher l’ATMega comme ça de façon extérieure à l’Arduino ? J’imagine que c’est plus simple de déclipser l’ATMega qui est sur notre arduino, de mettre l’ATMega qu’on veut programmer à la place et de téléverser (j’adore ce mot) directement le programme avec le logiciel Arduino, non ?

    J’ai un Arduino Uno (qui est relativement similaire au Duemilanove) mais j’avoue que ça ne m’est jamais venu à l’idée de débrancher l’ATMega qui est dedans pour m’en servir directement. Il faut tirer fort pour la retirer ou bien ça se déclipse tout seul ? J’ai peur de tout casser :P (mon Arduino est chez un pote actuellement sinon j’aurais essayé)

    Répondre
    1. Idleman Auteur de l’article

      Le mieux c’est un petit tournevis plat a passer en dessous le la puce pour les declipser dans les abimer.

      Oui c’est possible de programmer la puce direct depuis le support de l’ardui, mais j’ai choisis ce montage pour les raisons suivantes :

      1 – Une fois le montage final soudé sur une plaque, il est possible de le reprogrammer sans toucher à la puce (simplement en prévoyant les ports tx, rx et reset sur le circuit de production).
      2 – Dans certains cas (comme la gravure du bootloader qu’on à pris toute faite ici mais qu’on fera nous même par la suite pour reduire les couts) il peut être necessaire
      d’utiliser une puce atmega pour en programmer une autre, ce qui force l’uilisation des ports tx/rx externes.
      3 – Ca permet d’aborder l’utilisation des ports series pour la programmation de micro puces, ce qui permettra par la suite aux débrouillard de programmer l’atmega autrement que via une plateforme arduino (voir même de programmer d’autres puces que l’atmega),
      en laissant tout branché sur l’arduino, on ne vois rien et on se repose completement sur la carte sans savoir d’ou viennent et ou partent les informations de programmation.

      Répondre
    1. Idleman Auteur de l’article

      C’est carrément sympa :), je cherchais justement un petite montage simple comme celui la !! Après reste a savoir si ça vaut le coup question prix :), a tester, merci beaucoup pour le tuyau :)

      Répondre
      1. Christophe

        Bonjour,

        Mais euh y a pas de transfo sur ce genre de montage, qui soit dit en passant est un montage des plus connus, pont de diode, condo et régulateur.
        Il faut trouver un transfo assez petit quand même.

        Répondre
        1. Idleman Auteur de l’article

          Si il y a un transfo :) (tr1), en revanche sa référence n’est précisée nulle part ce qui est gênant :)

          Répondre
  13. albert

    Salut,

    Je voulais savoir une chose depuis pas mal de temps et tu es la bonne personne pour me donner une réponse je crois.

    Tu as déjà démonté une prise chacon (celle de ton tuto 12) ? Ne peut on pas récupérer le système pour l’incorporer dans une prise murale ?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Oui j’en ai déjà démonté une, et oui elle est incorporable dans une prise murale, après reste a voir l’intérêt de faire ça :)

      Répondre
      1. albert

        l’intérêt c’était pour évitez d’avoir la grosse prise chacon par dessus une prise murale.

        Et j’avais dans l’espoir de mettre sa aussi derrière un interrupteur pour commander mon éclairage de la maison.

        Possible ? Ou je fais une énorme bêtises dans ma tête la….

        Répondre
        1. Idleman Auteur de l’article

          C’est possible, mais quitte a déglinguer complétement la prise chacon, autant créer la prise IDLE proposé dans ce tuto, ça te coutera moins cher :)

          Répondre
          1. albert

            Le sujet de la Prise By IDLEMAN :P m’intéressé beaucoup car je cherche aussi à créer mon propre interrupteur RF mais finalement le besoin d’une alim 5v rend la prise moins intéressante pour mon application.

            Par contre l’idée de la multiprise, génial !! (TV,console,karotz) le tout sur la même comme maintenant avec un commutateur manu quand même ^^.

            tu pourrais m’envoyer une photo de l’intérieur d’une prise chacon ? (Je te tutoie même si on c’est jamais parlé c’est pas grave :D)

            Ah oui et au niveau du coût je pense que sa doit se valoir si on compte le coût de l’alim 5v.

            Encore merci d’avance

          2. Idleman Auteur de l’article

            J’ai dépiauté la prise depuis, le boitier est partis à la poubelle désolé :)

            Une alim 5v peut être trouvée à 1€ sur ebay (cf chargeur d’iphone sans raccord usb) ce qui nous fait du 7€ la prise (et encore je compte large) donc je pense qu’on est en dessous de la prise chacon, cela dit le plus important c’est qu’on maitrise totalement le processus et qu’on est à même d’upgrader le firmware des prises à tout instant pour y intégrer de nouvelles notions :)

      2. albert

        C’est pou evitez d’avoir la grosse prise chacon par dessus la prise murale.

        De plus ce que je souhaite faire, c’est de mettre ce systeme en shunt sur un interrupteur pour allumer mes eclairage

        Répondre
        1. albert

          Pardon petite erreur..

          Répondre
  14. cnob

    Merci ! encore un super article très intéressant ! ;-)
    Et maintenant si je veux faire une télécommande ou un interrupteur 433mhz autonome alimentée par une pile cr2032, comment puis-je m’y prendre ?
    Merci

    Répondre
    1. Idleman Auteur de l’article

      Même montage (sans le relais) et avec un émetteur à la place du récepteur, pour le code il faut faire l’ingénierie inverse (à savoir envoyer la trame de bit au lieu de la recevoir ^^) et c’est bon :p.

      Je ferais peut être un tuto un de ces 4 :) (mais pas tout de suite j’ai quelques sujets à traiter avant ^^)

      Répondre
      1. Christophe

        Ouai parce qu’un interrupteur DIO ça pique, enfin chez Leroy Merlin : 19,90€ et vu ce qu’il doit y a voir dedans c’est abusé :)

        Répondre
        1. Idleman Auteur de l’article

          Et encore, DIO reste correcte par rapport a certains vendeurs de domotique sans âme qui se font une marge plus que scandaleuse, sans ces rapaces, voila bien longtemps que la domotique serait accessible à tous.

          Répondre
  15. __G__

    Bonjour,

    Merci, pour tous ces tutos. Il m’ont bien inspiré.
    J’ai dans l’idée de créer un système de sécurité pour protéger ma maison, à base de raspberry et d’AtMega328, le tout communiquant avec des émetteurs/récepteur 433Mhz.

    Le principe serait d’avoir plusieurs AtMega328 autonomes :
    – 1 ou 2 pour la détection d’intrusion (détecteur de chaleur ou autre) avec un émetteur pour transmettre l’alerte aux autres modules et un récepteur pour pouvoir armer ou désactiver le détecteur.
    – 1 qui contrôlerait une sirene, avec un récepteur pour recevoir l’alerte venant des autres modules et se déclencher

    Et enfin une Raspberry avec un émetteur pour armer ou non les modules de détection (pourquoi pas a distance via une interface web) et un récepteur pour recevoir les alertes émises par les détecteurs et pourquoi pas envoyer un message sur mon mobile

    Il ne manquerait plus ensuite (mais facultatif) qu’une télécommande pour armer ou désarmer le système sans passer par l’interface web.

    Cependant la méthode que tu utilise pour transmettre/recevoir les données dans ton tuto, avec les emmetteurs/recepteurs 433Mhz, me parait assez compliquée à mettre en œuvre à cause de la gestion des timing, des parasites, etc…

    J’ai donc regardé ce qu’il se faisait sur arduino et j’ai trouvé la librairie VirtualWire, qui fonctionne apparemment très bien, et qui permet de transmettre des informations sans se soucier des timing, des parasites, etc… (elle fait automatiquement des checksum sur les infos reçues), et encore mieux on peut envoyer directement une série d’octets ce qui simplifie grandement l’écriture du code.

    Le hic, c’est qu’il n’existe aucune version de cette librairie pour Raspberry, je me pose donc la question : pourquoi ne pas utilisé un AtMega328 avec un émetteur/récepteur 433Mhz qui utiliserait cette fameuse librairie « magique » VirtualWire, et qui une fois connectée à la raspberry via USB (ou les GPIO) servirait d’interface RF 433Mhz pour communiquer avec les autres éléments du système.

    Cela simplifierait grandement l’écriture du code sur la raspberry ou sur les ATMega328.

    Qu’en pensez vous ?

    Répondre
    1. Idleman Auteur de l’article

      On peux se tutoyer on est sur l’idleblog :p.

      Je connais virtualWire, j’ai eu l’occasion de tester lors de mes ptites expérimentations avec les ardui. C’est effectivement une bonne librairie.

      Cela dis je n’ai aucun soucis avec ma librairie, une fois l’antenne placée et les alim externes en place, la portée et la destruction des parasites est optimale.

      Je compte créer une carte de transition temps réel a base d’arduino pour aider le rpi, en revanche je préfère rester avec ma lib, dont j’ai la totale maitrise et que je peux faire évoluer comme je l’entends :)

      J’ai quelques idées et projets que je ne pourrais pas aboutir si je ne maitrisais pas le processus de 1 à Z, c’est pourquoi, à l’exception de wiring Pi (qui est remplaçable car son fonctionnement est simple a comprendre) je n’utilise pas de librairies particulière dans cette domotique.

      Cela dit ton idée est bonne et tu devrais continuer sur cette voie ça me parait tout à fait réalisable pour ton projet :), je te souhaite une bonne continuation :p

      Répondre
    2. nb

      Bonjour,

      J’ai longtemps hésité avant de répondre car j’avais un peur peur de paraître polémique. Je le fais finalement, et je risque d’être un peu long, veuillez m’en excuser.
      L’utilisation d’un Raspberry, donc un ordinateur, pour traiter les signaux 433 MHz est un peu du luxe. S’il s’agit de le faire dans le cadre d’un exercice, alors oui c’est intéressant. Mais ce n’est pas une solution durable. Les fréquences d’échantillonages nécessairee sont telles qu’un ordinateur « normal » ne peut pas traiter ce genre de signaux en plus de son travail normal, à cause des interruptions non maîtrisées. Idleman a donc contourné le pb en passant son programme en mode temps réel. L’exercice en vaut la peine, et je suis admiratif devant le résultat. Néanmoins, un ordi qui passe tout son temps au service d’un programme, et qui prend le risque d’ignorer d’autres événements ne peut servir qu’à ça. C’est d’ailleurs pour ça que VirtualWire n’a pas été portée sur RPI (c’est ce que le développeur m’a dit).

      Il faut donc choisir entre un RPI et un microcontrolleur (ATmega, ATtiny…) pour traiter les signaux émis par un autre dispositif.

      J’ai vu la solution que tu proposes, utilisée par quelqu’un d’autre. Lui passe par une liaison série entre l’Arduino récepteur et le RPI.
      C’est bien, mais ça bloque le port série.

      J’ai pour ma part opté pour une autre solution. Arduino Emetteur (il joue le rôle de capteur)-> arduino Récepteur (Esclave I2C) -> RPI (Master I2C). L’intérêt de VirtualWire est de pouvoir formatter un message texte unique qui contient les valeurs de plusieurs sondes (température, luminosité…). On est de cette façon indépendants du protocole puisqu’on gère notre message.
      Toutefois la solution que prévoit Idleman avec la « carte de transition » me semble indispensable.

      Je dois tout de même ajouter pour être honnête et un peu plus complet que :
      1 – J’ai découvert ce genre d’utilisation du RPI grâce au MAGPI, et surtout grace à ce blog
      2 – Je ne connaissais absolument rien à l’Arduino. Et c’est encore ici que j’ai eu mon initiation. J’ai ensuite pris mon envol.
      3 – C’est très facile quand plusieurs personnes ont traité un problème, et se sont posé des questions durant des mois, d’arriver en disant : moi je fais la synthèse.

      Bravo à Idleman pour son travail.
      Merci pour ce qu’il nous as appris, mais aussi et surtout pour ce qu’il nous a permis de découvrir, le tout dans la bonne humeur.

      Répondre
      1. Idleman Auteur de l’article

        Voila une belle synthèse :), il ne fallait pas hésiter à la poster c’est le genre de commentaires qui font avancer les choses et c’est tout ce qui compte :).

        Je pensé également que le rpi à lui seul n’est pas la solution optimale pour traiter des signaux radio même si dans certains cas on peut s’en contenter (envois d’un signal ponctuel a une prise comme pour ce tuto par exemple :p).

        Je pense que la combinaison atmega (pour traiter les signaux bruts) rpi peut être très puissante, après a voir si c’est plus simple/souple de passer par I2C, les ports séries ou autres.

        Mes tutos étant plus orientés domotiques générale et rpi, je ne me met volontairement pas a fond sur la partie radio, je pense que c’est une belle techno mais pas toujours appropriée, le filaire étant souvent plus fiable, plus rapide et plus sécurisé bien que moins sexy et moins rigolot à mettre en place.

        Cela dit j’encourage les lecteurs ayant exploré cette partie « gestion des signaux radio » avec combinaison atmega+rpi ou autres techniques à en parler via un article sur le blog histoire de faire avancer tout le monde :)

        Répondre
  16. Pierre

    Encore une fois super tuto! Bravo!

    Je vois que tu es Bordelais (du moins vers Bordeaux), tu connais pas un magasin où acheter des résistances/condensateurs à l’unité (ou en petite quantité) ?

    Répondre
    1. Idleman Auteur de l’article

      Non, les boutique d’électronique sur bordeaux sont médiocres, les deux que je connait sont Soliselec et électronique 33.

      Dans les deux le staff est peu aimable, incapable de renseigner sur quoique ce soit et limite à souffler quand on leurs demande un truc, de plus les prix sont ridiculement élevés par rapport a ce qu’on peut acheter aux professionnels sur ebay.

      Bref je ne te les conseille pas du tout ceux la (surtout électronique 33, qui vas d’ailleurs bientôt mettre la clé sous la porte puisque plus personne ne veux venir chez eux).

      Répondre
      1. Pierre

        Merci pour ta réponse, c’est bien ce que je craignais. Je vais donc commander sur ebay et patienter!

        Répondre
  17. Olivier

    La suite, la suite….

    Super tes articles, je les ai dévoré en attendant mon rasberrypi.

    Voilà une jolie base pour me remettre à la programmation et surtout au monde linux que je connais asser mal.

    Bravo
    Olivier

    Répondre
  18. Matthieu

    Hello Idleman,

    Je suis ton blog avec intérêt depuis quelques semaines et cet article tape vraiment fort en abordant un sujet qui m’intéresse énormément. Je souhaite réaliser des modules prises, éclairages, gestion de chauffage et interrupteurs type Z-wave en low-cost.

    Pour ma part, je comptais m’orienter vers un AtTiny, mais la différence de prix comparé à la réduction de pins me dirige plus comme ton tuto sur un atméga.

    Afin d’augmenter la portée sans avoir à passer par une alimentation externe plus puissante, il serait intéressant d’utiliser l’émetteur de chaque module pour répéter le signal. Cela créerait donc un réseau maillé.

    Il y a énormément de possibilités.

    Félicitations pour tes tutos,
    Matthieu

    Répondre
    1. Idleman Auteur de l’article

      Oui j’avais pensé au maillé je pensais faire ça avec toutes les améliorations de protocoles prévus à la fin de ma série de tuto.

      Répondre
  19. kiw

    Chez electrodepot j’ai déniché une alimentation usb 5v 1a à 5euros. Elle n’est pas sur leur site. Je l’ai pas achetée mais je vais surement y retourner. Je vais faire des tests pour voir si elle est fiable. Je pense pas qu’il soit possible de trouver moins cher en magasin.

    Répondre
    1. Idleman Auteur de l’article

      Ca reste un peu cher ^^, le must pour le moment je pense c’est l’astuce énoncée un peu plus haut du bricolage de chargeur d’iphone à 1€

      Répondre
  20. fafnus

    Whaooo, put…. ca déchire….

    Ce sont les seuls mots qui me sont venus après avoir lu la totalité de tes tutos, plus les projets. Tu es une mine d’information à toi tout seul idleman.

    En plus tes tutos sont super bien conçu et simples à comprendre.
    Au fait tu penses finir ton projet domotique en combien de temps (j’attends la suite avec impatience comme tout le monde ici) ?

    Bravo, continu et encore une fois,
    Félicitations pour tes tutos, ton blog, et la suite de tes aventures….
    Fafnus

    Répondre
    1. Idleman Auteur de l’article

      Je suis content que ça te plaise :p

      Je n’ai pas vraiment prévu de dates particulières (c’est un coup à me foutre la pression ça ^^) je fais au fur et a mesure de l’inspiration, du temps et de la motivation, j’ai encore quelques idées à concretiser cf le plan ici et après je voudrait essayer d’améliorer un peu mon interface (voir al refondre) et yuri de manière a intégrer un peu mieux tout ca (avec une gestion des scénario, gestion portable, un yuri 100% codé idleman histoire de maitriser/perssonaliser un peu plus le code etc…)

      Répondre
  21. Modb

    Salut, Top le tuto ! merci
    Par contre, je ne trouve pas ou je peux acheter la résistance 1.27, sur ebay ou autre.
    Peux-tu me donner une piste?
    Merci

    Répondre
      1. Modb

        Ok, super merci. Par contre, je ne comprend pas trop pourquoi on peut aussi bien prendre une 1.27ohm qu’une 10k.

        Répondre
        1. Idleman Auteur de l’article

          Parce que je suis une buse en électronique et que la doc officielle semble privilégier la 10 k :)

          Répondre
          1. Eric

            Hello, comment choisis-tu tes résistances ? En fonction de ce que t’as sous la main ? :D
            Par exemple pour celle de 8.21MΩ ?
            J’y connais pas grand chose non plus, ça serait cool qu’un expert nous donne les valeurs appropriées avec une explication courte :)
            Sinon un grand merci pour tes tutos, je m’éclate !

          2. Idleman Auteur de l’article

            Salut :D, j’ai un peu honte de l’avouer mais oui les résistance de led j’y vais de manière très approximative, je n’ai jamais su comment savoir quel résistance flanquer sur telle ou telle led sachant que celle ci n’a aucune valeur/tolérance/voltage max visible sur son capot :D.

            Pour les autres résistances c’est généralement des infos glanées sur le web (donc un peu plus sûre ^^).

          3. pat

            et la loi d’ohm!!! U=RI

            pour le calcul de la valeur d’une resistance pour une led:
            LED rouge, orange, jaune (ambre) : 1.8V à 2V
            LED verte standard (vert clair) : 1.8V à 2.2V
            LED blanche souvent 3V

            On les alimentes en general a 20mA
            alim=U
            U=Uled +Ur

            r=Ur/I

            Sinon continu comme ca!
            Tu explique simplement les choses, cela peu aider pas mal de gens.

  22. Bruno

    Salut,
    Merci pour les tutos toujours compréhensibles.
    En attendant mon Ardui et les résonateurs pour passer à la pratique, j’aurai 2 petites questions:

    La première, si lors de l’enregistrement du signal de référence, je ne suis pas assez rapide et il me capte un signal qui n’est pas le mien, comment peut-on reprendre cette étape?

    La deuxième, je possède une télécommande porte clés Chacon (donc protocole Home Easy) qui ne me sert pas. Avec ton système nous n’avons plus besoin de décortiquer le signal envoyé par la télécommande pour en faire quelque chose puisque j’aurai juste à appuyer sur le bouton pour reconnaitre le signal de référence ou je me trompe ?

    Merci encore et A ++.

    Répondre
    1. Idleman Auteur de l’article

      Concernant la première question, c’est un point faible du programme et une fainéantise de ma part ^^ (cf partie amélioration du tuto), si tu te loupe la première fois (mais ça serait pas de bol) tu devra :

      • Court circuiter le code en mettant à la L57 (entre EEPROM_readAnything(0, signal); et if(signal.sender <0){) le code suivant :
        signal.sender = -1;
      • Ré-envoyer le programme dans l’arduino et envoyer un signal avec ta télécommande (le bon cette fois ci ^^)
      • Puis supprimer la clause signal.sender = -1; et réenvoyer le programme pour que tout retourne à la normale :)

      Ta télécommande porté clé devrait bien fonctionner avec ce tuto si elle est bien au protocol home easy et que chacon n’a pas fait de modif concernant le protocole sur ce modèle (parce qu’ils aiment compliquer les choses) après ne travaillant pas chez chacon je ne peux te garantir à 100% que ça vas fonctionner :)

      Répondre
      1. Bruno

        Merci pour tes précisions.
        Je joue avec cette fameuse télécommande porte-clés qui ne semble pas envoyer du code Manchester, elle n’a pas l’air d’avoir le protocole HomeEasy.

        Je reçois une impulsion plus grande au moment ou j’appuie sur le bouton de la télécommande (le verrou je suppose) puis 24 bits (le dernier change en fonction du ON/OFF), puis de nouveau le verrou et puis ça boucle.

        Penses-tu que des impulsions se perdent ou bien la télécommande peut n’envoyer que 24 (26 en comptant les « verrous ») ou y a t-il règle (8, 16 , 32…)? Je suis une quiche là-dessus alors je me pose des questions.

        Répondre
        1. Idleman Auteur de l’article

          le nombre de bit est définis par le protocol, donc ça ne m’étonnerais pas que le signal soit sur 24 bits (+ verrous) reste à définir quelles données correspondent à quel jeux de bits (pour ça faire un différentiel on/off et voir le bit variant peux aider, ca te donnera au moins le bit d’etat et si il est entre l’id télécommande et l’id récepteur, t’a toutes tes données)

          Répondre
          1. Bruno

            Le bit variant je l’ai. C’est le dernier bit.

            En revanche, tu me parles d’ID récepteur, pas tout saisi.
            Les 23 premiers bits ne sont pas simplement l’ID télécommande? Pourquoi un ID récepteur sur un matériel qui ne fait qu’émettre?

            En tout cas, tout fonctionne nickel, 3 jours d’arrachage de cheveux mais la lampe réagit à chaque appui de la télécommande, un vrai bonheur :-D Merci 1000 fois.

            Si quelqu’un a une télécommande Chacon 54591 et cherche les valeurs des pulsations (si le terme est bon), qu’il me fasse signe :-)

          2. Idleman Auteur de l’article

            Le bit variant je l’ai. C’est le dernier bit.

            Niquel, alors tu l’as plus ou moins ton code :), tu as réussi à le reproduire sans trop d’embuches ? :)

            En revanche, tu me parles d’ID récepteur, pas tout saisi.
            Les 23 premiers bits ne sont pas simplement l’ID télécommande? Pourquoi un ID récepteur sur un matériel qui ne fait qu’émettre?

            Parce qu’un même émetteur peux commander un ou plusieurs récepteur en fonction du bouton appuyé sur la télécommande chacon de base, elle comporte donc un code récepteur par bouton de manière à ce que le récepteur se reconnaisse. Cela dit ta télécommande m’a l’air assez basique donc tu est certainement sur un simple code émetteur reconnus dans tous les cas par tous les récepteurs.

          3. Bruno

            OK, je comprends maintenant.

            Si, si, je me suis arraché les cheveux, j’ai même failli perdre espoir :-D

            Je crois que j’ai eu beaucoup de chances de trouver le code en fait.
            J’ai joué avec ton script en virant les 3/4 et en jouant uniquement sur les valeurs de la détection du verrou lors de l’appui sur le bouton de la télécommande.

            Entre 11000 et 12000, le script s’affolait. (Il n’y a pas l’air d’y avoir grand monde d’ailleurs dans ces valeurs parce que je n’avais plus aucune détection d’ondes hormis la télécommande.)

            On est loin des 2700 et 2800 de ton script :-D

            En tout cas, sur ces 3 jours, j’ai appris beaucoup de choses sur les ondes radio :-D

          4. Idleman Auteur de l’article

            J’en suis content :), c’est plus formateur de galérer un peu en voulant faire du hors piste autour d’un tuto que de le suivre bêtement à la lettre et de s’en satisfaire, félicitation :)

  23. Stephane

    Bonjour,
    J’ai pas mal fait de tests pour récupérer le code d’une télécommande de portail.
    Mon problème est le suivant, uniquement en mettant un fil sur une pin GPIO , l’etat du GPIO est constamment en train de changer (true/false) !
    Ça devient du coup très difficile de lire les datas du récepteur.
    As-tu trouvé une astuce ?
    Je précise que je fais ça avec mon raspberry (j’ai pas d’arduino pour l’instant)

    Répondre
    1. Idleman Auteur de l’article

      Il y a plusieurs méthode pour mieux recevoir avec le rpi :

      1. Fixer une antenne de 17,3 cm sur al partie antenne de ton récepteur
      2. Alimenter ton récepteur avec une alimentation externe au max de sa capacité (voir la fiche technique de ton récepteur)
      3. J’ignore le programme que tu utilise mais le rpi à tendance à être lent, donc si tu a la main sur ton programme, essaye de le lancer en tache prioritaire (comme je le fait dans les miens via la fonction shedule_realtime)
      4. Éloigne toi de tout parasites potentiels
      5. Re vérifie une vingtaine de fois tes branchements.

      Répondre
  24. José

    Bonjour Idle

    Tout d’abord, je te remercie pour la qualité de tes tutos. J’ai hâte de lire la suite.
    Jusqu’à présent tout se passait bien. j’ai bien pris le temps de comprendre et de faire pas mal de tests. Le but étant pour moi de piloter ma cuve à eau de 3000 litres (mise en route de la pompe, commande d’électrovannes et mesures de la hauteur d’eau restante.

    Je bute comme Stéphane sur un allumage régulier de la diode de contrôle. Elle clignote super régulièrement même sans GPIO connecté. J’ai vérifié l’ensemble des connexions 21 fois lol et c’est pas mieux. Stéphane ou Idle avez vous une nouvelle idée ?

    C’est du super taff ce blog.

    Répondre
    1. Idleman Auteur de l’article

      Yop, désolé pour la réponse lente ^^, j’ai eu un peu de maille :)

      Donc les questions d’usages avant de te donner un semblant de piste foireuse :D :

      Quel tuto tu suis
      As tu bien pensé à faire l’apprentissage du code 1234567 par ta prise ?
      As tu bien exécute radioEmission en sudo ?
      As tu bien mis une antenne de 17.3 cm sur ton émetteur
      As tu bien revérifie tes branchements (place une diode sur l’émetteur pour voir si un signal est bien envoyé)
      As tu essayé de tester la portée en rapprochant la prise de l’émetteur de ton rpi ?
      As tu les même référence de prise chacon que moi?
      As tu essayé avec des alim externes?

      Répondre
  25. José

    Merci déjà de m’avoir répondu. Pas de chichi entre nous, je sais que tu as pleins de projets en cours alors point d’excuse pour les réponses tardives :p.

    J’ai suivi ton tuto n°8 à la lettre déjà pour valider le fonctionnement de l’émetteur et du récepteur. J’utilise une alimentation externe et je m’étais imaginé que les diodes ne clignotent qu’a la réception ou l’émission d’un ordre. Alors qu’en fait elles clignotent et scintillent dés que j’actionne a à coté du récepteur un contact sec avec émetteur de ce type: http://hackspark.fr/fr/433mhz-wireless-door-sensor-door-switch.html

    J’ai essayé de faire en script ce que tu as écris « Créer un programme (php par exemple) avec une boucle qui pendant 10 secondes vas flooder le “gpio read 2”…
    Il faut dire que dans les années 80 le php ??? J’ai appris le basic sur Thomson M05
    http://fr.wikipedia.org/wiki/Thomson_MO5 :) sans succès.

    Pour la suite du tuto, j’attends mes prises Chacon et je reprendrai tout depuis le début.
    Par contre, penses tu qu’il est possible de faire un montage identique permettant justement de capter un signal émis par des capteurs et de les réutiliser ?

    Merci encore pour ton blog :)

    Répondre
    1. Idleman Auteur de l’article

      Sur le tuto 8, il n’y a aucune intelligence derrière l’envois ou la réception des signaux, juste le montage, donc tu captera tous les signaux émis sur la fréquence de 433 mhz (et il y en a beaucoup car cette fréquence est idéale pour les courtes portées et autorisée sans licence)

      Le php n’est pas assez réactif pour ecouter en temps réel un signal, mieux vaut s’orienter vers un ptit programme en C++ je pense :)

      Concernant la capture et la ré-émision d’un signal, oui c’est possible pour tous les signaux qui ne sont pas « tournant » (c’est a dire que le signal change en fonction du temps, c’est le genre de sécurité qu’on peux retrouver sur les bagnoles)

      J’en parlerais certainement sous peu, je dois hacker mes volets et mon portail de résidence sur le même principe

      Répondre
      1. José

        Merci pour tes réponses.

        J’attends la suite avec impatience. :p

        Répondre
  26. Bruno

    Bonsoir,
    J’ai une question sur la sécurité.
    Supposons que tous mes luminaires soient équipés avec ces prises radio.

    Scénario : Boum, je me casse la gueule, je peux plus bouger (simple supposition), les secours arrivent et entrent (je ne sais pas comment j’ai pu les appeler, je ne peux plus bouger :-))… Problème, impossible pour eux d’allumer la lumière parce que les relais sont ouverts et (donc) les interrupteurs muraux inactifs (en plus il fait nuit :-))

    Y a-t-il une solution qui ne neutraliseraient pas les interrupteurs?

    Répondre
    1. Bruno

      Désolé, je viens de lire les coms et de voir que je n’étais pas le seul à me poser la question.

      J’ai pu y lire quelques réponses et idées.
      Ceci dit, si tu as des compléments à apporter… :-D

      Répondre
      1. Idleman Auteur de l’article

        Je t’ai répondu sur le comm du dessus :)

        Répondre
    2. Idleman Auteur de l’article

      C’est l’avantage de la radio, le circuit de commande peut être multiple bien que le montage de puissance soit unique, si tu regarde la video du tuto avec les prises chacon, tu verra que je les commandes a la fois via yuri, via l’interface web, via la télécommande classique de chacon ET via des interrupteurs radio fixés sur mes murs, ainsi les pompiers ne seront non seulement pas déstabilisés, mais ils ne verrons même pas la subtilité par rapport à un système classique :)

      Répondre
      1. Bruno

        Merci pour ta réponse.
        Peux-tu me dire quels interrupteurs tu utilises?

        Promis, après je te laisse tranquille :-D

        Répondre
        1. Idleman Auteur de l’article

          Chacon sur la vidéo ^^, mais construire un interrupteur maison et l’intégrer dans un interrupteur classique coûte moins cher

          Répondre
  27. zebulon55

    ….. j’ ai vue çà : http://www.gotronic.fr/art-recepteur-marche-arret-sans-fil-he886-18101.htm
    je sais bien que c’est plus cher et moins pratique qu’ attiny avec un récepteur et un relais , mais pas de Circuit Imprimé a faire , rentre dans les boites électriques , surement aux normes .
    C’est surement pas le même protocole .
    Mais pour une fois que je vois un produit commercial a un prix ~correct .

    Répondre
    1. Idleman Auteur de l’article

      Ben c’est plus cher que chacon et moins facile à intégrer (faut couper du fil) mais c’est une solution oui ^^.

      Répondre
  28. supperdd

    Salut je n’ai pas encore lu tout l’article car j’ai la flem et pas la possibiliter de faire le montage pour le moment mais ca viendra .
    y a t il un code d’identification sur ton montage pour que si tu en fait 2 ou + elles ne s’active pas toutes ensembles !? sii c’est faisable tu pourrais ajouter un micro pour parler a yuri depuis toutes les pieces + capteur de T° de luminosité… pour envoyer toutes les info a la central domotique..
    enfin bref encore bravo

    Répondre
    1. Idleman Auteur de l’article

      La prise ne répondra qu’a un seul type de signal qu’elle « apprend » lors de ton premier branchement, donc oui il y a une identification qui permet de distinguer l’allumage d’une prise d’une autre prise :)

      Pour le reste, je ne veux pas tout mettre dans une seule prise, je fais des tutos séparés pour que les gens comprennent mieux, mais le tuto sur le capteur de température est le suivant, donc tu as juste a fusionner les deux.

      Répondre
  29. Matthieu

    Hello,

    Pour l’alim, il y a ce montage là :
    http://www.sonelec-musique.com/electronique_bases_alims_sans_transfo.html

    Il sort du 5V DC @40mA max, ce qui devrait être suffisant pour ton montage je pense (7mA Atmega + 20mA pour le relais, le reste je ne sais pas trop.)

    Il y a aussi des composants qui font le même job (mieux pour l’intégration), mais impossible de trouver un distributeur (enfin, j’en ai trouvé 1, mais à 6€ pièce, c’est abusé!)

    Matthieu D.

    Répondre
      1. zebulon55

        j’ ai jeté un coup d’ œil très rapide et vu les schémas , voila mon avis ( c’est le mien ! ).
        Pour simplifier , les premiers sont pour une consommation constante ( une Led ) pas de changement ( veille > commande de relais ) puis ils sophistiquent petit a petit le montage pour arrivé a une  » vrais  » alim. sans transfo. , mais là au niveau tarif , il commence a il en avoir pour aussi cher qu’ une toute faite , puis ce pose le problème du CI ( circuit imprimé ) qui alourdi le cout .
        Pour finir le problème de puissance , si s’en est un , peut être résolut en choisissant/doublant certain composant .

        Répondre
        1. Idleman Auteur de l’article

          Merci pour l’avis :), je vais donc rester sur les bon vieux chargeurs ipad à 1€ (en plus j’en ai commandé des supers mignons :p)

          Répondre
  30. bruneau

    Super ce tuto, bon je suis paumé dans les commentaires mais j’ose 2 questions :
    Pourquoi passer par l’arduino et pas programmer directement la puce avec rpi ?
    Tu montres sur tes schémas une lampe pilotée, pourrait-on envisager piloter un radiateur électrique ?

    Merci.

    Répondre
    1. Idleman Auteur de l’article

      Pourquoi passer par l’arduino et pas programmer directement la puce avec rpi ?

      Aucune idée, je n’y ai jamais songé, et je n’ai jamais testé ^^, mais vu que le rpi dispose de SPI c’est théoriquement possible :) (après j’ai un peu la flemme de tester ^^)

      Tu montres sur tes schémas une lampe pilotée, pourrait-on envisager piloter un radiateur électrique ?

      Oui, tu peux brancher n’importe quoi à ta prise à partir du moment ou ton relais le supporte, il faut bien regarder l’intensité max du relais et celle de la machine que tu connecte, genre le relais que je propose dans la liste matérielle supporte au max 10A, donc n’y branche pas ta machine à laver XD

      Répondre
      1. Laurent

        Bonjour,
        Comme je vois qu’il y a une palanquée de gens qui pensent qu’on peut couper/rétablir un circuit électrique comme ça sans aucun soucis, je me permet d’apporter quelques précisions.
        Pour « piloter » des radiateurs électriques, à moins d’avoir de très vieux grille-pains énergivores qu’il faudra alors songer à changer, les radiateurs électriques comportent ce qu’on appelle un fil pilote avec :
        2 assez dépassé, 4 ou 6 ordres.
        Et comme son nom l’indique le fil pilote, bah il « pilote » le convecteur. Après le détail se trouve très facilement sur internet.
        Le très gros avantage, plutôt que de ne plus alimenter ou réalimenter, à la hussarde, un récepteur électrique qui peut consommer jusqu’à 2,5kW. Ce qui provoquera, à ne pas en douter, un extra courant de rupture pouvant largement dépasser ce qu’encaissent les contacts du relai et foutre le feu, plus de 15/16A comme ça à la louche …
        Le fil pilote lui ne consomme que quelques mA. ou tout au moins pas plus d’1A, ce qui sera beaucoup plus supportable par le relai, la prise et le convecteur par la même. Car c’est un récepteur de courant, qui comme tous les récepteurs n’aime pas trop être allumé/éteins/allumé/éteins….. Toujours ce fameux extra courant de rupture qui grille les ampoules fait arquer et parfois charbonner les interrupteurs etc.

        Donc avant de vous lancer dans le pilotage d’appareils gourmands en courant, je parle bien de courant (Ampères) et non de tension, sur un convecteur c’est du 220V même sur le fil pilote,il serait très utile de demander conseil à ceux qui s’y connaissent un peu en électricité. Pour votre information, et sans vouloir vous foutre la trouille, le corps humain ne s’en sortira pas sans risque réel de séquelles irréversibles si il est parcouru par un courant de plus de 75mA pendant plus de 10s, c’est pas beaucoup hein.

        Voilà donc ne chercher pas à couper la tension sur des appareillages, déjà doté d’ailleurs d »une commande interne faite pour ça, mais utilisez les caractéristiques mises à dispositions. Soit sur une ampoule ou une prise vous n’aurez pas le choix, mais sur un convecteur oui, alors servez vous du fil pilote.

        Répondre
  31. supperdd

    salut encore une petite question est ce que ton montages est compatible avec les tellstcik ? cest petites clef usb qui permette de commander du materiel chacon depuis un pc ??je suppose que oui mais je prefere demander :-)

    Répondre
    1. Idleman Auteur de l’article

      Mes prises à l’heure actuelle imitent de très près les chacon, donc je suppute que oui :), dans la logique en tout cas ça devrait fonctionner, après il faut tester ^^

      Répondre
  32. boué

    bonjour, voila j’ai un petit souci j’ai l’erreur avrdude: stk500_getsync(): not in sync: resp=0x00
    pour pouvoir codé le pross en C++ j’ai fait pas mal de recherche et j’ai rien trouver merci

    Répondre
    1. Idleman Auteur de l’article

      Cette erreur est un peu fourre tout, en gros c’est « je n’arrive pas à communiquer avec l’atmega » ^^, cela dit souvent le problème c’est que tu as mis dans l’ide un type de carte qui ne correspond pas à l’atmega, si l’atmega était livré avec un bootloader uno et que tu tente de le programmer avec un type de carte duemilanove, forcement ça vas pas lui plaire :)

      Répondre
  33. boué

    merci de votre réponse rapide :)

    mon Ardunio c’est un duemilanove 2009 AVR ATmega328 et les bootloader sont des uno bootloader + dip socket new date code 12+ ( atmega328-PU alors si je comprend bien ce n’est pas compatible ?? :/

    Répondre
    1. Idleman Auteur de l’article

      atmega328-PU est compatible (c’est d’ailleurs ceux que j’utilise) je dis juste que sur l’arduino IDE, tu dois configurer le type de carte dans le menu de manière à ce qu’il corresponde au bootloader de ton atmega. :)

      Répondre
  34. raspberry pi computer

    Great beat ! I wish to apprentice while you amend your site, how could i subscribe for a blog website? The account helped me a appropriate deal. I have been a little bit familiar of this your broadcast provided brilliant transparent idea

    Répondre
    1. Idleman Auteur de l’article

      I don’t understand your question : do you want subscribe at my RSS feed ? Suscribe on blog ?

      Répondre
      1. rastan

        Salut IdleMan et félicitation pour ton blog trés clair et bien écrit, j’ai commandé tout le matos pour le lancer dans la domotique low cost :)

        Pour le message en anglais du type (bot ?) ci-dessus, le seul truc qui l’intéresse c’est d’avoir un lien vers son site (sous l’avatar) sur ton blog… à dégager donc ;)

        Répondre
        1. Idleman Auteur de l’article

          Au moins il parle de rpi et pas de viagra servant à financer une dictature quelconque ^^, donc dans le doute je laisse :)

          Répondre
  35. Geo

    Hello!
    Tu modifierais quoi dans ton code pour stocker deux signaux captés?
    Ou plutôt pour en mettre deux (ou plus) de référence directement à l’allumage dans l’EPROM? :D

    Répondre
    1. Idleman Auteur de l’article

      Il faut stocker les prochaines signaux via EEPROM_writeAnything(0, receivedSignal); en remplaçant le 0 par un autre chiffre qui correspondra à l’adresse du signal stocké :) evidemment il faut modifier le code pour stacker les signaux au lieux de toujours enregistrer sur l’adresse 0

      Répondre
      1. Geo

        Merci :)

        Mais du coup, j’ai du mal à cerner l’interet de stocker des trucs dans l’EPROM (oui je suis un noob :p)
        J’ai fait un truc de ce style qui fonctionne pas mal pour commander 8 relais avec un atmega:

        #include

        int recepteurPin = 9;
        int RPin[]={4, 5, 6, 7, 8, 10, 11, 12};
        int ledPin = 13;

        struct config_t
        {
        long sender;
        int receptor;
        }
        signal;

        struct signal_t
        {
        long sender;
        int receptor;
        boolean isSignal;
        boolean state;
        }
        receivedSignal;

        void setup()
        {
        pinMode(recepteurPin, INPUT);

        for (int i=0;i<=((sizeof(RPin))/(sizeof(int)));i++)
        {
        pinMode(RPin[i], OUTPUT);
        }
        pinMode(ledPin, OUTPUT);
        Serial.begin(9600);
        Serial.println("start");
        digitalWrite(ledPin,HIGH);
        }

        void loop()
        {

        //Ecoute des signaux
        listenSignal();

        //Si un signal au protocol home easy est reçu…
        if(receivedSignal.isSignal){

        if (receivedSignal.sender==666){

        Serial.println("Signal correspondant");

        //On ferme ou on ouvre le relais en fonction du bit d'etat (on/off) du signal
        if(receivedSignal.state)
        {
        Serial.println("Etat : on, fermeture du relais");
        digitalWrite(RPin[receivedSignal.receptor],HIGH);
        }
        else
        {
        Serial.println("Etat : off, ouverture du relais");
        digitalWrite(RPin[receivedSignal.receptor],LOW);
        }
        //La led clignotte 10 fois rapidemment pour signaler que le signal est le bon
        blinkLed(2,200);

        }
        blablabla
        }

        Bon évidemment c'est absolument tout pompé sur ton code, mais j'ai pas eu besoin de stocker des trucs dans l'EPROM. Ce serait pour optimiser la vitesse que tu y stocke là ?

        Répondre
        1. Idleman Auteur de l’article

          L’eeprom est une mémoire morte, de ce fait lorsque tu stocke une information dedans, tu peux la réutiliser même lorsque le circuit à été hors tension, c’est une sorte de mini disque dur si tu préfére mais qui peux contenir très peu de données.

          Si tu souhaite conserver le signal sur le long terme, tu es obligé de passer par l’eeprom ou par une mémoire morte autre type carte sd etc…

          Répondre
          1. Geo

            Daccord :D
            Merci!

  36. J4N

    Hello,

    Bravo pour ton blog, c’est très instructif! Je suis programmeur et je m’intéresse aussi beaucoup à la domotique. Le rasberry m’intéresse beaucoup mais j’ai l’impression qu’il me manque pas mal de petits trucs/connaissances pour commencer à faire des tweaks sympa.
    Ou as-tu trouvé les cables, ta sorte de plaque ou tu peux planter tes éléments dedans, les diodes(faut des diodes avec certaines spécificités? ), les résistances(Comment tu sais quelle résistance prendre?)

    Ces tweaks, tu as trouvé les matos comment? Par tes connaissances existantes ou il y a des places ou les commander?

    Avec le recul, prendrais tu encore la raspberry ou un autre similaire?(Je pense notamment à la panda board, qui est bien plus complète de base($++ aussi))

    Merci bien ;)

    Répondre
    1. Idleman Auteur de l’article

      La plaque s’appelle une breadboard, j’ai acheté la mienne il y a longtemps sur conrad.fr, mais je te conseille plutôt d’en acheter une sur ebay, c’est bien moins cher.

      Les diodes j’ai acheté un « pack » avec divers assortiments de diodes de plusieurs couleurs/tailles/intensités etc… ça me permet de bidouiller tranquillement.

      Pour connaitre la bonne résistance à placer sur une LED, il faut appliquer la loi d’ohm (U = R*I, Tension(Volts) = Résistance(Ohms) * Intensité(Ampères) ).

      En retournant la loi d’ohm tu as R = U/I, or la tension aux pour une LED, un courant de 20 mA (milliampères) est suffisant et les broches GPIO font du 3V3 en sortie, donc :

      R = 3,3 / 0,02 = 165 ohms

      Mais la c’est la théorie d’une grosse pipe en électronique qui parle, je ne peux pas t’assurer que je ne dise pas de grosses conneries :)

      Perso pour les tests courts je ne met pas de résistances du tout, les LED résistent un certain temps, ce qui me suffit vu que les tests font rarement plus de 20 sc :p (je sais c’est pas bien).

      Je reprendrais le rpi oui, la plupart des cartes concurrentes sont seulement l’oeuvre d’opportunistes qui profitent du fait que les gens ne savent pas/veulent pas connecter 3 composants à 4 centimes sur leurs board, pour vendre ces composants intégrés à 10 fois leurs prix.

      Pour moi le rpi à tout ce qu’il lui faut de base, et de simples recherches sur le net + un peu de bon sens suffisent à le transformer en à peu près n’importe quoi

      Répondre
      1. J4N

        Merci bien pour ta réponse! Je suis pas sur d’avoir tout compris, pour moi si on mettait des résitance, c’est pour baisser la tension (car en série, on somme les résistances) que la diode allait recevoir.

        Mais vais faire qques tests, j’ai commandé ma RPI, + 1 arduino(j’aimerais faire un ambilight like sur mon écran). Peut-on faire communiquer le RPI avec l’arduino?(pas forcément en radio, rien qu’avec des cables).

        En tout cas merci pour ton blog, ca motive bien à essayer!

        Répondre
        1. Idleman Auteur de l’article

          Oui on peux faire communiquer les deux par le port série, je te souhaite une bonne chance pour ton projet :)

          Répondre
          1. J4N

            Petit feedback, j’ai trouvé une autre source super intéressante:
            http://forum.pcinpact.com/topic/165594-raspberry-pi-fabriquons-des-trucs/?p=2745571#entry2745571

            Il est mentionné que c’est la tension des LED qui est importante(entre 2.2 et 3V suivant la LED), à 20mA.

            Sauf qu’on alimente en principe en 5V, ce qui risque d’endomager la led à long terme.

            5V à 20mA, avec la loi d’ohm, on a 250ohms(5/0.02), donc si on prend une led qui nécessecite 2.2V(et qui du coup bouffe 110 ohms(2.2/0.02)) il manque encore 140 ohms à combler par des résistances.

            Si tu l’alimente via le RPI avec ses 3.3, tu as des résitances plus petites à mettre:

            3.3/0.02 = 165 ohm
            2.2/0.02 = 110 ohms
            –> 55ohms

            En gros pour calculer ta résistance, c’est plutôt (Tension à l’entrée – Tension fonctionnement diode) / intensité:

            (3.3-2.2)/0.02 = 55 ohms ;)

            J’ai que de très vieilles connaissances en électrotechnique, mais je crois pas me tromper ;) Si jamais ca peut aider

  37. Mat

    Salut,

    Comme tout le monde, je vais commencer par te féliciter pour ton boulot, c’est plein de bonnes idées et de bons conseils (et de code ouvert, merci pour ça aussi).
    Je voulais pour ma part contrôler ma climatisation avec mon Pi, ce qui a été déjà une petite aventure vu qu’il me fallait repiquer les codes IR de la télécommande associée. D’ailleurs je t’ai piqué la première version de PiHome pour faire la base de ma page de contrôle, n’étant pas développeur web ça m’a bien aidé.

    Par contre je compte contrôler une autre clim et pour ça il me faut un autre émetteur IR dans l’autre pièce. Le plan est d’utiliser mon arduino pour ça, connecté via radio.
    Là où je rencontre un problème, c’est que même en partant de ton code hcc – et d’autres que j’ai trouvés à droite à gauche – pas moyen de faire reconnaître les signaux à l’Arduino. En testant un peu en envoyant des impulsions en boucle de 1000us alternées avec des impulsions de 500us, je vois que mon arduino me remonte des valeurs de tempo de :

    1229
    603
    1237
    607
    1228
    612
    1237
    587

    Je trouve que ça fait beaucoup de marge d’erreur. J’ai essayé avec un nanosleep, pas mieux. J’ai une raspbian par défaut, le code tourne avec les droits qui vont bien pour passer en realtime… as tu installé un kernel particulier pour ça ? Je sêche un peu là.

    Répondre
    1. Idleman Auteur de l’article

      C’est toujours difficile de faire communiquer un rasp et un ardui/atmega en radio, tu peux la plupart du temps améliorer les résultats en :

      Choississant un kit emetteur/recepteur de meilleur qualité
      Plaçant des antennes en quart d’ondes sur les deux
      Alimentant avec une source externe a l’ardui et au rasp les émetteurs/récepteurs
      Alimentant au max de leurs capacité les modules radio

      Répondre
      1. Mat

        Merci pour la réponse.

        Mon montage est alimenté en externe, j’ai un cable d’antenne (d’ailleurs ça porte assez loin pour moi, c’est à dire d’un bout à l’autre). C’est vraiment les temporisations le problème.

        En mettant des affichages partout dans le code de l’arduino (c’est à dire en stockant les valeurs reçues dans un tableau et en analysant après coup à tête reposée, sinon on peut en rater) j’ai pu évaluer les valeurs de temporisations récupérées par l’arduino, qui sont souvent supérieures de 200 à 250us à l’attendu, même en passant par des boucles d’attente active dans le code de l’émetteur… J’ai du modifier les temps dans le code de l’arduino, et modifier les temps à l’état HIGH dans le code du Pi (là j’imagine que c’est l’Arduino qui ne suit pas mais ça me parait très étonnant vu que je ne fais que lire le pulseIn et le stocker en boucle dans un tableau pour analyse ultérieure). Bref, j’ai galéré, j’ai modifié les valeurs de temps à la porc, ça ne me permettrait sans doute pas de contrôler une prise du commerce mais ça fonctionne pour mon système, c’est tout ce qu’il me fallait. :)

        Maintenant faut que j’étende le protocole, parce que je veux faire passer bien plus que du on/off entre les 2 :)

        …et puis que je teste la comm’ dans l’autre sens aussi.

        Répondre
        1. Idleman Auteur de l’article

          Oaip, je pense que sur le long terme c’est mieux de créer une carte de transition pour le rpi qui semble être un peu attardé de ce coté la ^^

          Répondre
  38. fedevo

    Hello,
    trés sympa tes tutos … ils m’ont donné envie de reprendre un de mes projets.
    je voudrais comme toi faire ma domotique que j’ai laissé en plan depuis longtemps.
    lorsque que j’ai rénové ma maison(en 2001), j’ai tiré un bus (4 fils) pour mes volets roulants, mais quand j’ai vu le prix des modules (hager) j’ai mis des bons vieux bouton ;-)
    Avec l’atmega, je vais pouvoir faire ca moi meme à faible cout …

    Par contre il y a un point dans ce tuto qui m’interresse tout particulièrement (qui n’a rien a voir avec mes volets) : la conso des prises !
    je voudrais pouvoir surveiller la conso de certaines prises et je me demandais si tu avais des pistes pour réaliser ce genre de chose. C’est surtout au niveau mesure, comment mesurer la puissance consommée d’une prise (pour au final envoyer un signal analogique à l’atmega) ?
    si tu as des idées je suis preneur !

    autre point, pour l’alim 250ac->5dc de l’atmega, je pense a une alim capacitive genre http://www.astuces-pratiques.fr/electronique/alimentation-capacitive-sans-transfo#
    il semblerait qu’il existe un ci qui fait ca bien, le MAX610, mais je n’arrive pas à le trouver. connais tu d’autres références ?

    mon dernier probleme est l’encombrement: comment mettre tout ca dans une prise relatievement estétique ? y a t’il des boitiers pour y ajouter une carte … ou faut il attendre que les imprimantes 3d soit abordables :-)

    ps: je débute en electronique :-(
    merci d’avance pour tes idées
    ++

    Répondre
    1. Idleman Auteur de l’article

      Pour la consso je comte m’y mettre un de ces 4, mais je n’ai encore rien recherché de ce coté la désolé :), tu peux peut être regarder du coté des shunt (sorte de résistances qui résistent à de grandes tensions) et appliquer une loi d’ohms pour mesure ton courant, un de mes lecteur à fait un truc du genre pour surveiller la consso d’une île, mais je n’en sait pas plus.

      Ça m’a l’air intéressant cette histoire de transfo capacitif, après mes expériences avec les transfo maison/chinois/low cost m’ont appris à me méfier, ça fait déjà 3 fois que je manque de cramer mon chat :); à creuser.

      Le must pour faire des boitiers adaptés, c’est les légos, c’est pas trop cher (quoique ça a bien augmenté) c’est en plastique , c’est modulable, tu peux laisser cœur à ta créativité etc.. :), après il faut penser récup, beaucoup de tupperware, conteneur à bouffe un peu classes peuvent servir :)

      Répondre
    2. Gautier

      Super dangereux, le neutre est directement relié au 0V du raspberry !!! si il y a un cour circuit au 230V le Raspberry va le payer… tres cher… et toi aussi peut etre…

      Répondre
      1. Laurent

        Bonjour,
        Dans le cas de l’alimentation du Rasp oui tout à fait d’accord, mais sur les modules 433mHz utilisés dans les prises c’est ce qui est employé, sinon bonjour l’encombrement.
        D’ailleurs je suis prêt à parier que même sur les Chacon, ou autre marque certifiées CE, c’est du kif.
        Je n’ai pour l’instant que de très vielles prises Superstar, mais lorsque je les ai ouvertes je n’ai jamais vu de transfo. Par contre il y a une très belle capa couplée à plusieurs résistance donc le montage capacitif.

        D’ailleurs au sujet de ces prises Superstar marquées APT-2305, je galère pour trouver la trame à envoyer.
        Le protocole semble être de l’ARC, de toutes façons j’ai paumé la telco donc si quelqu’un à des infos je suis preneur, sinon elle finiront à la poubelle.

        Répondre
  39. fedevo

    … les légos … excellent ! j’aurai jamais pensé à ca ;-)
    pour info, je me suis amusé a démonter (enfin, exploser à coup de marteau) une ampoule à diode 220v, c’est trés instructif ! meme si le circuit retranscrit sur papier me laisse dubitatif, ca ressemble bcp à une alim capacitive, mais la mesure en sortie (diodes) me fait penser que mon voltmetre à trempé dans la biere (300v DC !!!). Je crois que je vais finir par exploser une mini alim usb à l’occas :-)
    Sinon, oui le shunt, ca à l’air de le faire pour le « wattmetre », je vais creuser de mon coté aussi, parce que meme si ce n’est pas ma priorité, ca me botterait bien de créer une communauté autour de la conso/mesure domestique, genre « suivez en ligne votre conso en temps réel » et damer le pion à edf et pourquoi pas gdf ! … l’internet des objets est en marche …
    et merci pour ta réponse !
    ++

    Répondre
    1. Idleman Auteur de l’article

      Ya pas de quoi :), si t’as envie de partager un article un de ces 4 sur ce blog concernant les mesure de consso n’hésite pas à me « poker » je te faire un compte invité :)

      Répondre
  40. Nitroxyde

    Salut, pour programmer l’atmega on peut pas tout simplement enlever l’atmega dejà présent sur l’arduino puis le remplacer par celui que l’on veut programmer et « télé-verser » le code ?

    Répondre
    1. Idleman Auteur de l’article

      On peut tout à fait procéder comme ça oui :), je passe par un circuit externe car dans l’avenir il nous sera nécessaire de pouvoir passer outre le support de la carte :)

      Répondre
  41. nexen

    pour commencer, bonsoir et surtout bravo pour ces bon tutos.
    tes prises sont tout a fait ce que cherche a faire, perso j’aimerai reproduire du « zwave » (reseau maillé, emission de l’état) mais pour beaucoup moins cher (chez moi j’ai pas loint de 30 points lumineux et a plus de 50€ le module de reception ça va vraiment pas le faire).

    dans cette optique j’ai commandé hier un arduino + tout les « petits » accessoires necessaires.

    je precise que je suis totalement novice en radio-frequence et en programmation, j’ai de bonnes notions en electrique et de petites connaissances en electronique.
    néanmoins, je possède une alimentation de labo (une petite qui demandera surement une remise en etat), une insoleuse (fabrication maison), une graveuse verticale ainsi des programmateurs d’eeprom.

    je viens donc ici pour apprendre mais aussi pour proposer mon aide (enfin si je peux aider)

    en tout cas j’ai trouvé ça pour l’alimentation:
    http://www.astuces-pratiques.fr/electronique/alimentation-capacitive-sans-transfo

    il existe des modules vides pour rail din, ce qui pourait etre utile pour integrer des modules de reception directment dans les coffrets electrique.

    a tres vite, @!3x

    Répondre
    1. Idleman Auteur de l’article

      En voila un bel équipement ^^, jme sent minable avec mon tournevis, ma breadboard et ma vielle pile en fin de vie XD

      L’alim capacitive on ‘men à déja parlé et je trouve ça très interessant effectivement :), il faudrait que je teste mais je manque de temps et surtout, je suis très méfiant avec les solutions d’alim alternative étant donné que j’ai echappé 2 fois à la mort en testant des truc chinois :D

      surtout quand je vois ce message en fin :

      ATTENTION : Un risque de choc électrique existe lors de manipulations d’alimentation résistive ou capacitive. La sortie basse tension N’EST PAS ISOLEE du secteur ! L’utilisateur doit donc être très prudent et conscient des risques de surtensions transitoires éventuelles sur son réseau. Un transfo d’isolement peut être utilisé lors des expérimentations.

      Bref je sais pas si je me sent prêt pour ça tout de suite mais je garde l’alim dans un coin de bookmark :p

      Répondre
      1. nexen

        oui, équipement gardé de l’époque ou canalsat et tps etaient encore en seca1 et donc facilement … heuuuu …. modifiable XD

        et bien que je soit d’accord avec toi sur la mefaince a avoir face aux alim capacitives, il faut bien avouer que les prises et modules du marché n’ont pas de transfo.
        une autre piste a creuser serait du coté du max610, un convertiseur 230/5V en boitier dil. seulement voila, il y a deux problemes (sans parler de l’absence d’isolation entre le primaire et le secondaire) il semblerai qu’il soit obselete et il couterai dans les 6€ unitée, ce qui ferait grimper de façon assez significative le cout d’une prise.
        a suivre …

        Répondre
  42. Popeye

    Je viens de me rendre compte que le relais que j’ai acheté est alimenté en 7A pour 240V au lieu de 10A.
    Est ce que cela ne va pas poser de problèmes si je le relie au secteur de mon appart ? ( genre explosion )
    Merci.

    Répondre
    1. Idleman Auteur de l’article

      Ca dépends à quoi tu le relie, si P=U*I alors tu ne dois pas relier des appareils consommant une puissance supérieure à 1680 W a ton relais, sans quoi le relais en question risque de souffrir.

      Répondre
      1. Popeye

        Merci pour la réponse rapide. J’comptais relier une lampe, alors ça va l’faire.

        Répondre
  43. AHMZAO

    Salut Idleman,

    J’ai trouvé ton site par hasard sur google en cherchant des articles domotique low cost compatible avec le Raspberry. J’ai trouvé pas mal de sites, mais le tien est pile ce que je chercher. Merci beaucoup pour les informations que tu échangent avec nous.

    J’ai trouvé un relais pilotable à distance sur ce site :

    http://hackspark.fr/fr/433mhz-codec-adaptive-wireless-relay.html

    Il coûte un peu cher (env. 10euros) et doit être alimenté en 12v. Par contre ce qui m’a interpellé c’est le circuit de commande (2 petites puces). Je ne sais pas ce que c’est et si on peux le savoir mais çà à l’air de bien concurrencer l’atmega au niveau taille ? çà pourrait être pas mal de savoir ce que c’est.

    Ensuite, j’ai une question qui pourra paraître toute bête pour certains mais comme je ne suis pas très calée en électronique (on est deux ;)).

    Voilà, je voudrais utiliser mon Raspberry pour ouvrir la porte d’interphone de chez moi. Je m’explique, dans mon appartement le système du combiné qui permet d’écouter qui sonne à la porte et d’ouvrir la porte est tout simple. Il n’y a qu’un bouton qui permet à la fois de décrocher/raccrocher et d’ouvrir la porte avec un pousse-bouton de ce type :

    http://dx.com/p/diy-self-locking-push-button-switches-20-piece-pack-138327

    Le bouton poussé à une certaine distance raccroche et si tu le pousse un peu plus, il ouvre la porte. Le système est simple et il faut juste fermer un circuit pour laisser passer le courant et ouvrir la porte.

    Ce que je voudrait faire, c’est fermer ce circuit à distance avec mon raspberry en insérant un récepteur radio 433Mhz et un composant supplémentaire pour fermer le circuit ou pas : genre un relais mais pour du faible courant.

    Qu’est-ce que je pourrais utiliser ? Un transistor ?

    Merci d’avance pour vos lumières. En éspérant ne pas avoir été trop long ;)

    Répondre
  44. blind

    Bonjour,
    je voulais avoir des conseils sur la façon de faire pour effectuer votre montage sur la plaque mais dans une boite que ça ne fasse pas gros bloc au bon milieu de mon apart surtout que je veut effectuer divers taches.

    Répondre
    1. Idleman Auteur de l’article

      La il faut être créatif, perso j’affectionne beaucoup des légo pour créer la boite, pour la plaque il faut acheter une plaque PCB à trou dispo sur ebay & co :)

      Répondre
  45. Espace Broderie

    j’ai acheté chez DépotBrico un set de 3 prises télécommandées pour 13€…je pense que l’on peut faire de la recup et puis pour le prix je ne suis meme plus sur qu’il faille s’embeter a refaire des prises ( outre le fait de vouloir s’amuser, et de vouloir rajouter des composants supplémentaires). Me reste plus qu’a recuperer le code de transmission de la télécommande pour piloter via Rpi et normalement ca devrait le faire. A savoir que la telecommande pilote trois prises et qu’il existe 4 reglages différents sur chaque telecommandes ( soit 12 prises télécommandées) ca fait deja pas mal, je redis lorsque j’aurais démonté la prise pour savoir s’il reste de la place pour y stocker d’autre capteurs)

    Répondre
    1. Idleman Auteur de l’article

      Me reste plus qu’a récupérer le code de transmission de la télécommande pour piloter via Rpi et normalement ca devrait le faire

      Méfie toi c’est certainement le plus dur :), il est difficile de comprendre et d’imiter un protocole radio sans aucune doc, j’ai bien mis 1 mois pour le home easy alors qu’il y a des bribes de docs sur le net.

      Après avec un peu de chance le protocole de ces prises low cost n’est pas trop compliqué à imiter :)

      Répondre
  46. nb

    Salut,

    super série.
    J’aimerais me mettre à l’arduino. Je sais qu’à la base tu n’es pas spécialiste, mais tu as l’air de t’adapter vite, et de maîtriser rapidement les sujets. C’est pourquoi j’aimerais ton avis sur cette carte dont le prix est intéressant.
    Merci

    Répondre
    1. Idleman Auteur de l’article

      La duemilanove est la carte la moins chère d’arduino, c’est sur celle la que j’ai commencé mes bidouilles et je l’aime beaucoup, elle se prête tout à fait aux gens qui veulent commencer.

      Après au niveau du prix c’est une enchere donc elle peut monter encore ^^, perso si tu cherche une duemilanove à bas prix je serais toi j’achèterais une chinduino, ça te coutera 2/3 € de lus mais pas de frais de ports et l’assurance d’avoir un clone de la duemilanove neuf et fonctionnel en achat immédiat.

      Après en ce qui concerne l’avis tout dépends de ce que tu souhaite faire avec :)

      Répondre
  47. ooznerol

    Hello,

    excellent tuto………….. vraiment une mine d’or!!! Pour ma part je compte piloter mon arrosage avec ta solution. Donc en entrée des relais je vais avoir du 24V AC a la place du 220. Tu crois que ce peux poser problème?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Absolument aucun non :), l’essentiel pour la partie qui n’est pas « commande » c’est de ne pas dépasser la puissance max autorisée sur la notice du relais.

      Répondre
      1. oznerol

        Merci…………….c ce que je pensais aussi!!

        autre amélioration a prévoir : pouvoir connecter un vrai interrupteur en parallèle du module. J’ai regarder ton code y aurait juste a rajouter la gestion d’un IO supplentaire non?

        Répondre
        1. Idleman Auteur de l’article

          Oui il y a peu de modif à faire, faudrait juste que j’ai un peu de temps et de motiv pour l’améliorer, les améliorations prévues sont multiples :

          • Utiliser un attiny au lieu d’un atmega (plus petit et moins cher)
          • Utiliser l’horloge interne 8Mhz ce qui permettrais de se passer du résonateur 16 mhz
          • Utiliser le sleepmode pour économiser de l’énergie
          • Ajouter un bouton de switch on/off sur la prise
          Répondre
  48. ooznerol

    ah…. juste un petit detail…..quand tu dis 6$ tu ne prends pas en compte le convertisseur 220V vers 5V pour alimenter l’ATMEL. D’ailleurs si tu as de bonne adresse ou l’on peut trouver ça pour pas cher je suis perneur

    Répondre
    1. Idleman Auteur de l’article

      Si tu pars de la je ne prends pas non plus en compte le prix du rpi, ni celui de la breadboard, du fer à souder, d’edf, de la paye horaire et de la TVA sur l’étain XD !

      Plus sérieusement tu peux trouver des alims pour chargeur d’iphone à 1€/1,50€ sur ebay, mais fait bien gaffe aux normes, certaines d’entre elles peuvent te pêter dans les doigts :p

      Répondre
  49. danogena

    salut ici j’ai un soucis quand je tente d’envoyer vers la carte j’ai une erreur de compilation avec les erreurs suivantes :

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:5:46: error: Arduino.h: No such file or directory

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h: In function ‘int EEPROM_writeAnything(int, const T&)’:

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:52: error: expected initializer before ‘*’ token

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:55: error: ‘p’ was not declared in this scope

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h: In function ‘int EEPROM_readAnything(int, T&)’:

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:62: error: ‘byte’ was not declared in this scope

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:62: error: ‘p’ was not declared in this scope

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:62: error: expected primary-expression before ‘)’ token

    C:\arduino-0018-fr\libraries\EEPROMAnything/EEPROMAnything.h:62: error: expected primary-expression before ‘void’

    j’ai essayer de mettre une autre puce Artmega et idem, je n’y connait rien en arduino donc si quelqu’un peut jeter un coup d’oeil, merci

    Répondre
    1. Idleman Auteur de l’article

      As tu bien acheté l’atmega AVEC le bootloader inclus ?

      Car ça ressemble a une erreur de bootloader manquant ça…

      Répondre
      1. danogena

        oui merci c’était bien ça et ça marche parfaitement !!

        par contre je rencontre une autre difficulté, pour mes volets roulant :

        avec ‘envoie de commande ça descend bien mais quand je le fait monter il va jusqu’au bout et redescend (le relais claque) comme si il avais reçu l’ordre de descendre.
        quelqu’un sait d’ou ça peut venir ?

        merci d’avance

        Répondre
        1. Idleman Auteur de l’article

          Il vas falloir expliquer un peu mieux ton branchement parce que sans plus de details on peux difficilement t’aider ^^ tu as branché quoi, ou comment et pourquoi?

          Répondre
  50. Kazaam

    Hello

    Je suis avec intérêt tous ces articles, je suis en attente de mon kit de « départ » (rpi et arduino) pour jouer aussi à ce jeu :)

    Pour les prises, j’ai trouvé des multiprises avec transfo 5V USB intégré, ce qui fourni l’alim nécessaire au kit, reste a trouver un modèle avec assez de place pour caser tout cela.

    Par contre pour la prise de température, j’ai peur que les données soient faussées dues à la chaleur générée par la prise (pas énorme mais assez pour changer de 1-2°

    Après sur la prise, je pense ajouter un UM3750 pour le codage, j’ai trouvé pas mal de prises a bas prix utilisant ce système dans les magasins de brico

    Répondre
    1. Idleman Auteur de l’article

      N’hésite pas a parler de tes projets sur la section projet du fofo histoire de partager ton expérience avec nous tous :), je crois d’ailleurs que géo a déjà posté un projet similaire dessus tu peux peut être t’en inspireze

      Répondre
      1. Kazaam

        Pas de soucis, le matériel doit arriver sous peu.

        Répondre
  51. Psit

    Yop !

    J’aurais quelques questions pour toi , je cherche a faire un montage un peu pareil pour mon bateau mais j’ai différent soucis:

    je trouve pas/plus les 5 résonateur que tu as mis sur ebay et j’ai un peu peur de me tromper en achetant n’importe quoi, pourrais-tu me donner un lien sur ?
    Mon bateau a des batterie 12v et je cherche a le convertir en 5 v pour pouvoir alimenter la atmega , quel composant serais nécessaire ?
    Et dernière question , je cherche a pouvoir laisser passer du 12 v grâce au pin de l’atmega ( le même principe que le relais) mais pour un courant plus petit , existe t’il un composant capable de faire sa ?
    Merci a tous !

    Répondre
    1. Idleman Auteur de l’article

      Pour passer du 12 V en 5V tu devrais pouvoir acheter un régulateur, ça te coutera moins cher qu’un transfo, cherche quelque chose comme regulator 12v/5v sur ebay

      Concernant les résonnateurs n’importe lequel fonctionnant sur du 5v en 16mhz fera l’affaire, dans l’idéal tu devrais même pouvoir prendre des fréquences plus hautes mais je n’ai jamais testé.

      Si tu ne souhaite pas utiliser de relais pour faire passer ton 12V, tu dois pouvoir t’orienter vers les MOSFET, des sortes d’interrupteurs électroniques un peu moins chiants à manœuvrer que les transistors et un peu moins cher et encombrant que les relais.

      Répondre
    1. Idleman Auteur de l’article

      Tant que tu prends au dessus ça devrait pouvoir le faire, après je ne garantis rien :)

      Répondre
  52. f

    bonjour serait il compliqué de brancher une webcam au raspberry pour qu’il détecte les zones de la pièce éclairée ou non et donc déduire quelle lampe est allumée pour fournir un retour d état ?

    Répondre
    1. Idleman Auteur de l’article

      Bonjour: oui :), bien plus compliqué que d’installer des retours filaires :)

      Répondre
  53. Psit

    Coucou !

    J’ai beau chercher sur internet mais je ne troue pas a quoi sert l résonateur dans ton montage :/

    Aurais-tu une explication a me donner ?
    Et est-ce-que si j’utilise la atmega sans les ondes radio mais seulement avec des  » delay(1000);) , aurais-je besoin d’un résonateur ?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Le résonateur sert d’horloge en 16 mhz pour l’atmega, ça évite d’avoir à utiliser l’horloge interne de 8 mhz un peu faible pour ce qu’on veux faire et qui nous obligerait a modifier le bootlader.

      Techniquement tu peux utiliser l’atmega sans le résonateur même pour la radio mais comme je le disais il te faudra modifier le bootloader (il existe pas mal de tuto a ce sujet sur le web) et ça risque d’être parfois peu stable.

      Répondre
      1. psit

        Merci pour tes réponses ,

        Pour mon projet j’ai besoin de 7 pins , 3 pour des led , 3 pour des relais ,1 pour un bouton poussoir mais je ne trouve que 6 digital pins (pwm) puis-je utiliser un pins autre que pwm ? Merci

        Répondre
          1. psit

            Non je parle de l’atmega

          2. Idleman Auteur de l’article

            Il y a 14 pins digitaux sur l’atmega, fie toi a l’image de sa présentation sur le fofo : http://forum.idleman.fr/discussion/11/electronique-atmega/p1
            De plus tu peux utiliser les pins analogiques en tant que pin digitales en faisant varier la tension par palier direct de 3v3 (enfin de la tension d’un pin digitale sur l’atmega je sais pas si c’est la même que sur le rpi faut regarder au multimètre).

            Enfin tu peux multiplier les pin en utilisant les shifts registers comme dans le tuto 20

  54. Sachawolf

    Bonjour,
    Super tuto !
    Petite question sur la puissance acceptée par la prise, jusque quelle puissance peut montée avec ce type de prototype ?
    Mon but est de faire une prise qui sera capable d’encaisser jusqu’à 2600W (centrale vapeur où je souhaite éteindre la prise juste au cas où)
    As-tu eu le temps de prévoir le retour d’état si le contrôleur interroge la prise depuis ce tuto (je sais que tu bosses sur Ydle et que c’est pas évident) ?
    Merci de ton aide,
    Sachawolf

    Répondre
    1. Idleman Auteur de l’article

      J’ai peur que la carte relias proposée ne soit trop juste pour une telle puissance, la carte relais actuelle fait 10A, si P=UI alors la puissance max supportée sera de 2200 W, il te faut donc un relais avec une plus grosse intensité (trouvable sur ebay mais un peu plus cher je pense).

      Pour le retour d’etat je n’ai pas trop investigué la dessus, je me concentre pour le moment sur d’autres types de recepteurs/emetteur histoire de voir plein de trucs histoire de faire un tour général de tout ce qui est possible avant de perfectionner/fignoler tout ce qu’on aura déja vu.

      Répondre
      1. Sachawolf

        Merci pour ton retour,
        Pour le moment, j’ai commandé les prises Chacon D-IO (par 3) qui supportent pas moins de 2500W.
        Je vais me basé sur tuto pour les piloter via un raspPI ou un cubie à voir le WAF result :-D
        J’essayerai avec ce tutoriel plus tard en prenant comme tu me l’a conseillé un relai plus costaud.
        Encore chapeau pour cette série de tuto.
        @ ++

        Répondre
    1. Idleman Auteur de l’article

      En realité il existe même des cables voués a la programmation directe d’atmega qui coutet une misère sur ebay, mais je n’arrive pas a retrouver la ref :)

      Après je pense que c’est agréable de commencer avec une plateforme confortable comme l’arduino duemilanove quand on débute, ça fournis une source d’alim en plus et ça permet de faire les tests sans trop se compliquer la vie, c’est pas au prix que ça coute :)

      Pour un retour d’etat il faut simplement rajouter un emetteur a la prise et un recepteur au rpi (donc acheter deux kit rf au lieu d’un idéalement) puis modifier le protocole dans le code de l’ardui et du rpi pour que le rpi attente un retour régulier de l’etat de la prise et que la prise émette régulièrement son état (après ya mille façon de faire ça, on peux aussi imaginer que l’atmega attente l’interrogation du rpi au lieu de balancer bêtement son etat a tout bout de champs)

      Répondre
  55. Maxime

    L’idée d’utiliser la carte Arduino est super par rapport à son prix! par contre l’ATmega est vraiment un gros MCU pour un si petit travail à effectuer. sais tu si d’autres MCU plus petits pourraient convenir pour l’utilisation de la carte Arduino?

    Super blog, au passage!

    Répondre
    1. Idleman Auteur de l’article

      J’avais pensé à l’attiny qui peux fonctionner avec le même code que l’atmega (a quelques bidouilles près) mais je n’ai jamais eu le temps de me pencher sur sa programmation, après c’est presque el même prix que l’atmega donc on gagne seulement en taille (et peut être en consso)

      Répondre
  56. Vinzouille

    Salut,

    Je me demandais s’il était possible de faire un système d’interrupteur piloté par radio tout en gardant une installation « classique »?
    J’ai pensé à peut être faire un système de va et vient à 3 interrupteurs (2 physiques et un logique piloté par radio)

    quelque chose dans ce genre est il faisable selon toi ou y a t’il une solution plus simple ou plus efficace?

    http://i76.servimg.com/u/f76/16/24/52/32/gaine_10.jpg
    pour le schéma du va et vient

    Répondre
    1. Idleman Auteur de l’article

      Je ne suis pas électricien du coup je suis assez mauvais quand il s’agit de relier ça au système classique, personnellement pour une installation définitive (le jour ou j’aurais une maison a moi ^^) je préfèrerais tout mettre en filaire, la radio pouvant être « interceptée » par tes voisins :p, et puis le filaire est plus fiable qu’il s’agisse de la transmission du signal ou du retour d’état.

      Or en filaire le pb ne se pose pas puisque tout peux fonctionner sur le même principe a partir du moment ou tes interrupteurs sont reliés a ton rpi et non au circuit de puissance.

      Répondre
      1. chep

        Pour un vas et viens a 3 interrupteurs il faut utiliser un telerupteur et des poussoirs.
        On peux donc remplacer les interupteurs classique de la maison par des poussoirs relié a l’arduino et des relais qui alimentent les ampoules.

        quel cable utiliser pour relier les arduino et le rasp en filaire sur une distance d’au moins 10m?

        si on pouvais utiliser du cable telephone ou reseau ca me plairait mieux que le sans fil!
        En plus ca doit etre bien plus facile de gerer le retour d’etat de cette maniere. Les protocoles sans fils c’est quand meme compliqué.

        Répondre
        1. Idleman Auteur de l’article

          Si tu gère l’i2c tu peux relier le rpi et les ardui avec de simples files électriques, je suis en train de me renseigner la dessus pour mon projet de porte domotique, j’attends mon convertisseur de tension pour I2C (parce que les tensions doivent être les mêmes pour communiquer sinon tu grille une des deux cartes (enfin ya des cas particulier ou c’est safe mais c’est tout un bordel))

          Répondre
    2. Gautier

      Tu fais tout simplement comme sur le schéma ci dessous (ce qui te permet de ne pas creuser des trous dans les mur car tu réutilise l’installation)

      http://img4.hostingpics.net/pics/528617gaine10.jpg

      Tu remplaces juste tes inter par des poussoirs et tu ajoutera un code qui passera a de 0 a 1 ou de 1 a 0 en fonction de l’état actuel le relais 5v a chaque pression sur un des poussoirs).

      Pour le télérupteur c’est encore plus simple soit tu met le même système qu’ici derrière un poussoir de l’instal (n importe lequel) ou si t’es un fou tu le met direct sur le télérupteur entre la Phase et l’entrée Bobine (comme si c’était un poussoir quoi)

      Répondre
  57. 404_crazy

    Exactement pour monitorer la consommation électrique. Je trouve un électronicien au plus vite pour vérifier cette histoire d’ampérage.

    Répondre
  58. chep

    Etant trop stupide pour avoir reussi a poster sur le forum je partage ici une ebauche de code pour faire une sorte de telerupteur, controlable soit par poussoir soit par RF.

    Edit idleman : maintenant que tu peux te connecter sur le fofo tu pourrait le mettre dessus ? :D Je t’avoue qu’un si long commentaire risquerais de mettre pas mal de lecteurs sur les rotules ^^

    Répondre
    1. Idleman Auteur de l’article

      Edit idleman : maintenant que tu peux te connecter sur le fofo tu pourrait le mettre dessus ? :D Je t’avoue qu’un si long commentaire risquerais de mettre pas mal de lecteurs sur les rotules ^^

      Répondre
  59. chep

    Je suis tombé la dessus en cherchant comment faire de l’I2C sur longue distance (un bordel)

    http://www.instructables.com/id/A-credit-card-sized-Ethernet-Arduino-compatable-co/

    Ca nous permet d’utiliser directement un lan pour pas cher du tout.

    plus securisé et rapide que le rf433 on econnomise les emeteurs recepteurs de chaque esclave pour s’offrir un petit hub pas cher. on a juste besoin d’un recepteur si on veux utiliser une telecommande rf.

    Vous en pensez quoi?

    Une autre question bete, vu que c’est l’été est ce qu’on peut se passer d’insoleuse? L’aprem a bronzer sous les infrarouge de papa soleil ca devrais le faire?

    Répondre
    1. Idleman Auteur de l’article

      Pas mal du tout :), après faut voir si c’est pas trop chiant a construire et que les fournitures sont pas trop chères à acheter cela dit ça a l’air assez bien détaillé c’est un bon point :)

      Par contre quitte a utiliser du filaire je pense qu’une communication I2C entre le rpi et l’atmega sera moins couteuse à mettre en place.

      Pour ce qui est de l’insoleuse j’ai bien peur que papa soleil ne suffise pas a lui seul :)

      Répondre
      1. chep

        Oui I2C est plus simple mais marche tres mal a plus d’1m. J’ai au moins 3 esclaves a 6/7m du raspi d’ou l’idée du reseau. meme si le rpi plante on peux tjr acceder a l’arduino directement car il heberge sa propre page web.

        Répondre
  60. DucLeto

    Super tuto ça marche chez moi mais impossible d’avoir une portée suffisante avec les émetteurs/récepteurs achetés sur Ebay. Je ne dépasse pas le mètre.. J’ai mis des antennes de 17cm, j’alimente le récepteur en 5v tout pile, j’alimente l’émetteur en 5v et j’ai 1 mètre de portée :-(. J’ai essayé d’alimenter l’émetteur en 11,95v (12v maxi) là ça ne fonctionne plus.
    Je vais tester avec du 9v sur l’émetteur pour voir… si la portée n’augmente pas je chercherai une autre techno (Xbee, ZWave, …)

    Répondre
  61. Romain

    Bonjour Idleman,

    Je me dirige vers toi car j’ai beaucoup apprécié tout tes tuto sur le Raspebrry.

    As-tu déjà utilisé les Attiny ?

    Si oui j’ai un soucis… voila:
    – Un Arduino avec un module d’émission RF 315Mhz.
    – Un Attiny avec un module de réception RF315Mhz.

    L’Attiny ne reçoit pas d’informations alors que si je mets un Arduino cela fonctionne.

    J’ai changé de librairie spéciale Attiny, y avait des erreurs au début, mais après quelques recherches j’ai trouvé des solutions mon code n’a plus d’erreur.

    Si tu as déjà réalisé cela même avec un Raspberry, merci de me tenir au courant

    Cordialement
    Romain

    Répondre
    1. Idleman Auteur de l’article

      J’ai des Attiny mais je ne les ai pas encore branchés a mon système dsl ^^, j’avais fait une petite tentative a une époque mais l’attiny a grillé au premier essai (sans raison valable il était correctement alimenté) du coup j’avais plus que des atmega alors j’ai continué dans ce filon, il faudra que je m’y remette maintenant que j’en ai reçu d’autres

      Répondre
  62. Hugo

    Bonjour bonjour,

    Tu as fais vraiment un très bon site. Les tutos sont très complets, et pile poil le genre de bidouille que j’aime :-)

    Mais j’ai une petite question sur ce tuto.

    Puisque tu enlèves le microcontroleur de l’arduino pour programmer un autre Atmega en passant par un ptit montage. Pourquoi ne pas placer l’Atmega à programmer directement sur l’arduino à la place de celui précédemment enlevé ? Et de le programmer de la même manière avant de le retirer ?

    Répondre
    1. Idleman Auteur de l’article

      Comme je l’ai dit dans les commentaires précédents (oui, il y en a 240 alors je tolère les doublons ^^) il est possible de faire des deux façon, je privilégie celle ci car elle permet mieux de comprendre quelles pattes de l’atmega sont ciblées par la programmation et cela permet de reprogrammer un atmega qu’on ne pourrait pas bouger (soudé en plaque ou inaccessible dans un boitier)

      Répondre
  63. Florence

    Bonjour,

    Quel type de prise as-tu utilisé exactement ?

    Merci d’avance.

    Répondre
    1. Idleman Auteur de l’article

      Je ne comprends pas la question : nous fabriquons notre prise dans ce tuto, nous n’utilisons donc aucun type de prise vendu dans le commerce…

      Répondre
    1. Idleman Auteur de l’article

      Yop, c’est pas mal mais ça reste plus cher pour la même utilisation et une taille plus grosse que l’atmega seul, du coup ça en perd un peu de l’intérêt.

      Répondre
      1. hutuchong

        Bonjour a tous,

        Merci pour ces tutos que je trouve tres interessants.

        Je voudrais reagir sur ce dernier commentaire car en cherchant des atmega328 je ne trouve rien a moins cher que la proposition de lamalice.

        Je trouve des attiny13 a 1.3€ piece ou a 0.7€ par paquet de 10.
        l’attiny85 est a 2€.
        tous ces prix s’entendent port inclus.

        le moins cher que je puisse trouver pour atmega328 est de l’ordre de 4.4 €
        Alors si on trouve moins cher ce serait sympa de donner qqs liens.

        Merci et bon courage.
        hutu

        Répondre
  64. Jacques

    Super tuto. Bravo !
    Comment modifier le code Arduino et la commande shell pour piloter plusieurs relais (faire fonctionner la lampe-lapin :-) ?

    Répondre
  65. lio

    Bonjour
    Trés intéressant ce site, je pense que je vais me lancer dans la domotique a partir de l’arduino.
    Pour gérer mes radiateurs, je vais utiliser la sonde du tuto 18.
    Pour gerer le radiateur, ce tuto mais quelques questions:
    1 ce relais pour piloter le radiateur risque de faire du bruit (clic, clac…), donc peut-on passe par un relais opto style FOD852 (http://fr.farnell.com/fairchild-semiconductor/fod852/optocoupleur-e-s-darlington/dp/1495371) donc pas de bruit.
    2 possibilité peut être avec 2 relais et jeux de diode de piloter le fil pilote sur ordre ON/OFF et faire de la régul du radiateur, sans bruit.
    3 quand je lis 433Kz, parfois on lis dans les doc des matériel, 433,92hz. C’est important la dif?

    merci

    Répondre
    1. Idleman Auteur de l’article

      Non l’essentiel c’est que ça reste dans les 433mhz, ce qu’il y a après la virgule généralement ça reviens au même, je suppose que 433.92 est la valeur réelle de la fréquence autorisée mais que beaucoup de constructeurs « arrondissent » le terme a 433 mhz par flemme d’écrire le .92 :)

      Répondre
  66. Tarle

    Bonjour,

    merci pour tout ces tutos qui me sont d’un grand secours !
    J’ai mis un moment avant de résoudre mon problème alors pour ceux qui serais dans le même cas que moi:
    Mon kit émetteur récepteur ( voir plus bas ) a la particularité ( inutile ? ) d’avoir , sur l’émetteur , non pas une broche « DATA » mais « ATAD » ce qui signifie finalement que cette broche est une entrée inverseuse …
    Cela a pour conséquence de convertir les 0 en 1 et les 1 en 0 sur le signal que l’on tente d’envoyer !
    Le problème peut être résolu en modifiant le fichier radioEmission.cpp dans lequel il faut changer les LOW en HIGH et inversement dans les deux fonctions d’envoi !

    J’espère que cela pourra en aider certains !

    ps : J’habite a bordeaux et j’ai entendu parler du labx, j’ai vu que tu en faisais parti, si tu pouvais m’en dire plus ça m’a l’air intéressant ;)

    kit : http://www.ebay.com/itm/5pcs-433Mhz-RF-transmitter-and-receiver-kit-for-Arduino-ARM-MCU-WL-/370800682991?ssPageName=ADME:L:OC:FR:3160

    Répondre
    1. Idleman Auteur de l’article

      Effectivement c’est couillon comme fonctionnement je suis étonné qu’ils aient mis ça en place …

      Je ne vais plus beaucoup au lab ces derniers temps (fait trop froid ^^) mais si tu passe un de ces mardi dis le moi que j’y aille faire un tour :).

      Le lab à déménagé a l’ancienne usine de tri postale de Bègles, c’est le gros bâtiment au bout des boulevard, ya vachement plus de place.

      Après ben c’est une bande de geek barbus totalement désorganisés mais bien sympa et compétents dans divers domaines donc ya de quoi s’amuser ^^

      Répondre
  67. Tarle

    Reste que malgrès tout mes efforts je n’arrive pas a faire tourner ton programme sur un ATtyni 45 … j’ai u beau essayer plein de petites « bidouilles » ( en 1 ou 8 Mhz ) rien n’y fait =/ …
    Si quelqu’un a réussi je suis plus qu’intéressé !

    Répondre
  68. Sidney

    Salut Idle, et bravo pour tes tutos!
    Penses tu qu’il serait possible d’utiliser un autre microPro plus petit et moins cher? Si oui, m’en conseillerais-tu un?
    Merci’

    Répondre
    1. Idleman Auteur de l’article

      Moins cher il n’en existe pas beaucoup (généralement les prix sont dans les mêmes eau) par contre plus petit ça oui tu peux trouver, l’attiny85 par exemple, évidemment le code est à adapter légèrement mais il existe pas mal de tuto sur le web pour faire tourner du code arduino sur un attiny :)

      Répondre
  69. Adamskas

    Salut,

    Tout d’abord, merci pour les articles super sympa que tu postes, c’est attractif, intéressant et instructif ! Donc merci :)
    Je suis tombé sous le charme de la Rpi et depuis je suis avide de nouveautés et d’expérimentations sur cette board.
    Désolé si c’est pas vraiment l’article le plus approprié pour ma demande mais voici : je cherche à envoyer/recevoir des sms depuis une board GPRS, GSM vers ma raspberry pi, du coup j’ai 2 questions :
    – pensez vous que ce type de board puisse être compatible (a priori oui) : http://www.amazon.com/SainSmart-Compatible-Wireless-Adapter-Siemens/dp/B005ZMG6L0/ref=pd_sim_sbs_misc_6
    – pensez-vous que la carte SIM free à 2€ serait compatible avec ce genre de board, car j’ai vu sur certaines ils précisent que c’est pas forcément compatible avec tous les opérateurs (problème de fréquence ?)

    Merci d’avance

    Autre truc, c’est une suggestion, mais ce serait bien qu’il y ait un forum sur le site pour communiquer entre membres, poser des questions, des idées, des projets.. enfin voilà si jamais ça t’intéresse il y a Simple Press (la charte fait un peu peur : http://simple-press.com/download/) mais il est super bien comme plugin wordpress pour mettre un place un forum (type phpBB) mais pleinement intégré à wordpress. (et si jamais tu as besoin d’info pour du dev ou autre wordpress n’hésite pas à me contacter).

    Trêve de blabla, Merci encore !

    Répondre
    1. KingOfNuls

      Bonjour,

      D’abord bravo à idleman pour son site très inspirant.

      Je ne sais pas si je comprend bien ta demande mais il est possible d’envoyer et recevoir des sms depuis une RPi, avec une carte SIM Free Mobile depuis une clef 3G. Je le fais avec une ZTE MF626 USB et c’est bien pratique.

      http://blog.uggy.org/?post/2013/01/21/Envoi-de-SMS-par-le-RaspberryPi
      https://www.bentasker.co.uk/documentation/linux/19-installing-and-using-a-t-mobile-zte-mf626-usb-3g-mobile-broadband-dongle-under-linux

      Répondre
  70. the_darkprince

    Salut Idleman!

    Tout d’abord, merci pour tes tutos qui m’aident bien à comprendre le raspberry et à en faire autre chose qu’un HTPC.
    Pour me faire un peu la main, je pense réaliser ta prise radio. Cependant, je me pause une petite question, je possède un arduino UNO et je me demande si je pourrais programmer la puce ATmega328 avec? En effet, ce lien m’a mis le doute: http://arduino.cc/en/Tutorial/ArduinoToBreadboard
    En effet il est écrit: Note that these techniques only work with the Arduino Duemilanove w/ an ATmega328, not the Arduino Uno (or older Arduino boards w/ an ATmega168).

    Qu’en penses-tu?

    Ensuite aurait tu un lien pour les puces ATmega328 avec bootloader? car celles que je trouvent coutent le double du prix que tu annonce en début d’article.

    Merci :)

    Répondre
    1. Idleman Auteur de l’article

      Tu peux parfaitement programmer un atmega 328 avec un bootloader uno via une plateforme duemilanove, c’est ce que je fais chez moi, et si tu ne veux pas te prendre la tête à monter leurs circuit, tu as juste a planter ton 328 dans la broche de ta plateforme a la place du microcontroller fournis avec et a executer ton code (attention au sens de l’atmega par contre).

      Les liens changent souvent sur ebay mais généralement je tape atmega 328 with bootloader puis j’active les filtres « dans le monde entier » puis « achat immédiat » et enfin « tris par prix + livraison » pour avoir les meilleurs prix.

      Après tu peux aussi en acheter sans le bootloader pour els avoir moins cher et graver le bootloader toi même

      Répondre
  71. Julien

    Ce qui me gène c’est l’alimentation de tout ca, sachant qu’on à le 220v si on doit trouver un 220v => 5 v l’encombrement augmente et le prix aussi.
    Quand on voit le prix d’une prise chacon a 30€ les 3 ou les modules chacun pour interrupteur ultraplat. (un peu chère mais moins qu’un fibaro)

    Je me demande comment fait chacon pour l’alimentation vu le faible encombrement.

    l’idéale serait un relai 5V/220v avec directement le convertiseur 220v 5v :)

    Répondre
    1. Idleman Auteur de l’article

      Il existe pas mal d’alimentation a bas prix sous forme de chargeur de portables, sur ebay on peux trouver des chargeurs 220/5v à 1€ l’unité.

      La seule complication c’est de trouver un fournisseur fiable qui respecte les normes européennes, il ne faut pas rigoler avec les transformateurs ^^

      Répondre
  72. Guillaume

    Hello,

    Malgré des heures de recherche et surtout après avoir suivi à la lettre ton tuto (très bien fait d’ailleurs) j’ai encore et toujours l’erreur avrdude: stk500_getsync(): not in sync: resp=0x00.

    j’ai beau revérifié (cablage, sélection du type de carte, valeur des composants…) toujours pareil… j’ai un atmega328p…

    as tu eu des retours sur cette erreur ? une idée ? please !

    Merci beaucoup

    Guillaume

    Répondre
    1. Idleman Auteur de l’article

      Le port COM est le bon ? Le type de carte sélectionné correspond bien au bootloader de ton atmega ? L’atmega est il bien bootloadé ? As tu essayé avec la dernière version d’arduino IDE ?

      Répondre
      1. Guillaume

        Malheureusement c’est oui, oui, oui et oui.

        j’ai plus d’idée là…

        pour l’instant je charge le prog avec l’atmega sur l’arduino en attendant une méthode plus clean et plus pratique…

        Répondre
        1. Idleman Auteur de l’article

          Ca viens donc du circuit si ça fonctionne direct sur l’atmega, ton résonateur n’est pas grillé ou à la mauvaise fréquence?

          Répondre
  73. Guillaume

    Salut

    j’ai tout repris avec les mêmes composants et sur un atmega ça fonctionne pas et sur l’autre c’est OK !

    c’est déjà ça mais après l’upload rien ne s’exécute ! Le code est bien uploadé car si je pose l’atmega sur la carte Arduino le code s’exécute de suite.

    j’ai encore besoin d’aide quoi ;-)

    Merci

    Répondre
  74. Njm504

    Bonjour et encore bravo!

    Je voudrais juste savoir si tu pouvais améliorer le code de l’atmega afin de pouvoir enregistrer dans sa mémoire plusieurs code d’apprentissage pour pouvoir piloter nos relais et donc nos prises par plusieurs sources « chacun »

    Merci pour ta réponse

    Répondre
    1. Idleman Auteur de l’article

      C’est possible mais je manque de temps pour cela :), donc si ça se fait ce n’est pas pour tout de suite :)

      Répondre
  75. Maxime

    Bonjour,
    Pour la programmation de la puce ATMEGA328-20PU est-ce qu’il est possible de brancher la puce directement sur le module arduino?

    Merci d’avance,

    Maxime

    Répondre
    1. Idleman Auteur de l’article

      oui :), pense juste a prnedr eun bootloader compatible avec ta plateforme (uno,duemilanove,etc..)

      Répondre
  76. PY

    Bonjour Idleman,

    Encore merci pour ton super blog!!! tu fais vraiment un super boulo!
    Je met en place un système complet de domotique et je souhaite piloter certain équipements par radio. Du coup, j’ai suivi une fois de plus un de tes tuto sur la raspberry.
    afin de partir du bon pied, j’ai configuré ma raspberry comme dans le tuto 12 et me suis fait le montage du tuto 15. Mais là, j’ai quelques petits soucis de communication radio. je n’arrive pas à faire bouger le micro. la diode ne clignote pas.
    En modifiant légèrement le code du micro, j’ai pu confirmer q’il reçoit bien des infos radio mais pas de protocole homeeasy. je pense donc que cela vient de l’émission. afin de vérifier que tout ce passe bien, j’ai souhaiter activé les log que tu as judicieusement placé dans le radioemission.cpp mais lorsque je veux le recompiler, j’ai des erreurs de multiple definition en relation avec crtstuff.c. j’utilise la commande suivante:
    sudo g++ /var/www/hcc/radioEmission.cpp -O /var/www/hcc/radioEmission -lwiringPi
    As tu une idée du problème de compilation?

    En revanche, étant électronicien, je peux vous proposer une petite alime 230Vac –> 5Vdc faite maison afin d’alimenter le montage micro/relais…
    je me suis basé sur ce convertisseur: http://fr.rs-online.com/web/p/alimentations-a-decoupage-integrables/7719360/
    De plus, afin d’éviter d’avoir à piloter en permanence le relais de sortie, je vous propose l’utilisation d’un relais bistable du type G6AK-234P-ST
    si cela intéresse quelqu’un, je peux vous fournir des schémas.
    cordialement,
    PY

    Répondre
    1. Franck

      Bonsoir PY
      Es – tu sur que ce relai G6AK-234P-ST est capable de couper et isoler du 220v car on dirait qu’il plafonne a 125VAC.

      En revanche je suis très intéressé par ton montage avec alim a découpage.
      Si tu peu me fournit un schéma et quelques explications cela serait royal.

      Par avance merci

      Franck

      Répondre
  77. chakalou

    Bonjour,

    Super Tuto que je m’applique à suivre depuis le premier ! :) Merci à toi Idle pour ce super boulot !!

    Par contre j’aimerais savoir si certains ont tenté d’acheter le transmiter/recepteur via le lien ebay donné ici… Car celà fais maintenant 3 semaines que j’ai commandé de mien et toujours pas de nouvelles. Du coup je m’inquiète car…
    Je suis en manque de bidouillage !!! :)

    Merci d’avance !

    Répondre
  78. tom

    Bonjour,

    J’ai une petite question, car je ne comprends pas très bien ce tuto, ce que je recherche ses de contrôler une lampe avec mon raspberry sans fils (enfin de mon raspberry a ma lampe) et je vois que sur le schéma nous somme obliger de relier notre raspberry au récepteur ?
    J’ai dû zapper un truck mais ses vrai que là je ne peux pas faire de test car je n’ai pas encore reçus mon raspberry.

    Répondre
    1. Idleman Auteur de l’article

      non le rpi est relié à l’emetteur, c’est l’arduino qui est relié au recepteur.

      L’arduino constitue le « cerveau » de ta prise télécommandée, il n’y a donc bien pas de fils entre ton rpi et la prise arduino reliée à ta lampe.

      Répondre
  79. FnK

    Le schema n’est plus disponible T_T

    Répondre
    1. Idleman Auteur de l’article

      C’est re up désolé petite panne réseau :)

      Répondre
  80. Simonfr

    Salutations,

    Je voulais savoir s’il était grave de prendre un ATmega328P-PU à la place d’un ATmega328-PU ?

    Cordialement,
    Simonfr

    Répondre
    1. Idleman Auteur de l’article

      honnêtement je n’ai jamais fait la différence :), à tester

      Répondre
  81. PeaX

    Bonjour à tous,

    Voila moi j’ai un petit problème avec cela, j’utilise une carte Arduino Uno pour réaliser le tuto et pourtant cela ne fonctionne pas. Je ne sais pas si cela viens de ma RPi ou de mon Arduino mais quelques chose coince. Je crois que ma carte Arduino ne recoi pas tout, car dans la boucle « while(i < 64)" le i s'arrête à 4.
    Voici un petit aperçu de ce qu'il se passe avec i:

    latch 1
    latch 2
    i=
    0
    latch 1
    latch 2
    i=
    0
    i=
    1
    latch 1
    latch 2
    i=
    0
    i=
    1
    i=
    2
    i=
    3
    latch 1
    latch 2
    i=
    0
    latch 1

    Si quelqu'un a une solution je suis preneur.
    Merci

    Répondre
  82. Valday

    Pourquoi avoir utiliser un atmega et pas tout simplement un PIC ?

    Répondre
    1. Idleman Auteur de l’article

      Parce que si je l’avais fait on m’aurais demandé « pourquoi un PIC et pas un atmega » ou encore « pourquoi un PIC et pas un attiny » etc etc…
      Toutes les options sont permises, j’ai choisis l’atmega parce que je le trouve plus simple à aborder pour les non électronicien, simple à programmer, polyvalent, et disposant d’une plateforme (arduino) permettant sa découverte à bas prix

      Répondre
  83. mokmap

    Bonjour,

    Super site et super tuto que du bonheur, merci. Par contre, les liens de ce tuto ne fonctionne plus et les images ne s’affiche pas.

    Pourrais-tu corriger le problème stp Merci

    Répondre
    1. Idleman Auteur de l’article

      C’est corrigé normalement merci de me l’avoir signalé :)

      Répondre
      1. mokmap

        Merci à toi pour le partage de connaissance.

        Une question, pour faire le 1er montage pour programmer l’Atmega328PU, pourquoi ne pas mettre l’At328PU directement dans l’Arduino en lieu et place de celui d’origine ?

        Merci,

        Répondre
        1. Idleman Auteur de l’article

          Tu peux le faire aussi, je trouve plus didactique d’utiliser la liaison serie, surtout que ça permet de programmer un atmega sans plateforme si besoin est

          Répondre
  84. Saprien

    Merci pour le partage mais les images des cablages ont disparus…
    Serait il possible de les republier ?
    Encore Merci :)

    Répondre
    1. Idleman Auteur de l’article

      Coucou, c’est corrigé, merci d’avoir signalé :)

      Répondre
    1. Idleman Auteur de l’article

      Coucou, c’est corrigé merci du signalement :)

      Répondre
  85. mokmap

    Bonjour,
    J’essaye de le faire avec un ATTINY45 mais cela ne fonctionne pas.
    quand j’essaye d’envoyer le programme j’ai cette erreur :

    avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.

    Est-ce que tu aurais une solution ?

    J’ai penser au bootloader mais j’arrive pas à trouver un bootloader pour ATTINY45 sur le web.

    Merci

    Répondre
  86. mokmap

    Bonjour,

    lorsque je veux envoyer le programme dans un ATTINY45, j’ai ce message d’erreur :

    avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.

    Quelqu’un sait comme corriger le problème ?

    Merci

    Répondre
  87. DemonHunter

    Bonjour et merci pour ce tuto magnifique,

    J’essaye d’utiliser ton programme avec Attyni85 mais je n’arrive pas à le faire fonctionner.
    Est-ce que tu pourrais m’expliquer un peux ton code, celui que tu installe dans l’Atmega ? il faudrait que je le modifie pour qu’il puisse fonctionner avec un Attiny85.

    en gros je voudrais que quand il reçoit le code 1234 on il allume ma prise et quand il reçoit 1234 off il éteins ma prise. Si tu peux m’aider.

    Merci

    Répondre
  88. Labidouille

    Salut à toi ! et au futur lecteur d’ailleurs :D
    J’ai parcouru ce blog, lu ce blog, et je trouve vraiment ton approche génial, pédagogique, didactique, et surtout accessible ! Bravo pour cela !!!
    Voila ma question relative au sujet :

    J’ai souhaite contrôler plusieurs relais, en me basant sur ton tuto avec la config suivante 1x(arduino + emeteur) + 8x(recepteur+atméga+relay)= ??? . Je cherche à comprendre comment attribuer des identifiants à chaque atméga, et comment glisser cet identifiant dans le signal emit par l’Arduino, pour n’actionner que le relai voulu !

    Je me casse la tête contre mon écran depuis plusieurs semaine pour trouver comment faire, alors je t’en pris, sort moi de ce cauchemar, car j’approche la commotion cérébral !

    Répondre
  89. ravinstudio

    Salut, encore merci pour tes super tuto qui nous simplifie grandement notre vie :p
    Je souhaiterai adapter ton code pour faire un boitier avec une PIR. Dès qu’un mouvement est détecter elle envoi le signal a l’atmega qui le renvoi sur l’emeteur 433mhz pour le recevoir sur le raspberry au final. Penses tu que c’est faisable ? :)

    Répondre
  90. lours

    Bonjour,

    J’ai essayer d’utiliser un ATTYNI85, j’arrive à le programmer avec un arduino (y’a plein de tuto sur le net pour sa) mais lorsque j’envoie ton programme ( en ayant modifier les numéro des pin pour faire correspondre avec un ATTYNI85) cela ne fonctionne pas. Aurais-tu une idée stp ?

    Merci

    Répondre
  91. jb

    Super blog, merci pour tes tutos en or :D
    J’essaye de mon côté de réaliser un allumage automatique d’arrosage avec cette solution, mais je bloque avec mon arduino.
    Avec le montage proposé, quand je branche l’arduino la LED 13 reste allumée et lorsque je veux uploader le programme sur la puce ça me met cette erreur :
     »
    C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM4 -b115200 -D -Uflash:w:C:\Users\AppData\Local\Temp\build3147920903532555117.tmp\Blink.cpp.hex:i

    avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is « C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf »

    Using Port : \\.\COM4
    Using Programmer : arduino
    Overriding Baud Rate : 115200
    avrdude: Send: 0 [30] [20]
    avrdude: Send: 0 [30] [20]
    avrdude: Send: 0 [30] [20]
    avrdude: Recv:
    avrdude: stk500_getsync(): not in sync: resp=0x00

    avrdude done. Thank you.
     »

    alors que quand je mets la puce directement sur l’arduino uno, ça fonctionne (j’ai testé le blink code d’example).
    Lorsque l’on met ton code avec la puce directement sur l’arduino si j’ai tout suivi (ce qui n’est pas certain) j’ai pas une horloge à 16Mhz mais à 8Mhz (enfin je dis ça mais je comprends pas grand chose à cette horloge, hein :/ ) et donc le montage suivant pour envoyer les ondes ne fonctionne surement pas à cause de cette histoire d’horloge ?

    As-tu une solution sous la main pour un zéro en éléctronique ? oO

    Merci d’avance,
    Jean

    Répondre
  92. Le fromage

    Bonsoir,tout d’abord merci pour vos nombreux articles qui m’on donnée pas mal d’envie.Que ce soit d’enfin me mettre à la programation ou me faire mon systéme de domotique pour mes plantes carnivores et surveiller mes chats lorsque je suis au boulot.

    Pour le packaging pourquoi ne pas regardé du coté des boites de dérivation? C’est étanche,résistant et surtout pas chére.

    http://www.conrad.fr/ce/fr/product/522589/?utm_source=google-search-product&utm_medium=comparateur&utm_campaign=522589&WT.mc_id=comparateur-gsp-522589&LGWCODE=522589;43857;390&gclid=CKjx6L3ttr8CFcbKtAodr18AHg

    Au revoir. :)

    Répondre
  93. ravin

    Salut a tous, j’ai testé le montage tout fonctionne parfaitement par contre au delà de 5 mètres je capte rien du tout, j’ai bien revu mon alimentation et ayant acheter un lot de 20 pièce d’émetteur et récepteur 433mhz j’ai refait la soudure avec une bonne antenne de 17.3 cm, la soudure étant propre mais toujours le même résultat.
    Je n’arrive pas à augmenter ma porté.
    Un petit point que je souhaiterai préciser c’est que dès que j’alimente mon émetteur 433mhz en 12 v rien fonctionne.
    Quelqu’un a une idée ?

    Répondre
    1. Idleman Auteur de l’article

      Le quart et le résonateurs peuvent tout les deux servir d’horloge mais sont de différents composants, le résonnateur peux fonctionner tout seul, pas les quartz.
      D’une manière globale, le kit est un peu cher si on prends les pieces une par une

      Répondre
  94. Julien

    Bonjour,
    Ou as tu récupéré les deux prises nue que tu montre dans la vidéo? c’est exactement ce que je cherche pour faire la boite anglobante moi-même imprimée en 3D.

    merci d’avance.

    Répondre
    1. Idleman Auteur de l’article

      J’ai du trouver ça dans une quincaillerie, ça trainais dans une vielle boite chez moi depuis une éternité ^^, désolé je n’ai pas plus d’info sur le sujet :)

      Répondre
  95. hemesse

    Bonjour
    Un détail me surprend dans la configuration de l’atmega: « résistance de 1.27homs une 10k conviendrais mieux » cela fait un bel écart je n’ai pas de 1.27 quelle serait la valeur idéale?
    cordialement

    Répondre
    1. Idleman Auteur de l’article

      Je trouve les deux valeurs sur le net, j’ignore laquelle est la plus appropriée, par mesure de sécurisé je prendrais plus celle à 10k, mieux vaut que ça ne marche pas que ça grille un pin.

      Répondre
      1. hemesse

        Merci pour ta reponse, je vais suivre ce conseil.
        cordialement

        Répondre
  96. Vince

    Bonsoir,
    Avez-vous un code arduino pour allumer une prise chacon ?
    Le montage en récepteur marche très bien, mais pas en transmission.
    Merci

    Répondre
  97. chrisskross

    Bonjour a tous,

    Pour commencer, un grand merci à Idleman et aux membres qui suivent les créations de son blog avec intérêt.
    Les sujets de la domotique sont passionnants et attirent ma curiosité comme tout ceux qui sont présents ici.

    Me concernant, j aimerai piloter depuis mon raspberry et un émetteur RF (ou par mon LAN ), un adruiano à connecté à un recepteur RF (ou shield ETHERNET) afin de gérer plusieurs relais. ces relais viendront piloter différents points lumineux dans mon installation électrique. pas de probleme de cablage me concerant pour l’ensemble du projet.

    L avantage de mon installation est que les circuits lumineux sont centralisés dans un coffret de dérivation à proximité de mon tableau électrique, le tout dans un local technique donc caché et très discret. donc pratique pour y installer un tranfo 5VCC et 12VCC.

    j aurais voulu avoir des infos sur l adruiano car encore inconnu pour moi,
    – savoir s ‘il est possible de connecter l ‘ensemble de mes relais + le récepteur RF a l arduiano ( 10 relais => 10 points lumineux) ????  » a priori oui vu le nombre de broche sur le port GPIO »
    – et savoir ou je peux trouver un peu de doc sur un projet similaire car dans cette article nous abordons la programmation du contrôleur dépourvu de carte.

    Cordialement
    chris

    Répondre
  98. htchoum

    Salut, d’abord, je tiens a te remercier pour ses excellents tuto qui m’ont permis de ma lancer dans la domotique. Tout y est vraiment bien expliqué et donne envie de tester.
    Par contre, j’ai un petit souci concernant l’alimentation de mes atmega328. Mon premier projet consiste a essayer de faire un module gérant les ordres des fil pilotes pour mes chauffages. J’ai donc une puce atmega328, une sonde DS18B20 et un kit emetteur/recepteur de brancher sur ma puce (faut encore que je gère la partie relais pour envoyé les infos au fil pilote mais bon).
    Pour le moment tout fonctionne correctement lorsque j’alimente mon montage avec la sortie 5V de mon arduino (avec une portée plus que correct pour les emissions/receptions radio). Mais lorsque je l’alimente avec une alim externe (type chargeur d’iphone acheter pas cher sur ebay), je n’ai plus aucune porté radio!!!
    Voila le type de chargeur que j’ai commandé : http://www.ebay.fr/itm/121410035111?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
    Sur les caractéristiques, ils débitent du 5V à 1A, ca devrait être largement suffissant pour alimenter mon circuit normalement.
    J’ai lu pas mal de choses sur ce type de chargeur dans les commentaires du post, je voulais savoir si t’avais reussi du coup a en trouver qui fonctionnait correctement ou si il y avait une astuce (peut etre un composant pour reguler la tension de sortie ou autre a rajouter afin de faire fonctionner l’ensemble… (ps:j’y connait encore rien en electronique alors désolé si c’est complètement hors sujet…))
    Pour le moment, je suis un peu perdu du coup, j’me retrouve avec 10 convertisseurs 5V qui me servent pas a grand chose…

    Répondre
  99. Jaumard

    Hello,

    Merci pour tous tes tutos j’ai commandé mon rasberrypi et dès que je le reçois je me lance pour connecté mon appart ^^.
    Je suis dév et j’aimerai tout faire moi de A à Z ^^ du coup je serais pas contre plus d’explication sur le protocole radio comment ca marche et comment je peux encoder décoder les messages qui transite. Si tu as quelques liens ou infos je suis preneur
    Petites questions cependant :
    As tu un tuto justement pour rajouter un émetteur à la prise ?
    Partout je vois que c’est gérer via onde radio mais est ce bien sécurisé du coup ?

    Petit idée de tutos :
    – l’ajout d’une webcam via wifi avec visualisation du flux vidéo via une page web
    – l’ajout d’enceinte (je sais pas si besoin ou si le rasberry as déjà une sortie audio) avec possibilité de parler (ou jouer une musique ect…) via une appli dans les enceintes (en cas d’intrusion ca permet de parler au gens dans l’appart, ou pour réveiller/faire peur à ta copine ca marche aussi :D)

    Répondre
  100. Jaumard

    Hello,

    L’arduino duemilanove n’existe plus (ou je ne le trouve pas) il faut le remplacer par le Arduino UNO Rev3 ? http://store.arduino.cc/product/A000066
    Dans le cas d’une multi prise combien de prise peut on gérer avec un ATmega328 ? Il faut forcément un relais + un résonateur par prise ? ou juste un relais par prise suffis ?

    Merci pour ton boulot avec ces tutos !!

    Répondre
  101. Jaumard

    Re ^^

    J’ai reçu mon raspberry pi et j’ai commencé à monter mon serveur web. Tout fonctionne nickel :D j’aimerais maintenant rentrer dans le vif du sujet avec tes tutos. Le problème c’est que je ne trouve pas de carte d’alimentation comme tu as dans la vidéo (ou sinon à 20€ c’est trop cher) aurais tu un lien ou je peux trouver ça à 2€ comme tu dis ds ta vidéo ?

    Merci
    Jim

    Répondre
  102. Didou

    Bonjour Idleman,
    Peut etre mon post arrive tard au vu des dates mais bon je tente le coup. Voila je viens de réaliser tous tes tutos à la lettre et tout marche à la perfection en revanche j’ai un souci avec la fabrication de cette « prise maison ». en effet atmega programmé tout est ok mais en aucun cas je n’arrive à envoyer un signal via l’emetteur branché sur le rpi. D’un coté le rpi avec emetteur envoi les codes sur les prises chacon sans souci mais n’arrive pas à envoyer sur la prise maison, par contre la telecommande chacon arrive à me programmer ma prise maison avec l’atmega ??? J’ai l’impression que le recepteur ne recoit pas la trame correctement de l’emetteur car la led ne scintille jamais donc apparemment ce n’est pas un protocole home esay tel que tu le décris en revanche la telecommande me fait vaciller la led et la ca fonctionne ? c’est quoi la difference entre telecommande et envoi via rpi ? protocolle semblable pourtant.
    J’espere que tu pourras me donner une piste pour avancer car j’ai tous les compos pour me faire ma domotique tout fonctionne plus ou mien bien mais la je bloque. Merci par avance

    Répondre
  103. ChrisKross

    Salut Idleman et toute l’équipe,

    Après avoir suivi IDLEMAN sur son GITHUB concernant Yana-server. je vous fais part des petites modifications que j’apporte à l’excellent travail du patron :) (le but étant l’entraide donc je suis conscient que certains points peuvent être améliorés. nul n’est parfait !!! :p )
    Je me permets donc de poster, mes petites modifications concernant la création de prises radio .

    Modification apportée permet de : piloter plus d’un relais en fonction d’un Sender et de différents code radio (0 A 15) évidement toujours avec le protocole HOMEeasy (depuis RPI ou telecommande, ect ….) .

    Prérequis : Connaitre le code radio à émettre (telecommande ou RPI), récupérable avec la bibliothèque HRCSWITCH ou en modifiant légèrement le code du programme de idleman, il vous suffit de faire un « serialprintln » du receivedSignal.sender && du receivedSignal.receptor, à inclure juste après la condition if(receivedSignal.isSignal) {

    nota : les signaux ne seront pas stockés dans l EEPROM, mais possibilité de les rajouter, et la led est supprimée car pas utile dans mon cas, suivit des infos à travers une console.

    CODE du sketch
    —————————————————————————————————-
    #define LAMPE_1 1 // A CHANGER SUIVANT VOS CODES RADIO
    #define LAMPE_2 2 // A CHANGER SUIVANT VOS CODES RADIO

    int recepteurPin = 9;
    int relaiPin1 = 10; // NUMERO DE PIN UTILISE PAR L ARDUI pour PILOTER LE RELAI1
    int relaiPin2 = 11; // NUMERO DE PIN UTILISE PAR L ARDUI pour PILOTER LE RELAI2

    struct config_t
    {
    long sender;
    int receptor;
    } signal;

    struct signal_t
    {
    long sender;
    int receptor;
    boolean isSignal;
    boolean state;
    } receivedSignal;

    void setup() // CONFIGURATION DES E/S
    { pinMode(recepteurPin, INPUT);
    pinMode(relaiPin1, OUTPUT);
    pinMode(relaiPin2, OUTPUT);
    Serial.begin(9600);
    Serial.println(« start »);
    }

    void loop()
    {

    //Ecoute des signaux
    listenSignal();

    //Si un signal au protocol home easy est reçu…
    if(receivedSignal.isSignal)
    {

    //Comparaison signal de référence, signal reçu
    if (receivedSignal.sender==16814350) // CORRESPOND AU CODE DU SENDER
    {
    Serial.println(« Signal correspondant »);
    switch (receivedSignal.receptor) // SWITCH EN FONCTION DU CODE RADIO, ICI 1 OU 2
    //On ferme ou on ouvre le relais en fonction du bit d’etat (on/off) du signal
    {
    case LAMPE_1 : // SI CODE RADIO = 1

    if(receivedSignal.state)
    {
    Serial.println(« Etat : on, fermeture du relais LAMPE_1 »);
    digitalWrite(relaiPin1,HIGH);
    }
    else
    {
    Serial.println(« Etat : off, ouverture du relais LAMPE_1 »);
    digitalWrite(relaiPin1,LOW);
    }
    delay(500);
    break;

    case LAMPE_2 : // SI CODE RADIO = 2

    if(receivedSignal.state)iol
    {
    Serial.println(« Etat : on, fermeture du relais LAMPE_2 »);
    digitalWrite(relaiPin2,HIGH);
    }
    else
    {
    Serial.println(« Etat : off, ouverture du relais LAMPE_2 »);
    digitalWrite(relaiPin2,LOW);
    }
    delay(500);
    break;
    }
    }
    else{
    Serial.println(« Signal inconnu »); // AFFICHAGE DANS LA CONSOLE SI LE SENDER EST DIFFERENT
    }
    }
    }

    void listenSignal(){
    receivedSignal.sender = 0;
    receivedSignal.receptor = 0;
    receivedSignal.isSignal = false;

    int i = 0;
    unsigned long t = 0;

    byte prevBit = 0;
    byte bit = 0;

    unsigned long sender = 0;
    bool group = false;
    bool on = false;
    unsigned int recipient = 0;

    // latch 1
    while((t 11350))
    { t = pulseIn(recepteurPin, LOW, 1000000);
    }
    Serial.println(« latch 1 »);

    // latch 2
    while(t 2800)
    { t = pulseIn(recepteurPin, LOW, 1000000);
    }

    Serial.println(« latch 2 »);

    // data
    while(i 200 && t 1000 && t < 1400)
    { bit = 1;

    }
    else
    { i = 0;
    break;
    Serial.println("bit mort"+t);
    }

    if(i % 2 == 1)
    {
    if((prevBit ^ bit) == 0)
    { // must be either 01 or 10, cannot be 00 or 11
    i = 0;
    break;
    }

    if(i < 53)
    { // first 26 data bits
    sender <<= 1;
    sender |= prevBit;
    }
    else if(i == 53)
    { // 26th data bit
    group = prevBit;
    }
    else if(i == 55)
    { // 27th data bit
    on = prevBit;
    }
    else
    { // last 4 data bits
    recipient < 0)
    {
    receivedSignal.sender = sender;
    receivedSignal.receptor = recipient;
    receivedSignal.isSignal = true;
    if(on)
    {
    receivedSignal.state = true;
    }else{
    receivedSignal.state = false;
    }
    }
    }

    @++

    Répondre
  104. christophe

    Salut !
    Chapeau pour ce tuto, c’est trop cool. Ca fait des semaines que je galère pour essayer de piloter un Arduino avec des commandes Chacon (j’ai une Zibase)…mais en vain.
    J’ai testé ton tuto mais à part une série de « latch 1 » et « latch 2 », rien d’autre ne se passe…??? (ça veut dire quoi au passage « latch… » ?)
    Aurais-tu des suggestions à me faire ?
    J’ai un Arduino Uno officiel, une carte RF433 XY-MK-5V (data sur pin 9)
    Je n’ai pas mis de relais ni Led pour le moment car je cherche avant tout à tester pour voir si j’arrive à recevoir mes commandes « B3 ON » / « B3 OFF » …. mais en vain donc…
    HELP !!!!!!!!!!!!!!!!!! je craque <3
    Christophe

    Répondre
  105. Florian

    Bonjour,

    Et lorsque l’on ne peut pas enlever l’atmega de l’arduino, comment fait-on ?

    Merci ;)

    Répondre
  106. Maxime

    Bonjour,
    j’aimerais savoir s’il est possible de brancher l’alim 5v en parallèle avec l’objet qui se situe après la prise afin d’alimenter la lampe par exemple et l’arduino a partir d’une seule prise.

    Maxime

    Répondre
  107. Tony

    Bonjour,

    Je suis vraiment novice sur le sujet (enfin les sujets: domotique, programmation et electronique).

    Je voudrais me lancer dans la fabrication de ces prises mais je voudrais comprendre quelques points. Via l’interface HCC, on configure un périphérique avec un code radio. Mais ce code radio, on le défini où dans le atmega?
    Si on veux faire plusieurs prises, où on doit définir dans l’atmega que ce code radio est 1 ou 8 :) ?

    Merci a vous

    Répondre
  108. Newgin

    Salut,

    Je souhaite utiliser le tuto mais pour gérer 8 relais. Comment je dois modifier le code pour cela ?

    Répondre
  109. don-harry

    bonjours

    comment fait pour commande ton relai avec une tension positiv alors que il fonction en commande negative ?

    Répondre
  110. Marie

    Est-ce qu’on peut avec le même capteur mesurer en même temps la hauteur ?
    merci

    Répondre
  111. MagicManu

    Super boulot Idleman ! Merci pour tout ces tutos ! Mais j’ai cependant un problème…

    Mon but : envoyer des commandes depuis une page web (sur un Raspberry) pour piloter des volets roulants (Arduino).

    J’ai un soucis avec la réception : dans la console Arduino j’ai des caractères bizarres ou des infos tronquées !? (voir ci-dessous) Et même si ça écrit « fermeture du relais » il ne se ferme jamais ! Alors que si j’écris la commande digitalWrite(relaiPin,HIGH) au début du LOOP il se ferme (donc pas d’erreur de câblage)
    J’ai essayé avec 2 Arduinos et même soucis (Uno et Nano).
    On dirait que la communication se fait mais qu’elle est mal interprétée, une idée ? Merci.

    tch 1
    tch ch 1
    mme signal de réferßþ/÷ü’W5+ëŸ?ïûïÁÇ;ñúûÝÿüážú}Çýêo÷¤0Yiÿþí矟4ëù{ëõå.Qe¯ÁÿRѦEæÿ‹Zåô>Ûò/Ö<|ßû¿÷¯ìµ
    º¿÷ò?þ[¯·ÿí«½_=ûÿñz­¸}ÞY#ÚÒ\;ÿK¾o¸úGÇûûì¾~þ·¾ôoøÿ_éäwVìË»ÆÛ­ù·YkoøÏþ®~óÍÈîÕº
    latch 1
    latch 2
    ne, enregistrement du signal recu comme signal de reference
    latch 1
    latch 2
    latch 1
    latch 2
    e reference
    latch 1
    latch 2
    signal de reference
    latch 1
    latch 2
    al correspondant
    latch 1
    latch 2
    latch 1
    latch 2
    Etat : on, fermeture du relais
    latch 1
    latch 2
    e reference

    Répondre
  112. Filippozzi

    Salut,
    super tuto!!!
    Depuis que je suis ton blog, j’ai enfin trouvé comment utilisé mes connaissances (car gros manque de créativité) et les mariées.
    Un seul mot à te dire; merci

    P.S. : Vive la domotique :mrgreen:

    Répondre
    1. Idleman Auteur de l’article

      Ca fait plaisir :), bonne continuation :D

      Répondre
  113. clyds

    Salut!
    Tuto très simple à comprendre!
    j’essaye de réduire la consommation au maximum, j’ai donc intégré la librairie sleep à ton programme en l’utilisant avec les interruption.
    A première vue, tout fonctionne comme je veux.
    je met mon script ici ( j’ai retirer tout ce qui concerne l’interprétation du signal, la mise en eeprom , mais pas la reception)

    #include
    #define LEDPIN 12 //pin digital de la led témoin
    #define RELPIN 10 // pin digital du relais
    #define RECPIN 2 // recepteur 433.92 Mhz (pin d’interruption)
    #define INT 0 // interruption externe
    struct signal_t{
    long sender;
    int receptor;
    boolean isSignal;
    boolean state;
    } receivedSignal;

    void wakeUpNow() //Fonction appelé après réveil
    {
    // ici l’interruption est traitée après le réveil avant la boucle loop
    // les « timers » (delay) ou code utilisant les timers ne fonctionne pas, de même que Serial.print et bien d’autre
    // pas forcément besoin d’implémenter de code içi.
    }
    void sleepNow(){//Fonction de mise en sommeil
    delay(100);
    set_sleep_mode(SLEEP_MODE_PWR_DOWN); // réglage du mode de sommeil
    sleep_enable(); //active la possibilité du mode sommeil
    attachInterrupt(INT,wakeUpNow, FALLING); //attache l’interruption externe INT à la fonction wakeUpNow
    sleep_mode(); // mise en mode sommeil
    }
    void setup()
    {
    initPin();
    sleepNow();
    //attachInterrupt(INT,wakeUpNow,FALLING); // attache l’interruption externe INT à la fonction wakeUpNow
    }

    void loop()
    {
    Serial.println(« Écoute des signaux »);
    listenSignal();

    }

    void initPin(){
    pinMode(RECPIN,INPUT);//défini le récepteur en entré
    pinMode(RELPIN,OUTPUT);//défini le relais en sortie
    pinMode(LEDPIN,OUTPUT);//défini la led en sortie
    digitalWrite(LEDPIN,LOW);//met à 0 la sortie de la led
    Serial.begin(9600);
    Serial.println(« start »);
    }

    void blink(int nb, int temps) // fonction de clignotante pour la led
    {
    for(int i=0;i<nb;i++){
    digitalWrite(LEDPIN,LOW);
    delay(temps);
    digitalWrite(LEDPIN,HIGH);
    delay(temps);
    }
    }

    void listenSignal(){
    sleepNow();
    Serial.println("entré dans la fonction listenSignal");
    receivedSignal.sender=0;
    receivedSignal.receptor=0;
    receivedSignal.isSignal = false;

    int i=0;
    unsigned long t=0;
    byte prevBit=0;
    byte bit=0;

    unsigned long sender=0;
    bool group=false;
    bool on=false;
    unsigned int recipient=0;

    while(t11350){
    t=pulseIn(RECPIN,LOW,1000000);
    }
    Serial.println(« Verrou 1 »);

    while(t2800){
    t=pulseIn(RECPIN,LOW,1000000);
    }
    Serial.println(« Verrou 2 »);
    while(i250 && t1000 && t<1450){
    bit=1;
    }
    else{
    i=0;
    break;
    Serial.println("Bit mort");
    }
    if(i%2==1){
    if((prevBit^bit)==0){
    i=0;
    break;
    }
    if(i<53){
    sender<<=1;
    sender |= prevBit;
    }
    else if(i==53){
    group==prevBit;
    }
    else if(i==55){
    on=prevBit;
    }
    else{
    recipient<<=1;
    recipient |= prevBit;
    }
    }
    prevBit=bit;
    ++i;
    }
    Serial.print("Nombre de bit recu : ");
    Serial.println(i);
    Serial.print("Emmeteur : ");
    Serial.println(sender);
    Serial.print("recepteur : ");
    Serial.println(recipient);
    }

    Bien entendu, les "Serial.print" ne sont la que pour le debug et j'utilise une alim externe +5V pour le recepteur.
    J'avais mis une résistance de pull-up 220 ohm entre le pin digital 2 (int0) et le +5V pour limiter les parasites, ça fonctionne bien.
    Le problème est que la distance de réception s'en est retrouvée considérablement réduite(de 10m à 20cm) donc pas très performant.
    Je me demande si au final c'est trés utile d'utilisé les interruptions et le mode sleep, car pour bien capter je suis obliger de retirer la résistance, donc plus de filtrage des parasites, le µC tourne alors non stop.
    Dois-je continuer sur cette vois ou simplement utiliser ton script ????

    Merci

    Répondre
  114. Scoof

    Salut !

    Super tuto que je vais m’empresser de reproduire dès que j’aurais reçu le matos :)

    Tout est super bien expliqué et détaillé c’est vraiment top.
    j’ai une petite question car j’ai beau googliser comme un fou je ne trouve pas comment faire car je n’y connais pas grand chose pour le moment :

    J’ai dans l’idée d’adapter ce type de système sur des switchs electroniques, comme le switch de ma nespresso ou des boutons physiques du meme type. J’aimerais savoir comment m’y prendre en me basant sur cette technologie. Une piste aiderait bien dans ma démarche et un tuto me rendrait super heureux :D

    Pour l’instant je m’imaginais me baser sur le meme principe mais en programmant l’arduino afin qu’il agisse comme un switch NO (pression d’une demi seconde lorsqu’il reçoit le signal)

    Merci :)

    Répondre
  115. jeremushka

    Salut!
    très bon tuto ! :)
    Je voulais faire un petit essai avec ma carte arduino atmega2560 avant d’acheter quelques composants attiny85 ou atmega328 pour pouvoir jouer un peu avec ce système.
    Cependant, cela ne fonctionne pas! j’ai connecté la sortie du récepteur sur la PIN DIGITAL 2, la LED en PIN DIGITAL 9 et le relais en PIN DIGITAL 10. Modif également de ces PINs dans le code, sans succès.

    Auriez-vous une idée où j’ai effectué une erreur?

    Répondre
  116. SkyRuNNNer

    Tu fais comment pour communiquer entre l’arduino et le raspi par radio ? Sinon ca gère

    Répondre
  117. MLE_67

    Merci pour ce tuto.

    Juste une question : serait-il possible de publier le code Arduino pour contrôler une carte relais 4 canaux avec un seul émetteur / récepteur ?

    Merci d’avance

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »