Raspberry PI ~ 18 : Construire une sonde de température radio pour 7€

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

Faire du on/off c’est bien ! Mais contrôler sa maison en disposant d’indicateurs c’est mieux !

Aussi allons-nous voir, pour changer, comment construire un petit capteur qui va transmettre une information de température par radio au Raspberry PI.

2013-02-24 12.11.39

Si comme moi, vous vous interrogez sur l’intérêt de connaître la température d’une pièce en temps réel, je trouve personnellement qu’il n’y en a aucun, en revanche cela peut être très utile pour le Raspberry PI, qui pourra par exemple en dessous d’une certaine température, enclencher les radiateurs, on appelle ça des scénarios (on en reparlera dans un prochaine tuto) pour le moment, contentons-nous de récupérer l’information via une interface web et via notre interface vocale Yuri.

Avant tout, le traditionnel quart d’heure de honte en vidéo :

(Le charisme d’une truite avec un double menton, un acteur né je vous dis !!)

Le principe

La puce Atmega328 (petit carré noir avec tout plein de pattes) va aller interroger toutes les 3 secondes le capteur DS18B20 (plus petit carré noir à trois pattes, en forme de transistor) afin de récupérer la température de la pièce, puis va envoyer, à travers l’émetteur RF 433 mHz (petit circuit à 3 pattes), l’information au Raspberry PI.

Le Raspberry PI, qui écoute en permanence les ondes radio à travers son récepteur RF 433 mhz, va détecter le signal, récupérer la température et la donner à une page PHP qui va la stocker dans un petit fichier texte (au format json), accessible depuis l’interface web et depuis Yuri.

Sur le serveur web du Rapsberry PI, l’interface va aller récupérer en ajax toutes les 3 secondes la valeur du fichier texte pour chaque sonde radio et l’afficher sur la page.

Le matériel

Notez que si un lien est mort (ce qui arrive souvent car ebay bouge beaucoup), reprenez les mots clés de ces liens dans le moteur de recherche ebay, cherchez avec les filtres « achat immédiat », « Dans le monde entier » et tri par « prix+livraison les moins cher ».

Pour comprendre plus en détails ce qu’est l’Arduino, l’Atmega etc.. se référer au tuto 15, je pars du principe que vous avez lu et compris le tuto 15, histoire de ne pas me répéter 1000 fois Tire la langue

Programmer la puce Atmega

On va faire exactement le même montage que dans le tuto 15, je re-détaille la manip pour les flemmards du fond (oui oui ! vous au fond à côté du radiateur là !!) :

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

Voilà le schéma permettant de programmer une puce Atmega à partir d’une carte Arduino (nb : la résistance est visiblement plus adéquate si elle est de 10 kohms et non de 1.27 ohms comme indiqué sur le schéma)

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 bleues et rouges (utilisées pour l’alimentation) qui eux sont reliés verticalement.

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.

  • Les fils RX et TX sont ceux qui envoient 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.

Enfin sachez que vous pouvez tout aussi bien programmer la puce en la laissant simplement branchée sur la carte arduino et la décrocher juste après, notre montage est à l’heure actuelle inutilement compliqué, mais dans le futur nous en aurons besoin.

Code de l’Atmega

Comme la sonde ds18b20 est particulièrement chiante à utiliser, nous installerons 2 librairies pour nous simplifier la vie (dans l’absolu, il serait peut-être plus intéressant d’utiliser une sonde analogique ou une thermistance, bien plus facile à questionner (retour de 0.1 V par degré).

Donc on va installer la librairie DallasTemperature, qui nous epargne le boulot des 12 000 commandes à envoyer à la sonde pour avoir la température, et OneWire, qui va permettre à l’Atmega de communiquer avec la sonde sur une seule patte.

Pour installer les librairies, rien de plus simple : décompressez ces dossiers dans le dossier librairies de l’IDE Arduino.

On va enfin pouvoir s’occuper de notre code ^^.

Téléchargez le code à “téléverser” dans l’Atmega ici (clic droit + enregistrer sous).

Ouvrez le code téléchargé dans l’IDE Arduino.
Cliquez sur téléverser.

En fonction de la puce Atmega que vous avez, vous serez peut-être obligé de changer le type de carte dans les configurations de l’IDE (cf tuto 15)

Code coté Raspberry PI

Téléchargez l’interface web ici.

Décompressez-la dans le dossier /var/www de votre Raspberry PI.

Pensez a régler les permissions en lecture/écriture dans fichiers comme dans les autres tutos (si vous ne voulez pas vous faire chier, faites le temps des tests:

  1. sudo chown –R www-data:www-data /var/www/hcc2
  2. sudo chmod –R 777 /var/www/hcc2

C’est bourrin question sécurité mais comme beaucoup d’entre vous ont des soucis de ce coté là car les permissions sont mal réglées, au moins on peut éliminer ça Tire la langue, je vous laisse regarder la doc Linux si vous voulez régler les droits de manière plus sécurisée).

Les branchements finaux

Notez que pour le Rapsberry PI comme pour la sonde Arduino, vous devez obligatoirement :

  • utiliser des alimentations externes stables de 5V
  • souder des antiennes (fil conducteur quelquonque) de 17,3cm
  • Eloigner le dispositif de toute source possible de parasites

Sans quoi la portée de votre sonde sera ridicule et les données mal transmises/mal captées (surtout mal captées, car le Raspberry PI alimente très mal les composants externes).

Coté Raspberry PI

Rien de nouveau, on fait comme dans le tuto 10 sauf qu’on alimente le récepteur radio avec une alim externe de préférence (c’est mieux pour la portée et la qualité de la réception) :

  • notez que dans le tuto, nous utilisons la borne wiring pi 7 (cette borne est définie quand nous lançons le programme en tant qu’argument, cf plus bas)
Coté capteur Arduino

Une image vaut mieux qu’un long discours Sourire,

Notez que j’ai oublié sur le schéma, de préciser qu’il faut aussi mettre la résistance 4.7 k ohms entre le pin central du capteur ds18b20 et le + de l’alimentation.

Notez également que je n’utilise pas les mêmes pin sur la photo de début d’article et sur le schéma, ne vous faites pas avaoir et fiez vous uniquement au schéma.

w26nufcy

L’explication du code

Concrètement, on va créer notre propre protocole radio en calquant un peu sur le protocole home easy de Chacon.

On va donc envoyer un signal de 12 bits pour commencer :

  • 7 bits représenteront la valeur de la température
  • 1 bit représentera le signe de la température (température positive ou négative)
  • 4 bits représenteront l’identifiant de la sonde.

On a 7 bits de valeurs, on pourra donc envoyer 2^7 = 128 valeurs possibles pour la température, avec le bit de signe ça nous permet d’envoyer de -128 à 128 degrés, ça devrait le faire, en tout cas, si vous atteignez un jour ces limites, vous vous concentrerez certainement plus sur votre survie que sur la domotique (et les morts n’ont pas accès aux commentaires donc je suis tranquille côté plaintes) :).

On ajoutera deux impulsions avant et une après les données afin d’annoncer l’ouverture et la fermeture du signal d’information.

Coté Raspberry PI
  • Un petit code en C++ qui va écouter les signaux radio et envoyer l’information de température à une page PHP
  • Une page PHP qui va écrire l’info dans un fichier texte (la database de l’interface web, nommée db.json)
  • Un ptit module html/ajax sur l’interface va vérifier régulièrement dans la base pour chaque sonde et afficher la température sur l’interface.
Coté capteur Arduino

Un code en C++ (avec la librairie Arduino) qui va questionner le capteur de température et envoyer le résultat (5 fois toutes les 3 secondes pour une meilleure garantie de réception) au Raspberry PI à travers l’émetteur.

L’utilisation

Brancher la sonde sur une alimentation (5V minimum, éviter le Rapsberry PI comme alimentation)

Sur la console du Rpi, aller dans le dossier hcc2

cd /var/www/hcc2

puis exécuter le programme d’écoute des signaux

./radioReception /var/www/hcc2/action.php 7

Le premier argument “/var/www/hcc2/action.php” est la page php de l’interface à laquelle sera envoyée la température reçue.

Le second argument ”7” est le numéro wiring PI du pin du Raspberry PI sur lequel est branché le récepteur radio.

Sur la console s’affiche alors les réceptions et éventuels ratés (notés FAIL) de réception de la sonde.

Si vous souhaitez modifier le programme C de réception des signaux, les sources sont disponibles dans le fichier “radioReception.cpp”, après modification vous devrez le recompiler en tapant la commande

g++ radioReception.cpp -o radioReception –lwiringPi

Article rédigé par Idleman

270 réflexions au sujet de « Raspberry PI ~ 18 : Construire une sonde de température radio pour 7€ »

  1. Yaug

    Finally ! \o/

    Ravi de voir que tu as pu finaliser ton tutos.
    Au final, tu atteins quel pourcentage de réussite dans tes transmissions ?

    Répondre
    1. Idleman Auteur de l’article

      Entre 90 et 95 à 5m, j’ai multiplié le signal par 5 ça aide pas mal, j’ai pas pu tester sur de plus grandes portées, mon appart étant trop ptit ^^, après avec une alim externe et une antenne 1/2 ça devrait encore améliorer le truc.

      Répondre
      1. David

        Salut, super intéressant ton tuto, ça donne vraiment envie de s’y mettre. Petite question de noob, comment fais-tu pour « multiplier » ton signal par 5 ? et qu’est-ce qu’une antenne « 1/2 » ^^

        Merci de toute tes infos en tout cas

        Répondre
        1. Idleman Auteur de l’article

          Les 1/2 d’onde et 1/4 d’ondes sont des sortes de calcules de dimensions de l’antenne qu’on peut effectuer afin d’augmenter/optimiser la portée du signal, je ne saurait t’en dire plus c’est assez compliqué et je ne comprends pas tout le principe il faut t’adresser aux spécialistes de la radio pour cela :), visiblement ici le 1/4 d’onde c’est 17.3cm (ne me demande pas pourquoi c’est un calcul effectué gentiment par l’un de mes lecteurs)

          Répondre
          1. Futfut

            Bonjour,
            la taille optimale d’une antenne dépend directement de la longueur d’onde du signal émis.
            La fréquence : f = 433 Mhz
            Distance parcourue par le signal : Vsignal = c = 299 792 458 m / s = vitesse de la lumière
            La longueur d’onde et la distance parcourue en une seule ondulation soit :
            L = Vsignal / f
            L = 299 792 458 / 433 000 000
            L = 0,6923613348729792 mètre soit env. 69,24 cm :siffle:

            La longueur optimale de l’antenne est égale à la longueur d’onde, cela permet d’envoyer / recevoir le signal « en entier » et « à pleine puissance ».
            On utilise en général des sous-multiples de la longueur d’onde pour une antenne (rarement un multiple oO ).
            Le sous-multiple le plus efficace est la demi longueur d’onde qui permet d’envoyer « un demi signal » à « pleine puissance » (avec un graphique sinusoïdal c’est très visuel comme truc).
            Donc, dans ce cas, pour un émetteur/récepteur de 433Mhz, les longueurs d’antennes optimales du plus efficace au moins efficace sont :
            1L = 69,24 cm
            1/2 L = 34.62 cm
            1/4 L = 17,31 cm
            1/8 L = … euh là, faut rester coller à l’émetteur hein…ou alors envoyer un max de tension. Xo

            Voilà, vous pouvez utiliser ces dimensions dans tous vos montage avec des fréquences de 433Mhz.

            Cette démonstration est aussi valable pour les émetteur / récepteur radio, il suffit de changer la fréquence dans la formule.

            A+ :p

          2. adelante

            Il n’y a pas qu’ une question de longueur, il faut aussi que les impédances soient adaptées ….

  2. Paul

    Fiiiirst !

    Très très très intéressant ! je vais commander les pièces d’ici peu pour faire pareil

    Répondre
      1. Idleman Auteur de l’article

        Oui, mais c’est dommage, puisque c’est exactement ce qu’on fait mais pour 3€… de plus tu sera quand même obligé de programmer l’atmega et de faire le montage final comme dans le tuto, bref je ne vois pas trop l’intérêt ^^

        Répondre
        1. Paul

          C’est juste pour simplifier la livraison (délais et regroupement des objets) : un bon informaticien est quelqu’un de faignant me disait un de mes profs (pas dans ce sens pas là mais là ça m’arrange… :p)

          Répondre
          1. Idleman Auteur de l’article

            Comme tu veux ^^ mais sur ebay les frais de ports sont quai tous offerts ou ridicules, et concernant les délais ils ont mis max 8 jours :), m’enfin si tu veux juste tester et que tu as les rond fait toi plaisir ^^

  3. Tom

    En commençant la lecture je me suis dit « cool je vais fabriquer un thermomètre pour prendre ma température avec le rasp », puis quand j’ai vu la forme du montage j’ai rangé cette idée au placard :D

    Répondre
    1. Idleman Auteur de l’article

      Ca dépend par ou tu compte mesurer la température XD, cela dit le montage est étendu sur la breadboard pour qu’on y vois clair, mais prototypé sur une pcb c’est pas plus gros que deux doigts :D

      Répondre
    2. Yaug

      Et puis il existe une version étanche de ce capteur, à peine plus cher, qui du coup servira tout à fait si tu souhaites t’en servir de thermomètre :D

      Évite juste de mettre une vidéo de démonstration ! xD

      Répondre
      1. Idleman Auteur de l’article

        Hé hé hé, ça doit picoter quand même, surtout les pattes de l’atmega :D

        Mais Cessez donc avec vos plaisanteries, vous salissez la science bande de dégueulasses ! :D

        Répondre
  4. fafnus

    Encore un super tuto….

    Mais vu les 15° dans ton apart avec ce soleil, tu devrais mettre une petite laine pour ne pas prendre froid et nous concocter les prochains tuto ;)

    Encore bravo et vivement la suite…

    Répondre
    1. Idleman Auteur de l’article

      T’inquiète j’ai le système immunitaire de chuck norris :)

      Répondre
  5. stunko

    As tu vraiment 15° chez toi ??? Ou la sonde n’est pas étalonnée ?

    PS : tes tuto son vraiment au top !

    Répondre
    1. Idleman Auteur de l’article

      Cette sonde n’a pas besoin d’étalonnage :), et oui il fait bien 15° chez moi, nous avons passé tout l’hiver sans chauffage pour des raisons strictement lucratives :)

      Répondre
      1. thomas bourrel

        t’as du te peler les kouilles :D

        Répondre
  6. H3

    « (petit carré noir avec tout plein de pattes) »

    Mouahahaha ! Pauvre petit micro-contôleur… ;)

    Sinon, tu couples ça avec un capteur d’humidité, un capteur de pression atmosphérique, et tu as tout ce qu’il te faut pour faire une super cave à vin…

    Répondre
    1. Idleman Auteur de l’article

      Oaip, encore faut il avoir du vin, (et ça c’est pas low cost XD)

      Répondre
  7. Alexandre Dubois

    Hey pas mal !
    Quelques idées, sur laquelle je me pencherais peut-être, un jour, car je réfléchissais à faire quelque chose du genre :
    – reprendre ton montage et simuler une sonde oregon scientific en utilisant le même protocole :) Offrir cette compatibilité peut permettre d’intégrer ton montage dans des environnements à base de capteurs officiels, ou l’inverse (utiliser des capteurs Oregon avec ton RPi)
    – dropper l’alim secteur pour passer sur des piles/une batterie : c’est quand même ballot de faire un montage radio pour qu’il se ballade avec un fil à la patte ;)
    – plutôt que d’utiliser l’instruction delay(5000), utiliser le système de watchdog intégré à l’atmega pour l’endormir pendant X secondes (le max c’est 8s) : tu économiseras grandement en énergie ! Plus d’infos là : http://donalmorrissey.blogspot.fr/2010/04/sleeping-arduino-part-5-wake-up-via.html

    Voilà, bravo quand même, tu n’arrêtes pas !

    Répondre
    1. Idleman Auteur de l’article

      Concernant les sondes oregon, si je me met a calquer leurs protocoles (en supposant que je trouve la doc inexistante sur le sujet ou que je passe des heures avec mon petit jack a déchiffrer le signal sortant ^^) je suppose qu’une sonde plus performante, d’une marque et d’un protocole différent sortira le lendemain ^^, donc bon je suis moyennement chaud, et puis bon une sonde oregon c’est 25 € si on suppose qu’on à 5 pièces on arrive à 125€ contre 35€ pour la sonde maison (ok ya une meilleure finition sur l’oregon XD)

      Si je dois me calquer sur un protocole un de ces 4, j’en choisirais un libre et bien documenté, donc probablement pas l’illustre inconnus utilisé par oregon :)

      Concernant l’alim c’est à voir, j’ai choisis une prise parce que j’ai horreur de changer les piles (et que je n’ai jamais ces petites bêtes a dipo), je compte branche la sonde direct dans une prise relais (donc pas de fils qui trainent).

      Le système watchdog à l’air sympa mais j’ai la flemme de me taper la doc ^^, t’en avais fait toi pour ton arroseur de plante non? :p, tu viens au lab demain ? *sifflote*

      Merci pour les encouragements :), venant de toi ça fait plaisir :D

      Répondre
        1. Idleman Auteur de l’article

          Non sur le principe je suis assez d’accord ^^, c’est juste que ça demande pas mal de boulot :), en revanche j’ignorais que le protocole était accessible, je regarderais ça :) (jusqu’ici je pensais plutôt me rallier au zwave qui visiblement est maillé et ça ça me plait, j’avais imaginé ça pour mon protocole aussi :p).

          T’en es ou de ta pompe ?

          Répondre
          1. Alexandre Dubois

            Si t’arrives à intégrer ça dans un réseau ZWave je pense que tu intéresseras beaucoup de monde :D Le problème c’est que le protocole est pas hyper ouvert même s’il y a eu déjà pas mal de reverse de fait sur le sujet (cf le projet OpenZwave).

            Pour ma pompe ça fait plusieurs jours que je galère, j’ai du commettre une erreur quelque part. Mon proto fonctionne avec un ventilo mais quand je le remplace par la pompe, celle-ci ne démarre pas… Un problème de courant disponible ? Je ne comprends pas…

            Si je viens au lab ce soir j’amènerai le bazar, peut-être que quelqu’un mettra le doigt sur ce qui déconne…

          2. Idleman Auteur de l’article

            Je chercherais un protocole existant fiable et ouvert, mais si je ne trouve rien de potable tant pis, je développerais d’avantage le RIDLE (mon protocole Radio Idle :p) c’est plus intéressant d’un point de vue pédagogique et on est jamais mieux servis que par sois même :)

            Bizarre pour al pompe, c’est effectivement certainement un pb de jus :), tu n’avais pas fait des tests concluant pourtant avec la pompe? Avec les pointures qu’on à au lab ça serait pas de chance que personne ne puisse te filer un coup de patoune :D

        2. Marco

          Merci beaucoup alexandre pour les liens pour les specs des sondes oregons.
          Justement je trouve qu’elles ne sont pas cher moins de 20 euros la sonde, je vais regarder tout cela :)

          J’arrive à controler les prises chacon avec mon raspberry et open remote mais une sonde serait l’idéale. Car actuellement j’allume et j’eteinds à partir de mon téléphone android mes radiateurs mais le top c’est que tout cela soit gerer tout seul :)

          Répondre
      1. viskor

        J’ai modifier le code de la sonde radio pour y incorporer 1 watchdog => led clignote sur pin 11, 1 watchdog, led sur pin 11 clignote, Watchdog encore puis envois du code.

        grosso modo avant je tournais pendant 6 jours avec 4 piles AA et le code de idleman, normalement avec 24 seconde de watchdog sa ira mieu :) car la puce atmega en idle = 15ma par contre en watchdog c’est 0.35 donc en calculant sur 25 seconde, le code actuel aura consommé 90ma/25 seconde en restant inactif et en watchdog il aura consommer seulement 8.5ma en watchdog soit 10 fois moins.

        Je t’ai envoyé le code par mail idleman :)

        Répondre
        1. viskor

          enfin je me suis tromper 360ma/25 seconde actuellement :)

          Répondre
    2. Scaphandre

      Ne pourrait on pas faire le contraire et interroger la sonde quand le serveur le demande ? Demander une température toutes les 8 secondes est beaucoup trop ėlevé. Il y a un gain de consommation énorme.

      Répondre
      1. Idleman Auteur de l’article

        Tu peux faire ça dans le sens qui te conviens, après ça signifie tout de même que l’ardui doit constamment ecouter les demandes du pi, donc consommation totu de même.

        Le mieux reste encore d’allonger le temps entre chaque émission (j’ai mis sur x secondes pour les tests et le débug mais sinon aucun intérêt que ce soit si rapide) et aussi d’utiliser le watchdog arduino pour faire une sorte de « veille » entre chaque émissions

        Répondre
  8. anonino

    Salut :)

    Super tuto encore une fois.
    Pourrais tu stp détaillé l’alimentation externe 5V ?
    Tu branche le + et – de l’alimentation sur le + et – du récepteur et le port logique du récepteur sur le port gpio du rasp ?

    Répondre
    1. Idleman Auteur de l’article

      C’est presque ça sauf que tu dois aussi relier le – du récepteur au – du raspberry PI afin de fermer le circuit « logique » :), c’est vrai que je devrais le noter quelque part ça, c’est pas forcement évident :)

      Répondre
      1. anonino

        Donc le – du récepteur est à la fois branché au – du rasp et à la fois branché au – de l’alimentation ?

        Répondre
          1. anonino

            Ok :) merci pour ces précisions !!

  9. olivierdrueuil

    Salut,
    perso j’ai opté pour cette solution là : http://nathan.chantrell.net/20130215/tinytx3-wireless-sensor-board/
    du vrai wireless, sans fils et il est possible de mettre l’attiny en mode veille pendant 65s, du coup la consommation des piles est plus que faible. Et au final le montage est très propre puisque les fichiers Eagle CAD pour le PCB sont dispo sur le blog de Nathan. Et le prix est dérisoire : 12euros pour 10 typons .. c’est cadeau j’ai envie de dire. Par contre le RFM12B est plus cher que les récepteurs/émetteurs en 433mhz , environ 6$ mais il fait émetteur et récepteur et il balaye plus de fréquences : 433 868 & 915 Mhz.
    Voilà, un commentaire juste pour relayer de l’information :)

    cordialement,

    Répondre
    1. Alexandre Dubois

      Super intéressant ce lien ! Voici de quoi faire quelques petits capteurs sans-fil pour pas mal d’applications ! Est-ce que tu sais si la veille de 65s est uniquement possible sur l’Attiny ? J’ai besoin d’une fonction similaire sur un atmega mais je n’arrive pas à dépasser 8sec…

      Au final je devrais peut-être tout simplement passer également sur un attiny…ça se programme sans chip FTDI c’est bien ça ? Il faut passer par ArduinoISP ?

      Répondre
      1. Idleman Auteur de l’article

        Oui par ardui isp c’est sensé fonctionner, même si on à grillé mon attiny85 avec bjohn en le tentant ^^

        Répondre
      2. olivierdrueuil

        je ne sais pas pour la veille si elle ne fonctionne que sur les attiny, j’avoue avoir la flemme de me taper les datasheets :d
        tout ce que je sais, c’est que j’ai regardé le code, et hop, on voit ça:
        Sleepy::loseSomeTime(60000); //JeeLabs power save function: enter low power mode for 60 seconds (valid range 16-65000 ms)
        Et oui ca se programme via un arduinoisp, d’ailleurs nathan donne le montage sur son site ;)

        Répondre
    2. ludoarchi

      Salut
      Jm alligne pour un montage avec Rasp équipé d un rfm12 pi et des sensors tinytx comme toi. J ai quelques questions pour toi.
      Quel IHM utilise tu?
      Quels sensors utilises tu?
      Fais tu juste du monitoring?
      Je voudrais commamder des prise a distance et utiliser l IHM d Idleman …
      Merci @+

      Répondre
  10. zdudz

    Salut,
    Super site plein d’infos sa donne pas mal d’idées mais j’ai un petit problème avec ton code je l’ai vite regarder et j’ai l’impression que tu utilise pas la fonction scheduler_realtime(); donc tu fais boucler ton Pi sur la réception ?
    Tu pourrais pas utiliser les fonctions alarm et sigalarm ?

    Répondre
    1. Idleman Auteur de l’article

      Sur ce code la je ne l’utilise pas, je l’ai laissé au cas ou les utilisateurs aient un pb de réception, histoire d’augmenter un peu la rapidité du rpi, mais bon l’utilisation en est déconseillé parce qu’après le rpi tourne à plein régime, normalement avec une bonne alim et une bonne antenne on peux se passer de ce simulateur de temps réel (chez moi ça le fait en tout cas).

      Je ne connais pas les fonctions alarm et signalarm :)

      Répondre
      1. zdudz

        J’avoue que c’est super compliquer le temps réel. Une solution ace serait un attiny qui gere un compteur de X seconde et leve un flag d’interruption sur une broche du pi pour ensuite gerer l’emission/reception de la sonde de température.
        Avec sa pas besoin de boucler mais sa rajoute des composant :(.

        Répondre
        1. Idleman Auteur de l’article

          J’avais pensé, dans le même esprits, à me bricoler une carte de transition à base d’atmega (plus facile à programmer qu’un attiny), faudrait que je m’y mette mais j’ai pas beaucoup de temps en ce moment :)

          Répondre
    1. Idleman Auteur de l’article

      Sympa :), ça me dis bien de tenter un tuto la dessus :D, faut juste que je vois si j’ai un compteur électrique quelque part dans ma résidence :D.

      nb : Pense a mettre les commentaires qui n’ont pas de lien direct avec le tuto sur le sommaire, sinon ça peux porter à confusion pour les utilisateurs qui passent par la :)

      Répondre
  11. Philsmile

    Excellent tutorial, c’est parfaitement ce que je cherchais. Là je suis en train de commander le matériel nécessaire. Pourrais-tu donner un lien pour acheter des résistances 1.27Ω (brun rouge violet gris rouge)? C’est la seule chose qui me manque et sur eBay je suis un peu perdu avec toutes les offres !

    Répondre
    1. Idleman Auteur de l’article

      Visiblement les résistances de 10k ohms sont plus adéquates, tu peut en trouver la ou ici

      Répondre
      1. Philsmile

        Merci, j’avais un doute pour les 10k ohms (vu dans l’un de tes précédents tuto).

        Il y a différents points que j’aimerais bien approfondir :
        – pour l’alimentation, qu’est ce que tu conseilles comme piles ? cela serait-il possible avec certaine piles boutons ?
        – serait-il simple d’envoyer également l’état des piles afin de savoir quand il faudrait les changer ?
        – à ton avis, on peut gérer combien de sondes en même temps ?

        Tes différents tutoriaux m’ont énormément éclairé, un GRAND merci !!!!

        Répondre
        1. Idleman Auteur de l’article

          – C’est possible avec toutes sortes de piles, tant que tu alimente minimum en 5v, en revanche je ne suis pas trop pour les piles, je prefere les transformateurs type chargeur de portable, ça évite de changer le truc tout les 4 matins :), d’autant que le code ne se met pas en veille et envoie un signal toutes les 3 secondes donc ça doit pomper (après tu peux le régler sur 2 ou 3 min et implémenter la veille normalement c’est pas trop complexe).

          – Pour mesurer l’état de la pile il te faudra modifier le montage et le code ainsi que le protocole, concernant le montage il y a un excellent tutos sur le sujet chez skyduino (pense que l’arduino est remplacé chez nous par l’atmega mais que c’est la même chose)

          – Avec mon code actuel, on peux en gérer 16, car j’ai laissé 4 bits pour l’identifiant de la sonde, j’aurais pu en mettre plus, mais 16 ça me parait déja pas mal et plus on transmet de bit a travers la radio, moins le signal est stable. Note bien que si tu veux utiliser plusieurs sonde tu doit penser a changer le code de 4 bit d ela sonde qui est ecrit en dur dans le programme, pour le moment c’est 1010 (donc 10 en décimal)

          Répondre
  12. Nomis

    Hello,
    Vraiment excellent tes tutos !
    As tu pu voir pour remplacer le ATMega328 par un ATtiny85 ?

    Répondre
    1. Idleman Auteur de l’article

      Pas encore non ^^, j’ai grillé mon seul attiny faudrait que j’en recommande mais je suis un peu à la dèche en ce moment faut que je me calme sur les composants

      Répondre
      1. Yargol

        Déjà, un GRAND merci a Idleman pour ses tutos. Et pour répondre a Nomis, j’ai fais le montage sur un ATTiny 85 sans problème ;-)

        Répondre
  13. Christophe

    Hello,

    Au vu de ce que tu apprends à chacun, je ne suis pas contre te verser quelques centimes d’euros ;)
    Tu as un compte Paypal ?

    Oui je sais que tu ne fais pas l’aumône, c’est une façon de te dire merci :)

    Répondre
    1. Idleman Auteur de l’article

      C’est gentil et ça fait plaisir d’avoir quelques visiteurs généreux :), j’ai un compte paypal mais je ne sais pas du tout m’en servir ^^, en revanche j’ai mis en place un bouton flattr en haut à droite du blog (dont je ne sait pas trop me servir non plus mais bon parait qu’il y a rien à faire XD) tu souhaite me payer une bière (ou plus vraisemblablement un nouveau composant a torturer :p)

      Répondre
      1. Christophe

        Bonjour,

        Ton compte Paypal, c’est facile il suffit de me donner l’adresse mail de ton compte Paypal, on te donne de l’argent avec et ensuite pour payer tu l’utilises genre sur Ebay ;)

        Répondre
        1. Idleman Auteur de l’article

          Je crois qu’avec flattr tu peux payer en paypal (ça m’arrangerais parce qu’avec flattr je peux faire plein de trucs comme envoyer des remerciements au donateurs, savoir combien de don j’ai par mois, réutiliser un donc pour un site ou projet que je veux soutenir etc…)

          Répondre
          1. Christophe

            Il est où ce bouton ?

          2. Christophe

            Ah oui d’accord, périmètre vert et écris en blanc : pas trop visible :)

          3. Idleman Auteur de l’article

            hé hé hé oui c’est vrai que sous chrome et autres le dégradé foire, faut que je corrige ça, merci pour le rappel :)

      2. Christophe

        Voilà plus d’excuse, tu peux t’acheter un Attiny ;)

        Répondre
        1. Idleman Auteur de l’article

          Yeah ! merci beaucoup :), jvais commander ça de ce pas alors :p

          Répondre
          1. Christophe

            :)

          2. Alexandre

            trop cool Christophe !

  14. palexis06

    Salut a tous ;) j’aurais besoin de votre aide pour mon projet car je plante complet :/ donc si vous pouvez m’aider sa serait franchement super ;)

    Lien vers mon projet : http://www.raspberrypi.org/phpBB3/viewtopic.php?f=65&t=36808

    Merci d’avance pour votre aide :)

    Au faite dsl pour le hors sujet mais je savais pas ou poster, Idleman avec les super tutos que tu nous fait tu devrais créer un foru

    Répondre
    1. Idleman Auteur de l’article

      Ton lien semble mort :)

      Je pense qu’un forum n’attirerais pas grand monde ^^, mais je retiens l’idée :p

      Répondre
      1. Palexis06

        Slt bizarre que lien soit mort il marche chez moi :) mais tiens je te le remet : http://goo.gl/VdV7A
        Encore merci pour ton aide ;)

        Répondre
        1. Idleman Auteur de l’article

          C’est peut être mon navigateur, comme j’ai un ip poisoning je me fait parfois dégager, vue le loin comme ça ton poste radio fait assez peur :), je ne pense pas pouvoir te conseiller la dessus mais voila la marche que je suivrais si j’étais toi (c’est du moins le raisonnement suivis pour l’écran de recul tuto 17) :
          1) Définir l’utilité générale de chaque carte de composant que tu a extraite de ta radio
          2) Tenter de trouver sur la doc internet le type d’entrée vidéo de l’écran (rca…)
          3) tente de trouver les entrées vidéos de ton écran au plus proche de celui ci (tu dois certainement pouvoir te débarrasser des autres blocs qui ne servent qu’au traitement)
          4) Tente une connexion des câbles vidéo au rpi en prenant évidemment en compte les sorties du rpi (rca, hdmi, gpio…), le type d’entrée de ton ecran, et l’alimentation qu’il nécessite (si c’est branché sur une voiture, il y a de grandes chances que ce soit du 12 v continue, mais on peux parfois l’alimenter avec moins genre du 9v, a tester)

          Une fois ce jalon passé, tu pourra commencer a chercher la partie tactile

          Répondre
  15. Christophe

    Bonjour,

    Je ne suis pas connaisseur mais vu le datasheet de ton écran il va te falloir une passerelle entre ton écran et la raspberry. Ton écran est un écran RGB, il lui faut des données pour les trois couleurs (RGB). A mon avis tu dois avoir une partie électronique quoi doit gérer ça sur les cartes électroniques de l’autoradio, comme un peu une carte vidéo sur ton pc.

    Tu as pas trouvé des exemples de montage avec cet écran ?

    Répondre
  16. Steph

    Bonjour,
    Je travaille depuis quelques temps sur un projet similaire avec un raspberry PI en serveur , et des capteurs autour qui lui enverrai les données temperatures, humidité, etc…

    J’ai utilisé les mêmes emetteurs pas chers en 433MHZ vendus sur ebay, sur un autre projet..
    et j’ai un peu déchanté de leur peu de fiabilité, et de leur sensibilité aux perturbations…

    Parfois juste d’etre assis devant l’émetteur le signal ne passait plus…

    Aussi je me suis orienté vers les petits modules NRF24L01 vendus aussi sur ebay..
    on les trouve à 1,20 euros pièces.. dans les deux euros les deux donc…
    Il sont en 2,4GHZ, et consomment même moins que les modules 433MHZ, ils ont des fonctions de sleep mode, et power down mode qui abaissent la consommation à quelques micro ou nano ampères…bref…voila..
    Il existe des librairies arduino pour les implémenter simplement…

    Pourquoi n’utilisez vous pas l’oscillateur interne à 8MHZ de l’atmega328 pour economiser encore un peu de composants?

    Pour ma part je me suis inspiré de la stratégie d’économie d’énergie de ce projet..
    http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/

    pour mon atmega168 sur oscillateur interne à 8MHZ.. je tourne à quelques micro ampères de consommation..et je prends une mesure par minute sur un DS1820…
    Tout cela pour alimenter les capteurs sur une pile bouton CR2032…

    voila quoi..
    Sinon merci pour ce blog, qui est passionnant.. ..
    salutations..

    Répondre
    1. Idleman Auteur de l’article

      Avec une bonne alim et une antenne correct je trouve qu’ils tiennent pas mal le coup moi :), mais bon c’est certain qu’on peux trouver mieux :p

      Sympa les NRF24L01 je regarderais, après qui dit plus haute fréquence dit plus de rapidité de transmission mais moins de portée (en théorie, il y a toujours des exception) pour de la domotique ou les informations transmises sont simples, mais ou la portée est importante, le 433 semble un peu plus approprié.

      De plus comme beaucoup de matériaux résidentiels (store électriques, portes de garages etc..) sont en 433, il peut être utile de rester sur la même fréquence pour les commander aussi

      Je n’ai pas encore fait les tests avec l’horloge interne, mais j’avait peur que ce soit un peu faiblard pour de la transmission radio (peur injustifié puisque tu semble l’avoir fait sans problèmes constatés), et un oscillo à 10 cts d’euros nous met à l’abris d’une oscillation trop basse, ainsi que d’une prise de tête avec le bootloader de l’atmega que l’on doit modifier si l’on souhaite utiliser l’horloge interne.

      Après sur le long terme il y a aussi le fait que je compte utiliser l’attiny85 donc je ne creuse pas trop l’atmega en profondeur :)

      Ya pas de quoi pour le blog, pour moi ce sont les commentaires qui sont une véritable source d’inspiration, chacun y trouve son compte :)

      Répondre
      1. Steph

        Pour ce qui est de la portée des nrf24l01 , dans les versions avec antenne dessinée sur le PCB, elle est de quelques dizaine de mètre à 100m, c’est vague je sais :).. à noter qu’il existe une version avec antenne extérieure des nrf24l01 un chouyou plus chère … avec un connecteur rp-sma je crois.. version qui permet de multiplier la portée…

        Pour le prix sur ebay on peut trouver ça par exemple:
        http://www.ebay.fr/itm/2pcs-2-4GHz-NRF24L01-Antenna-Wireless-Transceiver-Module-For-Microcontrol-/370777303413?pt=LH_DefaultDomain_0&hash=item56540ca975

        deux modules nrf24l01, à 2euros port compris..ou alors un module pour 1.08 euro..

        sachant que chaque module est émetteur et récepteur à la fois bien sur…

        pour ma part j’ai longtemps étudié toutes les possibilités pour le wireless de mes modules capteurs… les modules en 433mhz, le bluetooth, xrf (que j’utilise par contre pour un robot que j’ai fait , à cause de sa grande portée), zigbee (xbee), les nrf24l01, et d’autres encore dont j’ai oublié le nom :)

        Mes critères étaient, une consommation réduite, avec la possibilité de passer en sleep mode, ou power down mode, afin de maximiser la durée des batteries, et une portée correcte (disons au moins 50mètres), le prix bien sur étant un bidouilleur pauvre, (le zigbee coutait un bras par exemple), et la simplicité d’implémentation…
        J’ai potassé les différents datasheets pour comparer les consommations, les possibilités de sleep mode variés et divers…

        et après computation intense j’ai choisi les nrf24l01, car c’est ceux qui consomment le moins, sont le moins cher, l’imprécision de l’oscillateur interne 8mhz de l’atmega ne pose pas de problèmes, car ce sont les modules nrf24l01 qui gèrent les transmissions et le protocole de bas niveaux…
        on communique avec eux via un bus spi, en leur envoyant les packets à expédier…les librairies existent déjà pour arduino en plus…

        Ceci dit pour l’imprécision de l’oscillateur interne des atméga, il est compensé par une valeur de calibrage écrite en usine dans la mémoire du microcontroller à l’address 3FFh …

        Et les résonnateurs céramiques tel que vous utilisez dans vos montages souffrent d’instabilités de fréquences chronique…
        Donc l’oscillateur interne me parait la meilleure option pour la réduction de cout et espace sur le circuit..

        les entrées des nrf24l01 sont tolérantes 5V, donc pas besoin de level shifter pour les utiliser avec un arduino…ceci dit je travaille avec une cr2032 donc 3V…

        En alim ils acceptent de 1,9V à 3,6V donc idéal pour les alimenter sur batterie.
        Au niveau vitesse il existe trois vitesse standard, 250kb/s 1Mb/s et 2Mb/s,
        la vitesse 250kbs offre le plus de sensibilité, et offre une meilleure portée jusqu’a 100M d’après le datasheet avec l’antenne intégré…
        et 250kbs me suffisent largement pour transmette une valeur de température toutes les minutes…

        Pour ce qui est de la consommation, le maximum est environ une dizaine de milliampère lors de l’émission (11ma il me semble), pendant quelques microsecondes, puis passage en mode idle à 32ua ou carrément power down mode avec seulement 400nanoAmpère de consommation…difficile de faire moins…
        et dans mon cas ils restent en power down pendant une minute…donc autant qu’ils ne consomment rien…

        Moi aussi je compte passer à l’attiny85 , j’en ai deux qui attendent.. Je finis d’abord de peaufiner ma version avec atmega168 en barebone…après je verrai à passer sur tiny, pour la réduction de taille…

        Si vous galérer pour le passage à l’atmega168 ou 328 en oscillateur interne..
        moi je programme les miens sans bootloader, avec un arduino diecimilla utilisé en AVRISP.. il faut juste programmer les fuses du atmega168 avec avrdude en ligne de commange, car la GUI de l’arduino, ne programme pas les fuses apparemment ..ou alors je m’y prend mal :)

        d’origine mes atmega168 étaient livrés en oscillateur interne à 1mHZ…

        voila… une éclaircissement sur les nrf24l01 pour ceux que ça interesse :)

        salutations..

        Répondre
        1. Yaya

          Comme indiqué dans d’autres commentaires, Steph, nous serions tous tres interressés par + d’informations sur tes montages…
          Un site/blog comme l’indique Kilou serait super.

          Répondre
  17. Kilou

    Salut Steph,

    Ton montage à base de NRF24L01 et de basse consommation m’intéresse, surtout que mon but est de faire des capteurs sans fil. Tu aurais un tuto sous la main ? ou encore mieux un site/blog ? ^^

    Merci ;)

    Répondre
    1. Steph

      Salut tout le monde,

      non je n’ai pas de site ni blog, et j’avoue que je suis une bille en programmation HTML…

      ça prend du temps de réaliser un site…
      et je suis toujours sur 10 projets en même temps…alors….

      Je vais essayer de mettre en place quelque chose de basique , pour partager mon code et les réalisations que j’ai faite…

      Pour ce qui est du montage à base de atmega168, nrf24l01 , et ds1820 donc…
      toutes les infos nécessaires sont déjà dispo sur le net…

      Pour les modes de basse consommation de l’atméga168 ou 328..

      http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/

      http://www.sparkfun.com/tutorials/309

      http://www.surprisingedge.com/low-power-atmegatiny-with-watchdog-timer/

      le dernier reprend pas mal d’infos des deux premiers…

      Ce sont les sites qui m’ont le plus aidé pour les modes d’économies d’énergie de l’atmega…

      pour les ds1820 et autres capteur de températures les librairies sont déjà écrites pour l’arduino…

      pareil pour le nrf24l01.. une librairie arduino est déjà dispo..

      Pour les modes d’énergie du nrf24L01 tout est dans la datasheet..

      donc en même temps mon montage n’apporte rien de nouveau… tout est dans ces liens..

      en ce moment mon dernier projet, une radio commandé vocalement en utilisant la reconnaissance vocale google..
      ça marche bien..faut juste que je nettoie le code..

      j’ai trouvé ce petit script dans un forum, il enregistre 3 secondes d’audio via la carte audio, converti en flac, et envoie le fichier à google speech, qui renvoie les mots en ascii de la reconnaissance vocale…
      et ça marche plutot bien, pour peut qu’on règle bien le niveau d’enregistrement…
      et en différentes langues en plus.. là j’ai mis le script pour le français…

      arecord -D plughw:1,0 -f cd -t wav -d 3 -r 16000 | flac – -f –best –sample-rate 16000 -o out.flac; wget -O – -o /dev/null –post-file out.flac –header= »Content-Type: audio/x-flac; rate=16000″ http://www.google.com/speech-api/v1/recognize?lang=fr | sed -e ‘s/[{}]/ »/g’| awk -v k= »text » ‘{n=split($0,a, », »); for (i=1; i<=n; i++) print a[i]; exit }' | awk -F: 'NR==3 { print $3; exit }'

      suffit de parser, la sortie, pour avoir des commandes simples avec un script…

      un petit routeur wifi hackable sous openwrt…
      et c'est parti..

      voila un bel hors sujet :)
      mais ça peut donner des idées..

      salutations à tous…

      Répondre
      1. Idleman Auteur de l’article

        Note que si tu souhaite poster un article la dessus sur l’idleblog c’est avec plaisir que je t’ouvrirais un compte éditeur temporaire, ça permettrais de grouper les infos, de t’éviter à créer un blog et de rester dans le sujet :)

        Répondre
      2. Kilou

        Merci pour les liens, je me pencherai dessus dès que j’aurai reçu mon arduino (sont long ces chinois ^^).

        C’est marrant que tu parles de ton projet de « radio vocale », j’ai justement dans l’idée de faire la même chose pour ma salle de bain, car ma femme veut écouter la radio ^^ Mais ce n’est encore qu’au statut de projet…

        Répondre
        1. Steph

          Humm…
          moi aussi c’est ma femme qui veut écouter la radio sous la douche :)
          Décidemment…

          Sinon teste le script que j’ai donné.. il fonctionne étonemment bien.. j’ai installé une iomega iconnect sous debian, derrière ma douche, avec des hauts parleurs USB, connecté via le wifi au net… pou r l’instant je streame la radio, et commande via ssh…
          Faut juste que je résolve l’équation commande vocale + bruit de la douche et de la musique + interrupteur ou systeme de commande pour faire silence le temps de donner un ordre vocal…
          un truc comme ça quoi…

          Répondre
          1. Idleman Auteur de l’article

            En même temps pour écouter la radio sous la douche pas besoin de domotique si ? :D

            En tout cas moi je lance la musique avant d’aller me doucher ça marche bien aussi :p

      3. krupt

        Salut,
        ca serait vraiment cool d avoir plus d info sur ta radio web à commande vocale.
        Ca a l air chouette et j aimerais bien faire la meme chose :)

        Répondre
  18. Thomas L. (@ookook)

    Hello,

    Merci pour l’article, très intéressant.

    Juste une question: je ne comprends pas pourquoi tu utilises un atmega328 « séparé » au lieu de celui intégré à l’arduino… Tu peux éclairer ma lanterne?

    Merci.

    Répondre
    1. Idleman Auteur de l’article

      Parce qu’un atmega seul coûte 3€, quand une carte ardui en coûte minimum 16, parce qu’un atmega tiens sur le pouce et un arduino tiens dans la paume et aussi et surtout « parce que je le vaut bien © » :D

      Plus sérieusement, une carte arduino n’est rien de plus qu’un atmega avec une base pour faciliter sa programmation, donc une fois qu’on à la carte de programmation, on achète uniquement des atmega seuls et on se sert de la carte ardui uniquement pour les programmer, ça réduit très fortement les couts et la taille du micro contrôleur :)

      Répondre
  19. Hexalyse

    Juste un petit message pour dire que le lien eBay pour le détecteur de température est mort. Enfin, pas mort, mais il me renvoie sur un texte disant que « l’accès à cet objet a été bloqué en raison de restrictions légales en vigueur dans certains pays. Conformément à ces restrictions [blah blah blah] »

    Je me demandais aussi : pourquoi utilise-tu un Atmega dans tous tes montages, alors que tu n’utilises que très peu des ports offerts ? Perso j’ai fait quelques essais avec un ATTiny85 et ça fonctionne bien. Ca coute un peu moins cher, et je trouve que le montage pour les programmer avec une carte Arduino est bien plus simple : http://hlt.media.mit.edu/?p=1695 et http://hlt.media.mit.edu/?p=1706 , tout est là !

    Dans tous les cas, merci pour l’idée, j’avais jamais pensé à utiliser ces capteurs pour en faire un thermostat pour le chauffage. Moi qui n’en ai pas dans mon appart, j’vais sûrement m’inspirer de tout ça, simplifier un peu le bouzin, et me faire un truc « utile » :)

    PS: désolé pour mon silence depuis mon premier message où l’on avait parlé de la possibilité de s’associer pour poster sur ton blog, plutôt que de multiplier les blogs. Mais depuis j’ai un peu lâché le Raspberry Pi, et me suis… moi aussi mis à Arduino et à m’amuser avec des récepteurs/émetteurs RF 434MHz ! Décidément, on a les même occupations inutilement indispensables :)

    Répondre
    1. Idleman Auteur de l’article

      Le lien est changé merci (fais chier ebay avec ce message je passe mon temps a changer les liens T_T)

      J’utilise l’atmega en lieu et place de l’attiny pour plusieurs raisons, la première étant que le seul attiny que j’avais était grillé (attiny85 de moindre qualité) la seconde étant que dans un but pédagogique je veux sensibiliser les utilisateurs à l’approche de la programmation de micro contrôleurs de la manière la plus simple possible, l’attiny étant un peu plus chiant a relier au code de l’ardui, j’ai préféré des puces atemga avec un bootloader pré enregistré, après je pose les bases, libres à chacun de progresser par la suite.

      Si le prix était vraiment changeant j’aurais placé un attiny dans mon tuto, mais pour quelques centimes je préfère épargner les lecteurs les moins expérimentés dans la programmation de micro contrôleurs :).

      Répondre
      1. Hexalyse

        Ah ouais, l’ATTiny est plus chiant à programmer ? Pas trop fait gaffe, enfin pour l’instant j’ai juste balancé du code assez simpliste dessus. Mais c’est vrai que certaines librairies ne sont pas compatibles, donc ça peut poser problème !
        Le seul truc qui me dérangeait dans ton circuit c’est la nécessité du résonateur, le montage complexe pour programmer l’Atmega, la place prise, etc. Mais comme tu le dis, si ça permet de pas se taper les problèmes d’incompatibilité de code, alors ça en vaut la chandelle :)

        PS: j’ai lu dans un article précédent que tu pensais porter le code de « réception » sur Arduino plutôt que de le faire sur le RPi. Tu as réussi à avancer de ce côté là ?
        (J’avouerais que dans mes bidouillages radio, autant j’ai aucun problème pour l’envoi, autant pour la réception et le décodage automatique, c’est plus complexe. Entre les interrupts, la façon pour calculer la durée d’une pulse, savoir où on en est dans la trame reçue etc. je galère un poil. J’ai tenté de m’inspirer de codes déjà existants [ex. réception de stations météo, librairies d’envoi de message], mais chaque code utilise sa propre façon de faire, parfois vraiment différente.
        Au final je sens que je vais faire ça à la « bourrino », j’avance tête baissée et je debug au fur et à mesure xD

        Répondre
        1. Idleman Auteur de l’article

          on peux se passer du résonateur et passer par l’horloge interne de l’atmega, mais elle ne fait que 8 mhz (au lieu des 16 du résonateur) j’ai peur que ce soit un peu bas pour faire de la radio (à tester, j’ai entendu dire que ça fonctionnait tout de même) et il faut modifier le bootloader si tu veux faire ça, donc c’est vrai que pour quelques centimes et trois fils en plus, je préfère rester sur un résonateur fiable et ne pas me prendre la tête avec ça :)

          Pour la carte de transition non je n’ai pas trop avancé, j’ai peu de temps pour l’électronique en ce moment, la fermeture de google reader ayant eu beaucoup d’impact sur l’un de mes autres projets (leed)

          La bourrino ça marche pas mal :D

          Répondre
          1. Steph

            Salut tout le monde.

            Je touche à la fin du développement, de mon proto atmega168 sur oscillateur interne à 8mhz, avec 1 module nrf24l01+ sur batterie pile bouton CR2032.. + capteur température DS1820

            ça marche super bien, je dois finir de paufiner le code, pour le mode maximum d’économie d’énergie..

            peut-etre je testerai aussi de descendre la vitesse du processeur à 1MHZ (oscill interne), pour économiser encore de l’énergie, faut juste que je vois si la librairie DallasTemperature de l’arduino, aura toujours des timings correct à 1Mhz…

            ensuite je dois encore réaliser un premier proto en dehors du protoboard..soudé quoi… pas avec des fils qui sortent partout :)

            J’ai fait des tests de portée ces jours ci avec le nrf24l01 j’obtiens des résultats étonamments bon, vu que j’ai la version la moins chère avec antenne intégrée sur le circuit…

            J’obtiens environ 60mètre à 70 mètres je dirais sans obstacle.. et une trentaine de mètre à travers un mur … je peux passer un mur, voir deux..d’une pièce à l’autre…

            bon c’est des tests à l’arrache, mais ça donne une idée…

            et encore je suis en mode 1MBit/s , en théorie le mode 250kb/s à plus de portée… je testerai..

            Je pense que d’ici quelques jours, je pourrai avoir un premier proto présentable..

            donc ma question était…

            Tu m’as proposé de m’ouvrir un compte éditeur pour publier mes résultats sur ton blog?

            comment que ça se passe donc ?
            Avec quel logiciel? ou alors on peut utiliser des outils webs..? bref… voila…

            ou alors je publie tout ça sous forme d’une page web basique, et je t’envoie l’archive de la page web ? que t’insère quelque part ?…

            voila , je t’envoie une photos ou deux du proto, et des tests de portée… sur ton mail..

            salutations..

          2. Idleman Auteur de l’article

            Yeah mais c’est parfait tout ça ^^

            Pour le compte éditeur, ça te donne accès au panel admin du blog en tant qu’éditeur (donc tu peux juste créer des articles sans modifier le reste) tu peux écrire l’article directe depuis l’éditeur du panel admin c’est encore le plus simple et l’outil est assez bien fait.

            Si tu trouve plus simple de mettre ça au format page web (ce que je conçoit) je me chargerais de la transcrire en post du blog ya pas de soucis :)

  20. zdudz

    Salut pour revenir au sujet, après avoir découvert ce blog et ayant quelques compétence info et électronique.
    Perso mon but premier etant de faire des contact+ wattmètre j’avance dans ce sans mais je me suis rendu compte qu’il fallait un emetteur+recepteur pour envoyer l’info du wattmètre :

    Donc oui forcement choix du transceiver mais HF ou pas?
    Et bien pour l’instant non car j’ai peur pour la porté.
    Donc je me rabat sur ce modèle :
    http://dx.com/p/diy-cc1101-433mhz-wireless-transceiver-module-for-arduino-green-2-pcs-149251

    9.23e fdp compris pour 2 c’est pas trop chère a mon gout.

    Ce modèle existe : http://dx.com/p/nrf24l01-2-4ghz-wireless-transceiver-module-black-149483

    Mais bon on sais déjà que c’est assez galère de capter du wifi (2.4Ghz) depuis notre pc, j’imagine même pas des petit composant chinois comme sa.
    De plus j’ai étudier cette bande de fréquence et a la moindre perturbation ( mur métalique) c’est cuit.

    Répondre
    1. Idleman Auteur de l’article

      Merci pour le retour, tiens moi au courant pour le CC1101 433MHz, je suis en train de tester différents kits avec yaug voir si on peux trouver un meilleur rapport qualité/prix que ceux que je proposent (qui sont peu cher mais pas top question portée) :)

      Répondre
      1. zdudz

        Ouep pas de soucis, j’attend leur livraison ;p sa a l’air assez chaud a configurer mais y’a pas mal de bout de code qui traîne donc sa devrait le faire. J’éspère juste avoir le temps de taffer ce projet, j’ai de la chance mon prof d’electronique m’aide pour le wattmètre ^^.
        Pour les emetteur/recepteur d’ebay c’est clair que question portée peut mieux faire je dépasse pas 1M avec une alim et une antenne de 17.3 cm sur les 2 :(.
        j’etait partis sur les pic au debut mais faute de librairie je vais aller sur les AVR pour avoir les librairie d’arduino.

        Répondre
      2. Sam

        Hello, des news concernant la cc1101 + Rpi ? Question portée et fiabilité/stabilité. Merci.

        Répondre
  21. xavier

    Bonjour,
    je trouve tes articles vraiment passionnants, tes explications sont super claires et donnent envies d’aller plus loin avec le raspberry en utilisant les ATMEGA 328.
    je souhaite acheter une Carte Arduino duemilanove, elle est bien à 15 €, mais les frais de port c’est 14€ quand même. Je ne sais pas si quelqu’un aurait un autre site avec des frais de port moins élevé.
    merci

    Répondre
    1. Idleman Auteur de l’article

      ahah effectivement c’est le même en rouge avec un nom imprononcable ^^ pas mal merci pour le tuyau !

      Répondre
        1. edertef

          ça a l’air interessant, en particulier quand on voit les autres objets en vente !

          ça vaut quoi comme matériel? c’est fiable ?

          Répondre
          1. Idleman Auteur de l’article

            Pour un appart en carton patte oui (tant que les alims et les antennes sont bien la), pour une maison avec de gros murs je choisirais la gamme au dessus car il faut reconnaitre que la qualité du signal reste moyenne :)

          2. Kilou

            Si tu parles de la Duemilanove, oui elle est fiable puisque d’origine. Elle est juste moins chère car plus commercialisée ;)

  22. Steph

    Mon prototype de atmega128 sur oscillateur interne à 8mhz, plus nrf24L01 et ds1820 est pret, j’ai optimisé le code, si y en a que ça interesse je peux leur envoyer le code..

    Je suis à 6,2 microAmpère de consommation, avec le nrf24l01 en mode power down (900nA) , le DS1820 (entre 750 et 1000nA en standby), et donc environ 4microAmpère pour l’atmega168 qui passe son temps en power down mode lui aussi, je le réveille toutes les minutes pour transmettre une valeur de température (une pointe à 13mA pendant quelques millisecondes, puis il se rendort 1 minute…. voila quoi…

    voila ça devrait me laisser de plusieurs années d’après mes calculs sur une pile cr2032…

    Par contre j’ai un problème, la datasheets du ds1820 donne entre 3V et 5,5V de voltage…la pile cr2032 que j’utilise debite 3.2V neuve…mais le voltage va rapidement baisser..aussi j’ai peur que le ds1820, ne fonctionne plus assez rapidement..
    d’après des tests que j’ai lu le atmega168 à 8mhz peut descendre jusqu’a environ 2V (1.9V environ) et rester stable… voire moins pour la version atmega168V (low voltage)…

    deux solutions soit utiliser une pile de voltage supérieur, soit trouver un remplaçant au ds1820 qui fonctionne jusqu’a 1,5V disons..ou 2V…

    donc je cherche un remplacement pour le ds1820.. peut-etre un thermistor, qui lui peut fonctionner à n’importe quel voltage, c’est une resistance qui varie suivant la chaleur..la précision pour un thermistor à 1%, est d’environ 0.1C donc ça va bien… ça se mersure à l’ADC la valeur donc…sachant que le voltage d’alimentation va varier au fur à mesure de l’usure de la pile…

    voila mon problème si quelqu’un à une solution… un composant pas cher pour mesurer la température qui descend disons jusqu’a 1,5V ça serait parfait…

    Sinon j’ai trouvé ceci que je partage avec vous, c’est une routine pour mesurer précisément la tension d’alimentation VCC d’un atmega168 ou atmega328 en utilisant la tension de référence interne de 1.1V…
    très pratique , ça permet de mesurer l’usure de la batterie qui aliment le atmega par exemple…
    j’ai testé cette routine, et vérifié les mesures au multimètre , ça marche impeccable..précis au mV près..

    long readVcc() {
    long result;
    // Read 1.1V reference against AVcc
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
    delay(2); // Wait for Vref to settle
    ADCSRA |= _BV(ADSC); // Convert
    while (bit_is_set(ADCSRA,ADSC));
    result = ADCL;
    result |= ADCH<<8;
    result = 1125300L / result;
    // Back-calculate AVcc in mV
    return result;
    }

    salutations à tous…

    Répondre
    1. Kilou

      Comme je te l’ai déjà dit, je suis intéressé par ton projet et puisque tu le demandes, je veux bien tester ton code ^^ (d’ailleurs faudra que je l’adapte car j’utilise un DHT22 à la place de la DS1820). Concernant la mesure de la tension, c’est exactement ce que je cherchais, merci beaucoup ;)

      Et sinon, c’est quand qu’on verra ton tuto sur le blog d’Idle ? ^^

      Répondre
      1. Steph

        Bientot.. :)

        Je vais essayer de créer un tuto ou deux sur ces montages… et de transmettre ça à idleman…

        Pour la routine de lecture du voltage d’alim VCC de l’arduino , c’est très pratique en effet… ça provient de cette page..
        dont je vous conseille la lecture..

        http://code.google.com/p/tinkerit/wiki/SecretVoltmeter

        celle-ci aussi vaut le coup, c’est sur le thermometre intégré dans certain modèles d’atmega… comme le atmega328..

        http://code.google.com/p/tinkerit/wiki/SecretThermometer

        J’ai testé sur mon arduino nano, ça marche, mais le thermomètre est si imprécis, et si long à réagir aux changements… que ça n’a pas un grand intéret…

        salutations..bon week-end de paques à vous..

        Répondre
        1. Christophe

          Merci beaucoup pour ton partage, mail reçu ce jour ;)

          Répondre
        2. Kilou

          Je veux bien que tu me les envoies à moi aussi ;) => bsugierATgmail.com

          Merci !

          Répondre
          1. Steph

            C’est envoyé..

            J’avance sur mes tutos…doucement…
            suis nul décidément pour créer une page web… j’ai trouvé kompozer qu’y est pas mal comme éditeur HTML Wysiwyg…. je vous tiens au jus…

        3. Christophe

          Bonjour,

          Petite remarque : Le DS18B20 peut s’alimenter directement à partir de la ligne ‘Data'(« tension parasite »), et permet son utilisation sans alimentation externe.

          Tu peux donc enlever le VCC du capteur. Je ne sais pas si ça va te permettre de faire encore des économie d’alimentation, à tester. :)

          Répondre
          1. Idleman Auteur de l’article

            Merci pour le tuyau, faudra que j’essaye :)

    2. Christophe

      Bonjour,

      Tu as des schémas, genre Fritzing ?
      Je suis interressé par ton code christophe.zaragozaAROBASEfree.fr MErci ;)

      Répondre
    3. Philippe

      Steph,

      Comme je l’ai ecrit, j’ai un peu fait la même chose mais avec des sondes DTH11.
      Est il possible d’avoir ton code ou une partie pour voir comment tu a fait. J’ai du mal a avoir des mesures reguliere de chaque capteur sur la Raspberry PI. Je cherche egalement comment reduire la conso des sondes.
      Merci d’avance
      Philippe

      Répondre
    4. soulfire82

      Salut Steph,

      Ton montage est intéressant et j’aimerais bien voir le code. As tu finalisé un tuto pour ce montage?

      Répondre
      1. jackslayter

        bonjour, je n’ai pas trouvé ton tuto sur le blog et sur le forum , je serai intéressé par le schéma de câblage et le code stp.
        Merci

        et merci à idleman pour tout ces tutos, très bon boulot et de qualité.

        Répondre
  23. blueberry4pi

    Salut !!
    J’ai suivi tout tes tutos et je l’ai ai pratiquement tous mis en place ;)
    Vraiment du bon boulot
    Tu as une idée de comment je pourrais relié directement la sonde température au raspberry et en sortir les données sur une page php ?

    Répondre
    1. Idleman Auteur de l’article

      Tu veux dire sans passer par la radio? Tu prend le même code en enlevant la partie conversion radio :)

      Répondre
  24. zebulon55

     » Désolé , j’ ai eu la flemme de lire tous les commentaires , ça va venir  »
    Mais tu as maintenant toutes les carte en main pour faire de la vrais domotique .
    En ajoutant à ta prise radio , les options : émetteur et un bouton (poussoir ou pas ) , ainsi la prise radio pourrait être placé a la place des interrupteurs standard de la maison .
    Les lampes gérées de cette façon pourraient être utilisé conventionnellement ou grâce au RPi par des automatismes , interface web ….
    Pour aller encore plus loin , la prise radio pourrait être agrémenté d’un PIR ( détecteur de mouvement )
    En espérant avoir été clair et con-si :)

    Répondre
  25. lex

    Hi!
    En plein test de tous tes montages avec un pote. Tu nous as refilé la passion Do It Yourself! Et même si ça ne fonctionne pas toujours sur nos montages approximatifs, je t’offre une bière ;-) Rien que pour la joie que tu transmets.

    Répondre
    1. Idleman Auteur de l’article

      Merci beaucoup :), je suis super content d’entendre que ça donne envie a d’autres que moi de bidouiller, avant de commencer tout ça j’étais assez persuadé que cette série de tuto serait un gros flop :D

      Répondre
  26. Nico

    Salut
    Tout d’abord merci pour le blog, il est génial!
    J’ai voulu modifier le fichier radioReception en exécutant la commande suivante mais j’ai une erreur (j’ai pourtant bien installé la librairie wiringPi):

    root@raspberrypi:/home/pi/hcc2# g++ radioReception.cpp -o radioReception –lwiringPi
    g++: error: –lwiringPi: No such file or directory

    Quelqu’un a une idée?
    Merci

    Répondre
    1. kotb

      Salut,
      Je ne sais pas si tu as réglé le problème depuis mais pour mon cas il a été résolu en entrant le chemin des librairies soit:

      g++ radioReception.cpp -o radioReception -I/usr/local/include -L/usr/local/lib -lwiringPi

      PS pour idleman: Super tes tutos !!…je suis devenu fan de tout ce que tu fais !

      Répondre
  27. Franck

    Bonjour Idleman,

    J’ai beau lire les commentaires de ton tuto raspberry 18 sur la rection des trames mais je ne trouve pas mon bonheur.

    Et je ne sais pas également si je dois le mettre dans les commentaires du post ou pas.

    J’ai trouvé comment envoyer des trames grâce a ton programme radioEmission.
    Je fais un :

    Mais comment puis je faire pour RECEVOIR des informations par exemple d’un capteur de lumière Chacon ???
    Je me doute qu’il faille lancer un ./radioReception quelque chose mais comment faire pour le récuperer dans une page php par exemple pour apres l’afficher ?
    Si j’ai bien compris ton code, tu écris à partir de radioReception les infos dans db.json et après tu le lis via php c’est ça ?

    Répondre
    1. Idleman Auteur de l’article

      Toutes les réponses se trouvent dans le code radioReception.cpp de ce tuto 18 :

      radioReception est lancée avec certains paramètres (numéro du pin branché au récepteur et chemin vers la page php qui vas récupérer le signal), il attend un signal en 433 mhz au protocole chacon modifié que j’ai fait et l’envois parsé comme il faut au fichier PHP qui le traite comme il le souhaite par la suite (ici en enregistrant la température dans un fichier json qui sera consulté par l’interface par la suite)

      Répondre
    1. Idleman Auteur de l’article

      Je l’ignore aussi ^^, à tester (mais avec précaution, les alim ça pète souvent au nez ^^)

      Répondre
  28. Jonathan

    Bonsoir

    Une petit question concernant ce tuto , est t’il possible de lire plusieur sondes de temperatures car je voudrai me servir de ce tuto pour l’installer dans differente pieces.

    un seul recepteurs et plusieurs emeteur ?

    En tout cas merci pour toute ces explication je vien de me commander raspberry :)

    Répondre
    1. Idleman Auteur de l’article

      Oui il faut juste changer le code de la sonde sur 4 bit , tu as 2^4 soit 16 sondes possibles :)

      Après si tu as besoin de plus tu peux augmenter le nombre de bits en modifiant le protocole mais tu perdas en portée/réception.

      Répondre
  29. Jonathan

    D’ailleur sans onde radio sa m’irai bien meiux . Est ce possible ?

    Répondre
    1. Idleman Auteur de l’article

      En filaire la notion de retour est bien plus simple à implémenter oui :)

      Répondre
      1. Jonathan

        est t’il possible d’avoir un peu plus de detail sur la solution filaire ? c’est ce point qui m’interesse . J’ai besoin 5 sondes d’air maximum .

        Quel cablage utilisé ?

        Répondre
        1. Idleman Auteur de l’article

          Si tu dois passer en filaire autant revoir complétement tout le montage, tu peux enlever l’atmega (pour brancher le capteur direct sur le rpi) ainsi que le résonateur (qui ne servait qu’à l’atmega) et évidemment l’émetteur/récepteur RF (qui ne sert plus parce que tout devient filaire).

          Il te reste donc juste la sonde DS18B20 à connecter direct à l’un des GPIO du rapsberry PI, en revanche il faut que tu fasse le code sur le rpi pour interroger la sonde :)

          Répondre
  30. Jonathan

    Merci pour les infos , je pense avoir compris le principe . Seulement une question , pour connecter plusieurs sondes de temperature , est ce qu’elle sont toute connecter sur la meme bornes de l’artmega ? et est ce qu’un seul resonateur suffit pour indiquer l’heure de toute les sondes ?

    Répondre
    1. Idleman Auteur de l’article

      1 atmega = 1 sonde, tu peux mettre plusieurs capteurs de température sur le même atmega mais aucun intérêt puisque qu’ils prendraient tous la même température :)

      Ou alors je n’ai pas compris ta question…

      Concernant le résonateur, il sert d’horloge interne à l’atmega mais ça ne signifie pas que ça ajoute une fonctionnalité pour donner l’heure, c’est très différent :).

      Répondre
  31. mk3d

    Hello, merci pour ce post! Tu m’as donné très envie et j’ai donc commandé tout le matos :)
    J’ai tout reçu, bien réussi à bootloader mon atmega328, puis téléverser le code.
    L’envoi à l’air de s’effectuer correctement, par contre, impossible de faire quoi que ce soit sur le raspberry. Il ne reçoit rien.. J’ai changé le récepteur/émetteur (oui, j’ai eu la bonne idée d’en commandé 2 direct :) mais toujours rien, il recoit des valeurs mais jamais de bonne donnée, tout le temps FAIL? ..
    Comment puis-je débuguer tout ça? Surtout que je ne suis pas une bête en C.. :) D’avance merci pour ton aide.

    Répondre
    1. Idleman Auteur de l’article

      Je pense que ta sonde envoie bien ce qu’il faut mais que le rpi en chie pour recevoir le signal correctement.

      Fais des tests en les mettant très proches l’un de l’autre, en alimentant bien l’emetteur et le récepteur avec des alim externes au rpi et a l’atmega, a utiliser une bonne antenne de 17.3 cm des deux cotés, et a executer le code C++ du rpi en tant qu’admin

      Répondre
      1. Mk3d

        Merci pour ta réponse.
        Effectivement, entre temps j’ai tout poussé à 12V et nickel! Ça fonctionne bien! Merci! Par contre, j’ai encore quelque chose que je ne comprend pas. Si j’enlève la Led de contrôle du signal entre atmega et transmetteur, ça marche pas, je remet la Led, ça marche… :)))
        Autre chose, en fouillant je vois qu’on parle beaucoup de rfm12b, j’ai trouvé pas mal de truc côté émetteur, mais pour le récepteur sur raspberry, on est obligé de passer par un module avec une atmega c’est juste? Dans ce cas est-ce possible de faire ce module sois-même? J’ai trouvé plein d’infos mais rien de vraiment concret. Je vois que vous y connaissez bien par la, alors je tente le coup ;)
        Encore merci pour ton travail et ton partage!

        Répondre
  32. bbr

    Bonjour,
    J’ai déjà fait quelques un de tes super tutos.
    ça fonctionne bien et le démon cron de mon PI + la prise chacon lancent la cafetière le matin (oui je sais une prise programmable fait la même chose^^)
    Concernant les problèmes de temps réel je me posais deux questions :
    – Est-ce que la température évolue si rapidement qu’il faille une màj des données toutes les 3 s ?
    – pourquoi mettre le PI en écoute permanente ?

    Proposition (à valider) : Un protocole avec question/réponse entre le PI et la sonde : c’est le PI qui demande la température à la sonde. ça rajoute juste un récepteur au niveau sonde et une petite modif du programme de l’atmega (le gros du travail est fait de ce côté là avec les programmes pour les prises programmables). ça peut marcher non ?

    Répondre
    1. Idleman Auteur de l’article

      Tu n’est pas obligé de faire une maj toutes les 3s, tout dépends de ce que tu veux faire de ta sonde, perso j’ai réglé la mienne sur 3 sc pour la démo mais en cas réel je pense que je la mettrais plus toutes les 2/3 minutes.

      Si le pi ne reste pas en écoute permanente, il ne peux pas récupérer le signal de la sonde quand celle ci l’envois, c’est aussi simple que ça :)

      Cela dis ces deux questions ainsi que la proposition ne concernent pas le pb de temps réel :), je t’invite a mater ce topic du forum pour comprendre le réel problème : http://forum.idleman.fr/discussion/10/raspberry-et-temps-reel

      La proposition en elle même est pertinente (quoique sachant que la sonde renverra toujours la même info et que cette info doit être cyclique il n’y ai pas vraiment besoin de demande de la part du rpi) mais n’a pas été mise en place pour une bonne raison : le système actuel capte très mal les signaux entre le rpi et l’atmega, or tu propose de multiplier ce nombre de signaux en mettant en place un protocole synchrone

      Répondre
  33. nak

    Bonjour Idleman !
    J’adore ton blog et ton travail ( forte inspiration pour mon projet ;) ).
    Mais question a deux balles, as tu bossé sur la récupération des données pour la mise en route ou non d’un chauffage ?

    Merci d’avance
    N@K

    Répondre
    1. Idleman Auteur de l’article

      C’est a dire ? Perso j’ai pas accès a mon chauffage (je suis locataire et tout est encastré dans les murs) cela dit si j’avais un chez moi je modifierais simplement le code pour qu’a partir d’une certaine chaleur ça active mes relais radio jusqu’a atteindre la chaleur désirée.

      Répondre
  34. kamina

    Bonjours , j’aurai quelques question sur ce circuit , j’ai acheter une sonde température et hygrométrie : DHT22

    1) est-il possible de récupérer les 2 informations sur les ondes radio ?

    2) possibilité d’ajouter plusieurs sondes ?( 5 voir plus )

    3) ma lumière de ma chambre est commander par onde radio 433,98 Mhz, si je capture le signal et j’envoi cette copier cela va fonctionner ?

    Répondre
    1. Idleman Auteur de l’article

      1) Oui mais il te faudra modifier le protocole dans le code en ajoutant quelques bits pour l’info supplémentaire
      2) Encore une fois ça dépend du protocole utilisé, moi j’ai mis 4 bits comme identifiant de la sonde, ça te laisse donc 2^4 = 16 sondes possibles, il faut juste que tu pense à changer le code de la sonde (qui est marqué en dur dans le code source de l’atmega) pour pouvoir dissocier une sonde d’une autre avec le rpi.
      3) Techniquement oui, sauf si le signal adopte un code dit « tournant » à savoir qu’il change d’une fois sur l’autre justement par sécurité pour éviter ce genre de copies(rarissime pour les lampes télécommandées, curieusement ça se vole moins bien que les bagnoles :p)

      Répondre
      1. kamina

        Salut , pour configurer Atmega328 il faut arduino obligatoirement ?

        y a t-il un moyen de faire sans cette puce ?

        Répondre
        1. Idleman Auteur de l’article

          La puce c’est l’atmega pas l’arduino (qui est la carte/plateforme de programmation du fameux atmega :p), oui c’est possible de programmer un atmega sans arduino, mais il te faudra quand même un adaptateur serie/usb spécialement conçu pour ça (tu doit pouvoir en trouver sur ebay), et au final pour quelques euros de plus ça ne vaut pas vraiment le coup de se priver du confort d’une bonne duemilanove (mais ce n’est que mon avis :p)

          Répondre
  35. Rémi

    Bonjour.
    Je débute et j’ai légèrement modifié ton code pour l’utiliser avec une thermistance, mais j’au un petit soucis coté raspberry… Sans doute pas grand chose…
    Quand je lance  » sudo /srv/http/radioReception /srv/http/action.php 0 « , je reçois bien les données, mais 2 erreurs apparaissent, et le liens avec HCC ne se fait pas…

    Donnees detectees
    temperature = 23 C
    positif = 1
    code sonde = 10
    Execution de la commande PHP…
    php /srv/http/action.php UPDATE_ENGINE_STATE 10 23 1
    PHP Notice: Undefined index: engines in /srv/http/action.php on line 83
    PHP Warning: Invalid argument supplied for foreach() in /srv/http/action.php on line 84

    As tu une idée?
    Merci.

    Répondre
    1. Idleman Auteur de l’article

      Visiblement c’est parce que ta base de données hcc est vide voire inexistante, as tu bien créé un peripherique ayant pour code radio « 10 » dans l’interface de hcc ?

      Répondre
  36. Rémi

    Un périphérique est bien créé avec le code radio 10.
    Le fichier db.json est bien mis a jour par l’interface HCC, mais pas par radioReception via action.php.

    Mais toujours cette erreur… Qu’en penses tu?
    Merci

    Répondre
    1. Idleman Auteur de l’article

      J’en pense que c’est vraiment étrange, ton erreur est claire : PHP n’arrive pas a trouver un périphérique ayant un code ’10’ dans la base json, donc soit le périphérique n’existe pas, soit la base n’existe pas, sois il n’arrive pas a ouvrir la base pour une raison quelconque.

      Place ligne 84 (juste après $engines = $db[‘engines’];) les lignes suivantes :

      var_dump($db);
      var_dump($_GET);

      puis execute l’adresse : http://chemin.vers.hcc/action.php?action=UPDATE_ENGINE_STATE pour voir (et donne moi le resultat)

      Répondre
  37. Rémi

    Problème résolu… Avec sudo, ça ne marche pas, mais en root, ça fonctionne.
    Merci ! :) Je vais essayer de m’attaquer au dht22 avec température et hygrometrie maintenant :)

    Répondre
    1. Idleman Auteur de l’article

      Ah okay, etrange, bonne continuation :)

      Répondre
      1. Rémi

        Merci. J’ai toujours le même soucis, quand je lance radioReception en root, tout fonctionne, mais pas en daemon, ou via sudo…. Embêtant, et je ne vois pas d’où ça peut venir…
        Par contre, je souhaiterai rajouter une catégorie sur HCC, sonde d’hygrométrie radio, mais je ne suis pas doué en php, et je ne trouve pas où modifier cela…
        D’avance merci ! :)

        Répondre
  38. danogena

    bonjour, question bête mais peut-on rajouter sur l’atmega le programme des prises ? en gros coupler des capteur température + prises par RF sur la même puce ?

    si oui, comment, copier-coller a la suite ? (en faisant gaffe aux pin bien sur) ou alors faut-il l’intégré plus « proprement » pour que ça marche

    Répondre
    1. Idleman Auteur de l’article

      C’est possible en mélangeant les codes intelligemment :), mais ils faut quelques notions de C++ (enfin ardui langage)

      Répondre
  39. kamina

    Bonjour j’ai quelque problème pour trouver le « Résonateur ZTT 16.00mx »

    ou puis-je en trouver?

    Répondre
    1. Idleman Auteur de l’article

      sur ebay, tape resonator 16 mhz avec pour filtre « monde entier » et « achat immédiat », normalement yen a toujours un certain nombre qui traines.

      Sinon tu peux en trouver sur tous les site d’elec digne de ce nom, sparkfun etc…

      Répondre
  40. Foudre

    Hey, excellent tuto :)
    Petite question, peut on remplacer l’atmega par un arduino ?
    Car je trouve sa plus pratique niveau alimentation vu que j’ai déjà un câble pour l’arduino
    Cordialement

    Répondre
    1. Idleman Auteur de l’article

      Dans la logique non puisqu’un arduino contient forcement un atmega :), dire qu’on le remplace est donc peu approprié.

      Après je pense que le sens de ta questions était : »peut on utiliser la plateforme arduino qui contient l’atmega et une interface de câblage + alim en lieu et place d’un simple atmega » et la la réponse est : oui, tu paiera seulement plus cher (atmega seul ~=3€, arduino le moins chez ~= 15€) et ça sera plus encombrant donc ta sonde sera bien plus grosse.

      Répondre
      1. Foudre

        Oui, c’étais ma question j’ai mal formulé ^^
        Merci pour ta réponse je vais essayer l’arduino car à vrai dire je ne sais pas trop quoi en faire sinon.

        Répondre
  41. N@k

    Bonsoir tous !
    Faut il une ou deux alim pour la sonde ? En effet le recepteur recoit bien le signal d’une telecommande mais impossible de recevoir le signal de la sonde!
    Merci pour votre aide

    Répondre
    1. Idleman Auteur de l’article

      Je ne comprends pas la question, la sonde n’a besoin que d’une alim 220v–>5v quel programme utilise tu pour la reception ?

      Répondre
  42. Philippe

    Bonjour,

    J’ai été très intéressé par ce sujet sur la communication entre une Raspberry et des carte Arduino.
    Bravo pour les tutos.
    En lisant les commentaires et en cherchant sur le net, j’ai fait un peu la même chose avec les modules NRF24L01.
    J’ai mis un capteur DTH11 (hydro + temp).
    J’ai rajouter un numéro de capteur dans la transmission de l’information et modifié le code du hub RPI fournit avec la librairie RF24 pour stocker directement dans ma base MySQL.
    Je stocke déjà les données de ma station météo et ma conso Electrique avec une visualisation par interface maison (site web en PHP).
    Cependant, je n’arrive pas a recevoir un capteur après l’autre ou a stocker l’info de chaque capteur régulièrement.
    J’ai souvent plusieurs fois le même capteur a la suite.
    Je serait assez intéressé pas le code de Stéphane pour voir comment il a fait. (je peux fournir modification que j’ai effectuées sur la base des examples de la librairie RF24)
    Je suis preneur de toute idée

    Merci d’avance pour l’aide

    Répondre
    1. yakust

      Salut Philippe,

      je suis un peu sur le même projet. Est ce que t’as des photos de ton cablage ? Comment récupères tu tes données de conso électrique (Wattmètre, autres … ) ?
      pour tes capteurs, est ce qu’ils sont sur batterie ?

      Merci

      trop bien ton blog Idleman :D

      Répondre
  43. Joe

    Hello,

    Top tip Top ton blog :)

    Moi j’ai une question sur l’Arduino ethernet (http://arduino.cc/en/Main/ArduinoBoardEthernet), est-il possible de l’utiliser pour reprogrammer un ATmega328/ATtiny externe comme ton tuto l’explique ? D’après moi c’est pas possible car on ne peut pas enlever le micro-contrôler, mais je ne suis pas un expert.

    Merci et bonne continuation.

    Répondre
    1. Idleman Auteur de l’article

      Ben justement mon tuto l’explique SANS enlever la puce donc oui c’est possible :p

      Répondre
  44. Kabulo

    Je suis en train de suivre ton tuto et je me rends compte que la sonde de température est câblée correctement sur ta photo mais pas sur le schéma.
    Je ne suis pas un grand spécialiste mais il me semble que de face c’est GND-DATA-VDD (et si j’ai vu la bonne doc).
    Tu spécifies bien qu’il faut faire gaffe au sens.
    Du coup, je suis un peu paumé. (faut dire que j’ai pas tripatouillé d’élec depuis belle lurette…)

    Me trompe-je ? (désolé si c’est le cas…)

    Super tutos en tous cas merci pour le temps que tu prends à partager tes trouvailles…

    Répondre
    1. Idleman Auteur de l’article

      Yop ! Je ne vois pas d’erreur sur mon schéma, peux tu préciser ou tu pense que c’est pas bon ? :)
      Note qu’on a peut être pas le même emetteur aussi…

      Répondre
      1. Kabulo

        Désolé,
        Le nez dans le guidon, j’ai pris le schéma pour argent comptant et n’ai pas vu les connections qui étaient correctes.
        Je me suis contenté de comparer les couleurs aux pattes du capteur sur le schéma et de les comparer à la photo.

        désolé encore…

        Répondre
  45. Kabulo

    Mais,
    Désolé pour le commentaire précédent (les lendemains de fête ne sont apparemment pas compatibles avec la bidouille), je ne voyais plus l’erreur.

    En fait, j’ai suivi tes liens pour les achats et j’ai semble-t’il le même matos.
    Ce que je voulais dire, c’est que lorsque l’on regarde ta photo, le méplat du capteur face à nous, on a, de gauche à droite: GND-DATA-VDD et sur le schéma VDD-DATA-GND (en faisant une rotation anti-horaire du schéma)

    C’est grave doc ?

    Répondre
    1. Idleman Auteur de l’article

      Heuh le soucis c’est que je pense qu’on a tout de même pas le même capteur je pense…

      Si on regarde sur la photo du début, on a bien data, vcc gnd, comme sur le schéma (et la photo ne peut se tromper ^^) du coup je ne vois pas ou tu vois l’ordre gnd-data-vdd…

      Répondre
      1. Kabulo

        Je t’avoue que je suis complètement perdu.

        J’ai l’impression qu’on ne regarde pas la même photo ni le même schéma que toi, lol…

        J’ai bien une « DALLAS DS18B20 18B20 TO-92 Thermometer Temperature Sensor »

        Sur la photo que je vois (http://blog.idleman.fr/wp-content/uploads/2013/03/2013-02-24-12.11.39.jpg) la sonde, dont le méplat est « vers nous » présente un branchement : GND puis DATA (avec la résistance) et enfin VCC.

        Ensuite, sur le schéma (http://blog.idleman.fr/wp-content/uploads/2013/03/schema.jpg), par rapport au méplat, les connexions de la sonde sont, dans l’ordre et selon les couleurs des câbles : VCC – DATA (là où tu signales que tu as oublié de mettre la résistance) et GND.

        Bon, du coup, j’ai pu vérifier que ma sonde fonctionnait correctement et était correctement câblée en testant directement son fonctionnement sur un arduino.

        Par ailleurs, entre ta photo et ton schéma, les « data » ne sont pas reliés de la même façon. (mais ça on peut le vérifier dans le code)

        Ne le prends pas mal surtout hein, faut bien qu’on décortique un peu le code pour que cela soit marrant, mais quand on se remet à bidouiller comme moi, on a les boules de tout péter alors quand un truc me fait douter je stresse.

        Bonne continuation en tout cas et merci de ta patience et pour tes partages!

        Répondre
        1. Idleman Auteur de l’article

          Ahhhhnn je viens de comprendre que tu parlais du capteur de température, moi bêtement j’étais sur l’émetteur oO !! Faut que j’arrête la poudre…
          Effectivement je me suis gouré ya pas le même rapport entre la photo et le schéma, vas falloir que je retrouve la datasheet pour retrouver le bon des deux ^^
          Merci pour le signalement je vais regarder tout ça :)

          Répondre
          1. Kabulo

            Ouf !
            On en parlait pas de la même chose.

            Puisque ton schéma fonctionne, c’est la version photo qui est correctement câblée.

            Moi j’ai l’impression que mon montage n’envoie rien du tout. J’ai recâblé plusieurs fois, testé au testeur et rien. (je teste si ça émet quelque chose avec un dongle RTL-SDR, je n’ai vu qu »une seule fois un signal toutes les 5 secondes mais je n’avais pas encore configuré le Pi.)
            J’utilise une alim 5V/300mA de Nokia, ça vient peut-être de là.

          2. Idleman Auteur de l’article

            Normalement le schéma à été mis à jour, merci beaucoup pour l’infos :)

  46. Syl20

    Salut
    J’ai bien suivi le tuto (enfin je crois) mais là je cale.
    Voilà ce que ça me donnais sans cesse:

    Donnees detectees
    temperature = 85 C
    positif = 1
    code sonde = 10
    Execution de la commande PHP…
    php /var/www/hcc2/action.php UPDATE_ENGINE_STATE 10 85 1

    Alors j’ai eu l’idée d’inverser la sonde (j’en ai plusieurs en stock) et ça m’a donné ça:

    Donnees detectees
    temperature = 0 C
    positif = 1
    code sonde = 10
    Execution de la commande PHP…
    php /var/www/hcc2/action.php UPDATE_ENGINE_STATE 10 0 1

    Donc soit très chaud ou soit très froid mais pas une seule température de correcte.
    Une idée? Merci d’avance.

    Répondre
    1. Idleman Auteur de l’article

      Effectivement ya une couille dans le potage ^^, je pense que ton premier branchement est plus probant (regarde sur la datasheet de ta sonde au cas ou); une valeur 0 est rarement signe de bon fonctionnement.

      Après il reste a savoir pourquoi tu obtiens 85°, as tu essayé te brancher ton atmega sur une plateforme arduino et de regarder les log concernant la température? Ca te permettrais de voir si le problème viens de la transmission radio ou plus gênant, directement de la sonde qui déconne.

      Répondre
      1. Syl20

        Bon alors je suis reparti de zéro pour le montage sur breadboard mais J’ai également remplacé les composants électroniques et ça marche nickel! Je suis à 80% de réussite à 10 mètres.
        Pour info les branchements + et – de ma sonde sont inversés par rapport à ton schéma. Curieux…

        Répondre
  47. Kabulo

    En fait, je crois que tu parlais de l’émetteur et moi de la sonde de température. Dans le doute, la datasheet de la sonde a été mon amie. Sans surprise, c’est le montage de ta photo qui fonctionne.

    Peu importe, cela fonctionne.

    Répondre
  48. Kabulo

    Je continue à t’embêter mais cette fois vraiment pour les prochains lecteurs.

    Ton schéma et ton code spécifient bien les pins (arduino) 9 et 10.
    Ce ne sont pas celles utilisées sur la photo. (9 et 12)

    Peut-être pourrais-tu le préciser dans le tuto. Pour les noobs comme moi, quand on commence le câblage, c’est la brasse coulée.

    (Bon bien sûr, ensuite, au moment du téléversage dans l’atmega, on peut voir les commentaires du code…)

    Juste pour pinailler hein…

    Répondre
    1. Idleman Auteur de l’article

      Non tu as raison tout ce qui peut améliorer la qualité du tuto est bon à prendre :), merci beaucoup j’ai ajouté une tite clause dans le tuto ! :D

      Répondre
  49. Ludo

    Salut,

    En remplacement des sondes DALLAS DS18*20 on peut maintenant utiliser les sondes MAX31820 (de chez Maxim qui a racheté DALLAS).
    Les sondes MAX31820 sont identifiées dans la famille 28- et fonctionnent en lieu et place des DALLAS.
    Il existe aussi d’autres sondes chez Maxim et je vous invite à allez sur leur site pour commander des « samples » (si vous avez une adresse mail qui va bien) !

    Faire attention lorsque que vous commandez des sondes (DS18xx ou MAX318xx) à ne pas prendre des +PAR, car elles ne fonctionnent qu’en mode alimentation PARasite. Sur un GPIO en 1-Wire sur un RASP cela ne semble pas fonctionner (affiche continuellement 85° = pb de reset). Je n’ai pas encore essayé sur l’ATMega.
    Sinon, pour le fonctionnement en mode PARasite, il faut bien penser à relier la broche + de la sonde à la broche Gnd.

    A+

    Répondre
  50. Tinou40

    Bonjour Idleman!

    Fabuleux tes tutoriels! J’ai toujours été fasciné par la domotique, malheureusement mes connaissances en électrotechnique et en informatique étant très limitées, jamais je n’aurai pu rêver faire tout ça seul!
    J’utilise déjà depui longtemps les prises « Falcon ». grace a toi il serait aisé de les synchroniser avec un Rapsberry. sur le meme principe, je me demandais s’il était possible d’utiliser une ou plusieurs sondes de température + hygrométrie (vendues avec les stations météo de marque OTIO), et qui émettent aussi sur une fréquence de 433 MHz? J’ai déjà les données qui sont collectés par la station météo de mon salon et souhaiterais les récolter en simultanées par le Rapsberry et ainsi créer des scénarios. Penses-tu que ce soit faisable?
    Dans ce cas, ai-je besoin de la carte arduino sachant que la sonde fait déjà office d’émetteur?
    Merci d’avance de ta réponse.

    Répondre
    1. Idleman Auteur de l’article

      Oui c’est possible et non tu n’a pas besoin d’metteur additionnel puisque tes sondes en sont déjà dotés, en revanche tu devras modifier mon code de réception car le protocole de tes sondes n’est certainement pas le même que celui de mes prises chacon.

      Il faut pour cela connaitre le protocole utilisé par tes sondes et modifier le fichier cpp de réception du rpi en conséquence :)

      Répondre
    2. Valdoison

      Bonjour
      Bonjour

      Je ne suis pas un expert (loin de la), mais je me passionne pour tous ces « bidouillages ».
      A un moment il faut mettre en œuvre ce matériel et du point de vue esthétique je pense qu’une sonde radio du commerce doit faire l’affaire.
      En fouillant un peu il y a, par exemple, cette sonde OTIO 936067 en 433Mhz ou alors des sondes en 2.4Ghz.
      Pour la première solution de sonde en 433Mhz, le récepteur utilisé dans le tuto convient t’il?
      Pour la deuxième, je ne suis pas à la hauteur de la bidouille.
      Tinon40 as tu trouvé le protocole de ta sonde?

      Merci de votre aide

      Répondre
      1. Idleman Auteur de l’article

        Le problème ne réside pas vraiment dans la fréquence mais dans le protocole. La plupart des sondes vendues dans le commerce utilisent leurs propre protocole et le garde « secret », il est bien entendu possible d’analyser le protocole mais cela demande généralement beaucoup de temps et n’aboutis pas forcement.

        De plus il est difficile de trouver des sondes dans le commerce à moins d e7€ sans tout un attirail associé la plupart du temps inutile, enfin il n’est pas possible de personnaliser ces sondes à fond, le code coté sonde étant verrouillé.

        En résumé, Si il s’agit d’une simple question d’esthétique je pense qu’un boitier acheté dans le commerce serait plus simple à mettre en oeuvre que le bidouillage d’une sonde toute faite.

        Répondre
  51. matthieu55

    Salut , Je suis ton blog avec attention …. ( modalité d’ usage ) .
    Il y a quelque choses qui me dérange ,  » arrête moi tout de suite si je me trompe « .
    En premier , le protocole ( radio ) utilisé pour la sonde n’ a plus rien (si ce n’est le codage ) a voir avec celui des prises .
    Est que c’est un choix délibéré ou juste que les données a transmettre sont plus importantes donc tu l’as adapté ?
    Un compromis entre les deux ne serait-il pas envisageable ?
    En deuxième , si les sondes et prises ( ou autre ) utilise le même protocole , la création d’ une Lib. serait possible , elle permettrait de simplifier les codes ( émission/réception )  » et toutes sortes de choses !  »
    Pour finir , j’ ai noté que tu avais du avoir des erreurs à causse des temps de réponses de l’ ATmega , puis-que tu utilise des temps différents pour émettre .
    ( pour la petite histoire : j’ avais bricolé une télécommande IR pour appareil photo , commandé par une barrière IR  » aussi  » ) , et j’ avais eu ce genre de problème . Que j’ ai résolu en changement ma façon de procédé .
    Je m’ explique ( code a émettre 101[…]et durée d’ un bit 200 μs:
    Au lieu de mettre la sortie à 1 attendre 190 μs ( le reste passe dans la lecture du programme et autre opération ) puis passé à 0 attendre 190 μs ,1 attendre 190 μs […]
    J’ai pris le temps T dans T0 , j’ ai mis ma sortie à 1 et tant que le temps ne dépasse pas T0+200 , je suis dans le premier Bit , un fois dépassé la sortie passe a 0 est tant que T<T0+400 je suis dans le deuxième Bit … un fois dépassé , passe a 1 […]
    A utilisé avec un compteur qui détermine le Bit a lire/émettre et le temps .

    P.S. j' ai jamais fait de Lib. mais s'il faut , je veux bien m' y mettre , le principale entant de gardé une compatibilité avec le reste de ton travail .

    Électroniquement votre ! )

    Répondre
    1. Idleman Auteur de l’article

      Le protocole pour les sondes est du home easy légèrement modifié, donc oui il ne fonctionnera plus avec les prises.

      Il est modifié pour une raison simple, sur les prises on fait juste du on/off un seul bit suffit donc (0 = off, 1 =on) sur les sondes on a besoin de transmettre une température qui vas au moins de de -128 à 128 degrés donc minimum 7 bits + un bits de signe (+ ou -) ce qui fit 7 bits de plus qu’utilisé par les simples prises.

      Pour ce qui est des lib il en existe déjà pas mal, mais dans mes tutos j’essaye d’expliquer le principe de la transmission radio, or utiliser une librairie n’aide pas à comprendre un principe, simplement a l’utiliser sans trop savoir ce qui se passe derrière.

      Répondre
  52. Kabulo

    Tiens Idle, un autre truc que j’ai trouvé ici : http://www.chicoree.fr/w/Arduino_sur_ATmega328P
    A priori, les masses (gnd) de l’atmega 328P sont reliées en interne, donc, on peut se séparer d’une connexion superflue.
    (testé)

    Tu ajoutes à ça le branchement en mode parasite de la sonde et tu en supprimes un supplémentaire. (testé aussi)

    Pour ton montage, cela n’a pas d’incidence mais l’info peut être sympa pour le montage final optimisé.

    Bonne fin de week-end ! (oui bon, il reste 20 minutes …)

    Répondre
    1. Idleman Auteur de l’article

      Effectivement c’est intéressant, je testerais ça quand j’aurais une minute merfi pour le tuyau :)

      Répondre
  53. yanouk-design

    Je viens de découvrir ton blog, très, très sympa !!
    Pour encore réduire les coûts, j’utilise les solutions picaxe (en particulier le picaxe 08m2+) qui sont des microcontrôleurs basés sur du pic (microchip), mais avec un firmware modifié pour être programmés de façon simple (basic ou organigramme graphique).
    En effet Arduino est sympa mais parfois un peu surdimensionné pour de simples applis (ou un simple ne 555 pourrait parfois suffire).

    Répondre
  54. Snake91

    Bonjour,

    Je souhaiterais suivre ce principe pour une sonde Hygrométrique, pour un capteur de présence et éventuellement ultrason.
    – Cela est il possible avec qu’un seul émetteur et qu’un seul récepteur ?
    – Possibilité ensuite que, lorsque qu’il y a une présence, mise en route d’une camera pi par exemple?
    – A quel niveau les changements doivent être opérés si je rajoute ces différentes sondes et capteur?

    Je te remercie d’avance pour tes réponses.

    Répondre
    1. Idleman Auteur de l’article

      Oui c’est possible, il vas juste falloir que tu modifie le code pour envoyer ces trois types d’infos différentes, la majorité des changements qui doivent être opérés se situe sur le protocole échangé entre l’atmega et le raspberry pi

      Répondre
  55. Fidoboulettes

    Bonjour,
    je suis avec attention ton blog, et particulièrement ce tuto qui m’intéresse beaucoup….
    quelque chose me turlupine pourtant….
    souhaitant, ds un premier temps, n’avoir qu’une sonde de température dans mon jardin, quel est l’intérêt de l’arduino dans mon cas? N’est il pas possible de connecter un récepteur directement sur le Pi et qui serait en liaison avec le transmetteur ds le jardin?
    Question subsidiaire… Mon Pi est connecté (avec un dongle) à mon réseau interne en WIFI via mon routeur (n’avec n’1 grosse n’antenne qui balance la sauce)… selon toi, est il possible de faire communiquer le tout par ce biais là?
    J’ai fait un peu des recherches sur le net mais je ne trouve rien qui soit adapté à mon niveau de gros Noob….
    Si oui, quelle serait la méthode…
    merci à toi

    Répondre
    1. Idleman Auteur de l’article

      Tu peux relier le récepteur direct sur le pi, mais prend garde c’est généralement plus compliqué qu’avec les arduino, premièrement parce que le rpi n’a pas de pin analogiques (donc toutes les sondes analogiques tu peux oublier) et deuxièmement parce que certaines sondes sont extrêmement complexe à interroger et qu’il n’existe pas beaucoup de librairies pour simplifier les choses sous rpi.

      Tu veux utiliser le wifi pour faire communiquer quoi et quoi ?

      Répondre
  56. Kabulo

    Merci Ludo !

    En lisant ton post je me suis rendu sur le site et ai commandé des samples.

    Je viens donc de recevoir 8 sondes (dont 2 dans un format dont je ne peux rien faire, toutes minus, j’ai lu trop vite).
    J’ai pris des DS18, les MAX318 en version parasite ou non

    Envoi rapide, entièrement gratuit !
    Super tuyau !

    Idleman, si t’en as pas encore bénéficié, fonce !

    Du coup, j’ai tenté la même chose chez atmel (pas con le mec) et ça demandait trop d’infos pro alors j’ai abandonné.

    Répondre
  57. viskor

    Bonjour,

    j’aimerais rendre portatif mon capteur avec une autonomie accrue et je me penche sur les solutions, soit utiliser le truc de l’atiny cité plus haut, ou alors faire un montage avec des piles ou je pensais utiliser une pile 9V pour le capteur uniquement afin d’augmenter la puissance et une pille 3V pour l’atmega et le capteur de temperature, j’ai chercher un peu sur le net et j’ai trouver ici http://electronics.stackexchange.com/questions/49182/how-can-a-let-my-atmega328-run-for-a-year-on-batteries ceci :
    «  » » » » » » » »Additional power savings can be obtained through the following steps:
    Use the microcontroller’s internal oscillator and a low clock rate (8MHz instead of 16) – but ensure that time and timing related code still works as expected. A different version of the bootloader might be needed for this.
    Avoid keeping LEDs on for long if the application uses them. Using a rapid double or triple flash of short duration (0.05 second on, 0.5 second off), with gaps of seconds in between, ensures noticeable indication with minimal power consumption
    Use a switching regulator instead of a linear one, if a regulator is required.
    Run the microcontroller at lower voltage if supported, 3.0 Volts (e.g. CR2032 Lithium cell, no regulator needed) or 3.3 Volts instead of 5 Volts.
    Follow recommendations in the datasheet for unused input and output pin settings for minimum power wastage.
    Incorporating these suggestions allows for running microcontroller applications for weeks or months on a single CR2032 coin cell, and years on a LR123 type lithium cell. Of course, your mileage may vary depending on what sensors, outputs and actual processing your application requires. » » » » » » » » » »

    serais ce viable? un de vous aurais un shema si vous avez rendu portatif votre capteur?

    comment augmenter le delais actuel qui est de 3 secondes a 1 minute?

    Répondre
  58. julien

    Bonjour,
    Tes tutos sont vraiment excellent et je passe un temps fou à tout lire mais c’est bien instructif.
    J’ai 2 questions concernant ce tuto de la sonde de temp a 7€ seulement…
    -en premier lieu , avec quel soft fais tu ces jolis dessins? http://blog.idleman.fr/wp-content/uploads/2013/03/w26nufcy.jpg
    en effet si je ne documente pas un minimum mes schémas de bidouillages et autres de tout ce qui va domotiser la maison cela va devenir ingérable à la première panne…
    -en second , j’envisage de coller ton montage à7€ dans plusieurs pièces mais dans certaines je souhaiterais (la SDB notement ) obtenir en plus l’humidité
    cela me permettrait via un script php de mettre du jus sur une prise chacon piloter depuis un de tes autres tutos pour alimenter la vmc de la sdb et évacuer ce surplus d’humidité uniquement quand cela est nécessaire.

    Merci a toi pour tout ces tutos génialissimes, je ne manquerai pas de te flatter sous peu.

    PS: j’espere quye cela ne fera pas doublon mais mon post n’apparaissait pas…

    Répondre
    1. Idleman Auteur de l’article

      Coucou !! :)

      Les commentaires apparaissent uniquement après validation par moi même (ça évite les spam et les trolls) c’est pour cela que tu ne le voyais pas :)

      Donc pour la première question j’utilise le logiciel gratuit fritzing qui est excellent à mon sens :), faudrait que je fasse un post la dessus.

      Pour la seconde question ben, heuh, ou est al question en fait ? :D

      Répondre
      1. julien

        trop bête , j’ai pas formulé la question !!!
        pour l’humidité , il faut remplacer le ds1820b par un autre composant of course ce doit etre les bazard blanc que j’ai appercu ici et là en fouinant sur le net?
        mais pourrais tu par exemple nous orienter vers le choix du capteur humidity (avec sa ref qui confionnerait sur ton code pour l’atmega) et la modif dans ton schéma à réaliser pour recevoir la temp de la sonde + son humidity ?

        il est vrai qu’une sonde oregon sait le faire … mais à quel prix xD !

        Répondre
        1. Idleman Auteur de l’article

          Tu peux utiliser un composant qui fait les deux comme le DHT11 ou autres cf cette liste : http://www.ebay.fr/sch/i.html?_sacat=0&_from=R40&LH_BIN=1&_nkw=temperature+humidity+sensor&LH_PrefLoc=2&_sop=15 pour les branchements il te faut regarder sur la datasheet mais avec 4 pattes je suppose qu’il y a juste une masse, un Vcc, et un pin logic par type de donnée (température et humidité).

          Évidemment il te faudra modifier le code et le protocole pour ajouter la notion d’humidité dans tout ça :)

          Répondre
  59. BENOIT

    Bonjour,
    Merci beaucoup pour toutes ces infos
    Je débute dans ce monde et je me pose la question suivante:
    Pour programmer l’atmega ,pourquoi ne pas le mettre directement sur l’arduino uno et televerser le code ?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      on peux le faire, comme je le disais plus haut dans les commentaires, je montre une manière de le faire qui permet de reprogrammer un circuit déja monté sans avoir a décrocher aucun élément (les pattes des atmega sont fragiles et une fois le circuit monté ils ne sont pas toujours faciles d’accès) le but étant de toujours laisser dans le circuit final un tx et un rx auquel se pluguer si l’on souhaite reprogrammer le tout.

      Répondre
  60. Fidoboulettes

    Bonjour bonjour,
    j’ai suivi le tuto à la lettre…. je rencontre deux problèmes.
    le premier est « matériel »….. l’émetteur et le récepteur sont alimenté en externe avec deux vieux transfos de téléphones (5v et ~450mA)… qu’ils soient côtes à côtes ou éloignés de quelques mètres (séparés par une porte en bois)…. je ne reçois en gros qu’une valeur toutes les 10 données (en gros)… aurais tu une idée pour augmenter ce « score »?

    Ensuite c’est côté interface web….
    j’ai extrait celle que tu propose dans mon var/www/ mais c’est après que je pèche… comment la visualiser sur mon navigateur?…. je précise que je suis sous nginx et que donc j’imagine devoir créer un vhost (plusieurs autres services dont YDLE…. :-) )… mais là je sèche un peu pour l’écriture de celui ci…. donc là aussi un peu d’aide ne serait pas de refus….
    merci à toi encore pour tous ces tutos

    Répondre
    1. Idleman Auteur de l’article

      As tu essayé de mettre des antennes a tes émetteurs/récepteurs ? Sinon à part changer d’emeteurs/récepteurs pour du matériel plus puissant ou utiliser des antennes hélicoïdales ou de wifi je n’ai pas d’autres solutions :)

      Pour acceder au site web tape l’ip de ton rpi suivis de l’arbo du dossier web à partir de var/www.

      par exemple pour /var/www/sonde_temperature, l’url sera : http://ip.de.ton.rpi/sonde_temperature

      Répondre
      1. viskor

        les emeteurs RF 433mhz peuvent monter jusque 12V pour certains, il pourais augmenter la puissance et la portée ainsi.

        Répondre
  61. asigne

    Salut,

    j’ai un souci, j’ai des valeur complètement absurdes de « t » coté raspberry alors que mon arduino n’émet même pas…
    Ces valeurs restent identiques quand je lance l’émission de mon arduino… une idée ? Merci !!!

    Attente d’un signal du transmetteur …
    FAIL? = 5287
    Aucune donnee…
    FAIL? = 13312
    Aucune donnee…
    FAIL? = 1573
    Aucune donnee…
    FAIL? = 57
    Aucune donnee…

    Répondre
    1. Emmanuel

      Salut,

      j’ai également le même problème
      FAIL? = 222
      Aucune donnee…
      FAIL? = 481

      alors que émetteur et récepteur sont a coté (les antenne se touchent lol :) et sans parasite autour.
      As tu réussi a résoudre ton problème ?

      Si oui comment ?

      A+

      Répondre
  62. viskor

    Bonjour,

    Est ce normal que je soit toujours a 100% de CPU lorsque le script est lancé?

    Mon raspberry pi me sert a plein de choses et je dois avoir du CPU de libre et je ne comprend pas comment ce petit programme qui fait pas grand chose prend plus de CPU que Jdownloader ou mumble.

    Serais t’il possible de reduire la charge CPU du systeme car je pense que le probleme de Fail qui arrive a pas mal de personne serais peut etre du au fait que le processeur surcharge car moi aussi sa me fait plein de message fail quand je suis a 5M de distance avec des antennes et alim externe.

    bien a toi idle

    viskor

    Répondre
    1. Idleman Auteur de l’article

      Le rpi est un peu « lent » pour déchiffrer des donnée radio, j’ai donc du prioriser la tâche du programme sur toutes les autres, c’est ce qui te prends tant de CPU, tu peux déactiver cette priorisation dans le code mais il te faudra un bon kit radio bien alimenté avec des alim externe et de bonnes antennes si tu ne veux pas avoir trop de ratés.

      Répondre
      1. viskor

        ha c’est donc pour sa ^^, je comptait faire un crontab pour qu’il lance le script puis 5 minutes apres kill et que sa se relance 1heure apres.
        Au sinon pour mes emeteur/recepteur j’ai mis une antenne dessus l’emeteur sur le pi me permet d’allumer/eteindre les prises situer a plus de 10M.

        Pour les modules températures, j’ai prévu d’acheter ceci :
        http://www.befr.ebay.be/itm/SparkyLabs-5x-5V-regulator-set-7805CV-reg-with-10-100uF-capacitors-/181301723012?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item2a366cbf84
        sa converti du 7-30V en 5V donc pour l’atmega et le DS il seront bien alimenter et je compte mettre une batterie en 12V qui est le max voltage pour l’émetteur 433 pour avoir une meilleur portée et puissance, donc quand tu regarde sur internet pour 20 euro t’as des batterie rechargeable LI-ion(pour exemple car la prise n’est pas la bonne : http://www.buyincoins.com/item/8234.html) donc tu pourrais charger et profiter plusieurs mois de ton capteur de température

        Répondre
  63. Sergio

    Hello,

    can we have the chacon radioreception running at the same time that the temperature sensor ?

    Regards
    Sergio

    Répondre
    1. Idleman Auteur de l’article

      Yep but you will need to disable the fake-real-time function which prioryze the program task in order to increase radio listening of rpi.

      Yo you could have problems with the quality of signal reception, you must use external alimentation and good antenna/rf kit

      Répondre
  64. cl3m

    Bonjour,

    Merci pour se tuto il est super bien expliquer !
    j’ai deux petites questions :
    Quel type d’alim utilisez vous quand vous parler d’alim externe pour les éméteur/récepteur ?
    Et quel type de fil utilisez vous pour faire l’antenne de 17,3cm (Un cable de cuivre unique, ou multi-brin? Quel diamètre ?) ?
    Car je constate beaucoup de « fail » a une distance de moins 1m.

    Répondre
    1. Idleman Auteur de l’article

      Alimentation 5v stable
      Pour les antennes j’utilise des fils electriques standard mais il parait qu’il existe des fils spéciaux qui améliorent le processus

      Répondre
  65. cl3m

    Salut ! super tuto ;)
    Serai possible d’afficher la temperature en (float ou double ?) ?
    Le capteur de temperature le permet t il ?

    Répondre
  66. champ

    Félicitation pour tes tutos j’y suis tombé dessus plusieurs fois lors de recherche pour mes tests sur raspberry et depuis hier je me suis mis dans l’idées de remplacer la vielle station météo de mes vieux par une solution avec raspberry

    la solution serais un Raspberry avec une DHT22 pour la température et l’humidité à l’intérieur avec pourquoi pas un capteur de pression atmo
    et ce qui m’amène sur ton site : avoir une sonde exterieur avec un DHT22 aussi qui communique en RF 433

    L’idée m’est venu en testant un autre projet qui est le Pi HomeDashScreen qui est bien foutu je doit l’avoué
    http://www.magdiblog.fr/boa-pi-homedashscreen/1-raspberry-pi-home-dash-screen/

    J’ai déjà commander un DHT22 et un kit recepteur/émetteur RF 433 afin de commencer d’implémenter des graphique a ce Dash et essayer d’obtenir les mesures de la sonde de la vieille station des vieux

    et en faisant plus de recherche sur un lien posté dans un commentaire a propos de ce site : http://nathan.chantrell.net/20130215/tinytx3-wireless-sensor-board/
    Je suis tombé sur celui-la : http://harizanov.com/product/complete-funkydht22-project/
    je suis une véritable quiche en anglais pourrais tu m’éclairer si cet article est une sonde autonome qui me permettrais de me passer d’une commande d’un arduino et de toute la mise en place de ton tuto

    ou si quelqu’un a trouvé ou produit des kit pour faire une sonde extérieur je suis preneur

    Répondre
  67. hguo

    Bravo franchement pour tout ce boulot ! Je suis admiratif du travail et je compte bien appliquer toute ses installations chez moi ! Mais je voulais savoir si tout les codes que tu as mis dans les tuto qui on précédé YANA sont compatible tout de même avec ?

    Répondre
    1. Idleman Auteur de l’article

      Plus ou moins, il y a des adaptations à faire, après il existe déja des plugins pour yana qui reprennent ces bouts de code dans leurs majorité (relais filaire, relais radio, sonde radio…) tu peux installer ces plugins depuis yana (section market)

      Répondre
  68. Morgan

    Bonsoir,
    J’ai un petit souci, j’ai décidé d’investir dans un arduino et malheureusement je n’ai pas fais attention la version que j’ai pris est une UNO REV 3 CMS Xo ce qui veut dire qu’il m’est impossible de déclipser la puce…
    Est-ce que quelqu’un a une solution ?

    Répondre
    1. Idleman Auteur de l’article

      A part acheter une autre plateforme il n’y a pas beaucoup de solutions :), par contre pour eviter de payer trop cher tu peux acheter une chinduino, qui est la contrefaçon légale de l’arduino uno et qui coute bien moins cher.

      Répondre
  69. arnaud

    Salut

    ton tuto est tres bien et encore bravo
    mais aurrai tu une solution faire comme sur les sites suivant

    recupere le temperature grace a une DS18B20 mais que la temperature s’affcihe sur une page en PHP
    et non avec leur script en phyton

    http://www.pihomeserver.fr/2013/10/29/raspberry-pi-home-server-utiliser-sonde-temperature-etanche-ds18b20/

    ou

    http://raspberrywebserver.com/gpio/connecting-a-temperature-sensor-to-gpio.html

    Merci par avance

    et ENCORE BRAVO !!!! pour tout

    Répondre
    1. Idleman Auteur de l’article

      C’est ce qu’on fait dans ce tuto… du coup je ne comprends pas ta question

      Répondre
      1. arnaud

        bonjour

        non je ne veux pas passer par onde radio
        et je ne veut pas me servir d’un arduino

        j’aimerai me connecter en direct comme dans les tutos

        mais du coup l’information est sur un script en C
        et non sur une page en PHP

        Merci

        Répondre
  70. Walmins

    Bonjour, et merci pour ton blog!
    j’ai bien suivi ton tuto mais comme je suis débutant Arduino j’ai quelques erreurs et je ne sais pas de ou ca viens.
    J’ai bien installer les deux librbary car je l’ai vois dans la partie biblioteque de IDE mais a chaque fois j’ea une erreur de type:
    /tmp/arduino-buildcFWISP/sketch.cpp:11:31: warning: DallasTemperature.h: Aucun fichier ou dossier de ce type
    /tmp/arduino-buildcFWISP/sketch.cpp:25: error: ‘DallasTemperature’ does not name a type
    pour info je suis sur Linux (Archlinux) et j’utuilise une carte Uno
    A tu une idee d’ou ca peut venir?

    Merci a toi et continue comme ca car son cool tes projets.

    Répondre
    1. Idleman Auteur de l’article

      Visiblement tu as mal inclus la librairie de dallas qui permet la récupération de la température, revérifie le passage de l’inclusion de la lib :)

      Répondre
  71. Insomnix

    Salut Idleman et merci pour ton super blog, c’est une mine d’inspiration.
    J’ai fabriqué les sondes de température, j’ai codé part contre la réception sur l’arduino, qui est beaucoup plus fiable et le raspberry peut surtout faire autre chose.
    Je dois maintenant m’attaquer au site, et la par contre je risque de galerer, je suis une bouse en PHP. J’aimerai m’inspirer de ce que tu as fait, c’est propre et rajouter des fonctionnalités (gestion de température par plage horaire et par pièce) afin de faire démarrer mes radiateurs.
    Question : tu utilises quoi toi pour tes développement php? Le bloc note? Ca existe un IDE ou un genre de truc où je puisse voir directement le rendu directement?

    Répondre
    1. Idleman Auteur de l’article

      J’utilise sublim text2 qui est juste le meilleur IDE du monde ^^, il existe 1000 façon d’avoir un rendu en temps réel, sur sublim il doit y avoir un plugin, sinon ya pas mal de plugin qui s’integrent direct au navigateur. mais perso j’utilise juste ctrl+f5 au final ça ne change pas grand chose :)

      Répondre
  72. Franck

    Hello
    Pour Yana, j’ai finalement trouve comment modifier les seuils de détection. Par contre concernant ce tutoriel, les liens ne sont pas accessibles. est ce que tu pourrais les mettre ?

    Répondre
  73. Ankoine

    Bonjour,

    Excellent tuto, j’ai suivi l’ensemble de tes tutos et te remercie beaucoup.
    J’aurai besoin de ton aide.
    La sonde de température 433 Mhz fonctionne parfaitement comme dans ton tutoriel. Cependant j’aurai aimé confier la gestion de la réception à un arduino mini pro relié au raspberry ( comme ce tuto : http://www.domocreation.fr/projets/DomoPi-programmation-Arduino.html)
    Sur ce tuto tout fonctionne aussi sauf que le code ne détecte que les signaux CHACON.
    Tu n’envoie pas un code chacon avec l’atemga exactement donc je ne parviens pas à le reprendre.
    Après avoir passé quelques heures je sèche complétement : Pourrais tu m’aider pour adapter un code de réception de ton signaux pour ta sonde pour un arduino ou réussir à modifier ton code d’émission afin qu’il soit détecter exactement comme un Chacon?
    Je demande des idées car je nage complétement.
    Par avance merci à tout le monde!

    Répondre
  74. mouns

    Salut idleman et merci pour tes tutos.
    Concernant ce tuto il est possible uniquement d’envoyer une température d’une précision de 1°C seulement, comment envoyer une température de 21.52°C par exemple?

    Merci

    Répondre
    1. Idleman Auteur de l’article

      Il faut augmenter le nombre de bits transmis pour pouvoir transmettre plus d’infos (7bits en plus pour avoir au moins 128 valeurs possibles pour les décimales) donc c’est une petite modif du protocole sur le code de l’atmega et du rpi.

      Par contre garde a l’esprit que plus le nombre de bits est important, plus la portée sera réduite.

      Répondre
  75. mouns

    Salut,

    Quant est il des valeurs à virgule? genre 20,65°C.
    Cela ne fonctionne pas.

    As-tu une idée?
    Merci pour tes tutos!!

    Répondre
    1. Idleman Auteur de l’article

      Il faut augmenter le nombre de bits transmis pour envoyer des décimales, donc légère modif du code de chaque coté mais surtout perte de portée

      Répondre
  76. Jérémy

    Salut, que penses tu des modules xbee (utilisant le protocole zigbee) pour communiquer? Ils permettent de faire un réseau maillé et ne consomme pratiquement pas.

    Répondre
    1. Idleman Auteur de l’article

      Pas d’avis particulier la dessus, zwave, zigbee etc.. m’ont l’air de tous êtes fonctionnels et pratiques, mais c’est souvent chez à mettre en place, les émetteurs/récepteurs implémentant les protocoles en natif étant souvent couteux. de plus ces protocoles utilisant généralement des plus hautes fréquences que le 433 mhz, elle permettrons de transmettre plus d’informations en moins de temps mais la portée sera réduite, il faudra donc prévoir antennes, relais ou maillages quelconques ce qui peut ajouter au coût initial.

      Répondre
  77. Yoann

    Bonjour,
    tout d’abord merci pour tous ces tuto qui sont du grande aide pour le bidouilleur débutant que je suis.
    je pense avoir compris le principe de ce montage néanmoins j’aurais une question ( je pense avoir la réponse mais il me faut une confirmation) cette sonde de température peut elle marcher avec un system déjà en place (domotics, sarah, etc etc ) et est elle compatible avec un recepteur existant type rfx »machintruc » ?
    je sais que ces questions sortent un peu de ton tuto, j’espère que tu pourras cependant me donner un début d’élément de réponse.
    Merci pour tout le travail effectuer tu décomplexe beaucoup de bidouilleur ;)

    Yoann

    Répondre
    1. Idleman Auteur de l’article

      Elle peux fonctionner oui, mais il faut certainement uen adaptation au protocole sur lesdites centrales, c’est du 433mhz et le protocole est proche de home easy mais un peu « modifié » par mes soins du coup je pense qu’il te faut un plugin adaptés sur d’autres centrales que yana

      Répondre
  78. Dam

    Bonjour,
    je souhaiterai utiliser le même principe avec un programme en python qui affiche simplement la température a l’écran du rasp.

    au niveau de la détection de la trame je suis un peu perdu dans votre code…
    l’arduino envoi des verrous (pour la détéction de la trame je suppose), l’identifiant de la sonde (1010 par ex) et la trame.
    Mais coté raspberry je ne comprend pas comment vous décodez le tout.
    Si vous pouvez m’éclairer ça serait super :)

    Merci en tout cas pour votre travail !

    Répondre
    1. Idleman Auteur de l’article

      En gros il y a deux verrous qui indiquent le départ du signal puis encodé en manchester :
      7 bits représenteront la valeur de la température
      1 bit représentera le signe de la température (température positive ou négative)
      4 bits représenteront l’identifiant de la sonde.

      Pour uen explication plus complete du processus, je te conseille de te referer à la fin du tuto 10 : http://blog.idleman.fr/raspberry-pi-10-commander-le-raspberry-pi-par-radio/

      Répondre
  79. Sylvain

    Bonjour,
    Lorsque j’alimente mon récepteur avec une pile de 9V j’ai une bonne portée.
    Mais lorsque je l’alimente avec une alim externe « secteur » (j’ai testé 5V et 9V), la portée tombe à quelques centimètres. En mettant une LED sur la sortie data celle-ci est tout le temps allumée, elle scintille un tout petit peu lors de la réception des données mais avec le voltmètre ça ne passe jamais en dessous du seuil « bas ».
    Y’aurai-t-il des choses à faire lors de l’utilisation d’alim secteur ?

    Merci d’avance pour vos lumières

    Répondre
    1. Idleman Auteur de l’article

      Normalement non, ton alim est peux être de mauvaise qualité, en conséquence l’alim ne serait pas stable ce qui pourrait causer parasites et dysfonctionnements mais ce sont de simples suppositions :)

      Répondre
  80. Michelgard

    Bonjour,

    Déjà merci pour tous ces tuto qui m’ont redonné envie de refaire de l’électronique après quelques années d’arrêt.

    Je bloque sur la réception de température. Je reçois une valeur (pas très juste) toutes les 100 fois… Même si je place les 2 module cote à cote.
    J’ai bien branché le récepteur et l’émetteur sur des alim indépendantes. et l’émetteur est sur 9 volts.
    La seul différence c’est le ATMEGA 328 j,ai un 328P je ne sais pas la différence.
    J’ai bien des 328 simple mais je n’arrive pas à les programmer avec ma carte Duemilanove que ce soit sur le socle de la carte ou avec un montage externe j’ai une erreur de transmission.
    Si je peux avoir de l’aide merci
    Michel

    Répondre
  81. kamina

    Salut tous le monde !
    est-ce possible de la fréquence 433 soit saturé ?

    car j’ai installer 7 détecteur de fumé et il communique en rf433,
    quand je branche le récepteur (rf433) sur ma carte je ne vois ( oO ) même pas les parasites .

    Merci de vote réponse !! Xo

    Répondre
  82. Spiritus

    Bonjour,

    Je me demandais si on étais obligé de passé par un arduino pour émettre la température , peut t’on s’en passer ?

    Merci d’avance de votre réponse.

    Répondre
    1. Idleman Auteur de l’article

      Il te faut un micro controleur ou traiter et transmetttre l’info, pas obligatoirement un atmega, ça eux être un PIC ou autre micro contrôleur.

      Répondre
  83. Simon

    Peut on remplacer le résonateur céramique par un Quartz ?

    Répondre
    1. Idleman Auteur de l’article

      Oui, mais le circuit sera plus compliqué, et risque de te demander 2 quartz

      Répondre
  84. fabrice

    Bonjour,

    Tout d’abord, bravo et merci pour ce partage de connaissances !

    J’ai comme projet de remplacer la DS18B20 par un DHT22. Mais tout d’abords, je souhaite réaliser ton tuto avant de m’aventurer dans un changement de code, et donc quelques nuits blanches en perspective !

    Mais revenons à la DS18B20 : j’ai une arduino UNO, un Raspberry Pi B+ dans lequel j’ai les librairies Wiring Pi.
    – J’ai donc programmer le l’Atmega328 directement sur la carte de l’Arduino (Fichier ->Ouvrir->Capteur_temperature.ino// et là il me dit qu’il doit créer le dossier Capteur_temperature->Ok-> télerverser->je débranche)
    – J’ai télécharger le dossier hcc2 et l’ai mis dans /var/www via Filezilla
    – Modifier les permissions via Putty (il faut recopier le code, et non pas Copier/Coller, pour des pb d’ASCII)
    – Réaliser les branchement avec une LED à l’emetteur et au récepteur
    – Réaliser ton branchement (avec la résistance de 10k), et le data du récepteur sur le GPIO 26 (qui semble correspondre au Wiring Pi n°25 c’est bien ça ??).
    – Je lance tes lignes de commande : « sudo ./radioReception /var/www/hcc2/action.php 25 » (sudo car sinon j’ai acces denied)
    « Démarrage du programme
    Pin GPIO configuré en entrée
    Attente d’un signal transmetteur »

    Précisions :
    – La Led du transmetteur clignote toutes les 6s, celle du récepteur clignote sans arrêt, et se stoppe 0.5s à l’instant ou l’émetteur clignote, puis clignote intensément 0.5s e reprend son clignotement normal. Pfiou, j’espère que j’ai été assez clair !
    – J’ai essayer avec […]/action.php 26
    – Vérifier mes branchement, apparemment bons.

    As tu une idée ? A ce stade quels sont les pbs que je peux éliminer et à contrio vérifier ? Après tout ce travail fourni j’ai longuement hésiter et chercher par moi même, mai là je t’avoue que je pêche !
    Merci d’avance l’ami !

    Répondre
  85. Jean-Marc

    Bonjour Idleman,

    Super tuto, merci de partager tes expériences. Le matos est commandé… Une petite question en attendant
    Dans le texte tu dis :
    « La puce Atmega originellement implantée sur l’Ardunio doit être déclipsée sinon c’est elle qui sera programmée »
    Dans ce cas pour quoi ne pas monter le puce Atmega à programmer sur la carte plutôt que de passer par un montage externe sur breadboard ?

    Merci d’avance pour ta réponse

    Répondre
  86. Adrien

    Hello idleman, et merci beaucoup pour tous ces tutos, claires, complet, nickel!!
    J’aurais toute fois une questions a poser: j’essaye désespérément, de trouver le moyen d’isoler en quelque sorte le signal émit par l’émetteur que tu propose dans tes tutos, afin que seul la réception de CE signal et pas un autre soit pris en compte par la framboise, parce-que sinon mon système s’activerais en permanence avec toutes les interférences, voila si tu pouvais me guider sur un site ou quoi que ce soit pouvant m’aider je t’en serais encore plus reconnaissant !
    Bonne continuation !

    Répondre
  87. didjoss

    Tout d’abord FELICITATION pour tout le travail effectué !
    C’est une véritable mine d’or.
    Mais… Xo j’ai trouvé un pti bug dans Capteur_temperature.ino car dés la température est négative… cela ne fonctionne plus.
    LE bug est au début de la routine itob
    if (integer>0) {
    positive=true;}
    else {
    positive=false;
    // il faut mettre integer à positif !
    integer=-integer;
    }
    sinon le test dans la boucle suivante ne fonctionnera pas et la décrementation non plus…

    Mais c’est un excellent travail ! :)

    Répondre
  88. Frck

    bonjour a tous
    et merci pour cette caverne DIY…
    c’est exactement ce que je recherche pour m’essayer a la domotique.

    je me penche sur mes sondes et capteur diy.
    et j’aurai quelque questions sur ton montage.

    j’ai besoin de 6 capteur filaire a brancher sur mon arduino pour la maison et deux sonde extérieur en wifi.
    je ne trouve que des tuto pour branché qu’une seul sonde type DTH22 en filaire .
    – comment organiser le branchement des capteur filaire sans prendre trop de place sur le gpio ?
    -par quoi remplacé la puce Atmega328 par un model plus compacte et changer le capteur par un DHT22 et pouvoir alimenté le tout par 2 piles AA sur les capteur ( 433mhz) .

    mon rêve faire un module 4en1 pour l’extérieur(luminosité, temp/hydo ,mouvement) style AEON LABS DSB05
    si tu a des liens dans tes favoris je suis preneur…
    merci a cette grandissante communauté….

    Répondre
  89. oliv

    Salut

    Super article, je vais tester ça sous peu.
    Je voulais juste savoir si on peut remplacer l’atmega par un adruino mini ou nano directement (et est ce qu’il y a des modifs à prévoir dans ce cas ?), on peut trouver des copies de mini/nano sur ebay quasi au même prix que l’atmega seul (http://www.ebay.fr/itm/181599738711 ou http://www.ebay.fr/itm/171502048331?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649).

    et deuxième question, est ce que qqn à déjà testé ce genre d’antenne : http://www.ebay.fr/itm/331345964745?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
    savoir si ça change vrmt qqch niveau portée ou pas du tout.

    merci bien
    a+

    Répondre
  90. dge45

    bonjour
    j’ai in souci avec les permission sur le raspberry pi

    Pensez a régler les permissions en lecture/écriture dans fichiers comme dans les autres tutos
    (si vous ne voulez pas vous faire chier, faites le temps des tests:

    sudo chown –R www-data:www-data /var/www/hcc2
    sudo chmod –R 777 /var/www/hcc2

    sa fonctionne pas sa me met des message :
    root@DGE-box ~ $ sudo chown –R www-data:www-data /var/www/hcc2
    chown: utilisateur non valide: « –R »
    root@DGE-box ~ $ sudo chmod –R 777 /var/www/hcc2
    chmod: mode non valide : « –R »
    Saisissez « chmod –help » pour plus d’informations.
    merci de pouvoir m’apporter une solution

    Répondre
    1. amissan

      slt
      vraiment super intéressant ton tuto, je peux avoir le code c++
      merci^^

      Répondre
    2. cl3m

      essaye avec un petit r : -r

      Répondre
  91. Emmanuel

    Bonjour à tous,

    J’attends toujours mes atmega pour commencer ce montage. Du coup en attendant je me pose des question pour améliorer la portée.. J’aimerais utiliser une tension de 9v (pile) car jen’ai pas de prise ou je souhaite mettre ma sonde. Du coup je me demande quel adaptation je dois faire pour éviter de grille mon atmega328…

    Comme tu parle de minimum 5v je me demane à combien on peu monteBonjour à tous,

    J’attends toujours mes atmega pour commencer ce montage. Du coup en attendant je me pose des question pour améliorer la portée.. J’aimerais utiliser une tension de 9v (pile) car jen’ai pas de prise ou je souhaite mettre ma sonde. Du coup je me demande quel adaptation je dois faire pour éviter de grille mon atmega328…

    Comme tu parle de minimum 5v je me émane à combien on peu monter? Une idée? Merci en tout pour prendre le temps de partager tous ces schéma et tutos!
    r? Une idée? Merci en tout pour prendre le temps de partager tous ces schéma et tutos!

    Répondre
  92. Manu

    Salut,

    si il y a des intéressés j’ai combiné la partie de ton code idleman pour récupéré la valeur de la sonde avec le code qui simule une sonde Oregon (ref ici http://goo.gl/Xn5D08 ) . Code différent mais montage identique. L’idée c’est que si vous avez déjà un RFXCOM de branché à votre Pi pas besoin de rajouter un capteur RF avec une alim dédié (encore des fils :s ).

    Je travaille également pour améliorer ce code et y ajouter une seconde sonde.

    Le code est ici : http://goo.gl/HcLloa

    A+

    Répondre
  93. JO

    Salut, tout ça est très intéressant mais j’ai deux questions concernant ce tutoriel, sachant que je n’y connais rien encore : le arduino il ne s’est qu’à programmer, pas à être branché en permanence au circuit, c’est bien ça ? Et enfin, que faire pour mesurer l’humidité d’une plante au lieu de la température ? Merci d’avance :D

    Répondre
  94. chevalier pierre

    Bonsoir
    j’ai lu avec attention le blog de idleman
    http://blog.idleman.fr/raspberry-pi-18-construire-une-sonde-de-temperature-radio-pour-7e/
    je voudrais quelques précisions
    je voudrais mettre 2 sondes dans ma résidence secondaire
    faut il avoir 2 carte Arduino (une pour chaque sonde)?
    faut il avoir sur le raspberry 2 récepteurs (un pour chaque sonde)?
    quelle distance maxi entre émetteur et récepteur ?
    peut on avoir des breadboard plus petit?
    Cordialement
    Pierre

    Répondre
  95. chevalier pierre

    bonjour
    je viens de mettre en place votre tuto18
    il me renvoie
    -127.00
    positif
    pouvez vous m’aider ?
    cordialement

    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 »