Fabriquer une sonde de température

Hello les loupiots ! Après une petite période de latence, Tutomotique is back, once again, pour un nouvel article sur la conception de sondes de température 100% DIY (« Do It Yourself ») !

En quoi cela consiste me direz-vous ? Eh bien tout simplement à fabriquer nos propres sondes faites maison à partir de composants électroniques simples et d’un fer à souder. L’avantage de ces sondes maisons DIY, outre le fait de permettre d’apprendre de nouvelles choses, est de coûter beaucoup moins cher à l’achat que les sondes « toutes faites » type Oregon ou autre.

Voyez plutôt :

  • Sonde Oregon température/humidité : 26€
  • Composants pour sonde DIY température/humidité :
    5€ (capteur) + 1.30€ (émetteur) + 3.20€ (puce) + 0.40€ (boitier pile) = 9.90€

Soit moitié moins cher qu’une sonde du commerce !

« Waaah ! Trop cooool ! Je m’y mets tout de suite ! » 😮

Matériel nécessaire

Euh par contre, attendez, j’ai oublié de vous dire un truc ! Oui, parce que ce qui compose effectivement la sonde revient bien à moins de 10 euros mais sauf que, pour pouvoir programmer la puce et assembler tout ça, il va vous falloir :

  • Un fer à souder + du fil : 22€
  • Une carte Arduino : 13€
  • Une breadboard, des fils et divers composants électroniques : 13€

Total : 48€ de frais annexes… Du coup, ça fait tout de suite plus cher… En fait ça vous fera faire des économies à partir du moment où vous en fabriquerez 3 ou plus, pas avant. Mais bon, comme habituellement, il faut voir ça comme un investissement ! 😀 Ces outils pourront peut-être vous servir dans d’autres projets électroniques futurs, qui sait ? Peut-être même deviendrez-vous l’un de ces geeks capables de nous pondre un truc comme ceci ou encore comme cela :

Alors prêt à vous lancer ? On y va !

Les étapes de la conception

Voyons d’abord notre plan d’ensemble. Sachez que la réalisation d’une sonde va se passer en 3 grandes étapes :

  1. La programmation de la puce, « cerveau » de notre sonde, à l’aide d’une carte type Arduino. Lors de cette étape, il faudra connecter notre carte Arduino à un pc et brancher sur cette carte la breadboard sur laquelle on aura préalablement placé la puce, afin de lui envoyer un programme.
  2. Le montage du circuit sur la breadboard, pour tester que tout est ok. Grâce à la breadboard, on pourra réaliser notre circuit électronique sans rien avoir à souder. On insérera simplement les fils et les composants sur la board et l’Arduino.
  3. La soudure des composants entre eux. C’est l’étape finale, à réaliser quand on est sûr que tout est ok. Ça a l’air simple comme ça mais ça demande beaucoup de temps et d’application alors on reste cool… 😎

Une breadboard qu’est-ce que c’est ?
Une breadboard est une carte en plastique avec plein de petits trous dans lesquels on peut insérer fils et composants électroniques pour faire des tests de montage. L’étape de montage sur la breadboard est indispensable pour s’assurer que tout fonctionne bien avant de commencer à souder notre sonde. Pour comprendre comment sont reliés entre eux les PINS d’une breadboard, regardez l’image ci-dessous.

Détails d'une breadboard
Détails d’une breadboard

Et comme rien n’est jamais simple dans la vie, il faut aussi ajouter une étape de « mise en route » de la carte Arduino, étape que vous n’aurez donc à réaliser qu’une seule fois, lors de sa première utilisation. Cette carte nous permettra d’injecter un programme dans la puce de notre future sonde afin que cette puce fasse l’intermédiaire entre le capteur et l’émetteur.

Toujours motivé ? Alors commençons par…

La liste de courses

  • Pour la carte Arduino, je vous conseille en fait une copie moins chère (mais tout aussi fonctionnelle) d’une autre marque : Starter Kit Elegoo UNO à 18€. Cette carte fait le même job, et le kit contient en plus déjà la breadboard, les résistances et les fils dont vous aurez également besoin. Sinon, vous pouvez opter pour une véritable Arduino Uno mais il vous faudra alors acheter une breadboard et des fils en plus (attention à bien prendre des « mâle-mâle »).
  • Un kit de composants électroniques à 8€ : on en aura besoin pour le condensateur 10uF et les résistances de 5.1kΩ (une par sonde). C’est un peu cher pour des composants en principe à quelques centimes l’unité donc si vous avez déjà ça chez vous c’est mieux.
  • Un kit à souder à 22€ : contient un fer à souder, du fil, un support… bref tout ce qu’il faut.

Voilà, avec ça, vous avez tous les outils pour vous lancer, viennent ensuite les composants nécessaires pour la sonde. Il faudra donc, par sonde :

Oui, vous voyez que je vous ai fait des liens vers des lots de 5, vous pouvez aussi trouver ces composants par unité, mais il faut que ça vaille le coup quand même ! 😀

L'achat groupé, ya qu'ça d'vrai !
L’achat groupé, ya qu’ça d’vrai !

Une fois nos emplettes terminées et le matériel en notre possession, on va pouvoir se mettre au travail.

Arduino : mise en route

Nous allons maintenant préparer notre carte « pseudo-Arduino » 🙂 afin qu’elle puisse servir de programmateur pour la puce de notre sonde. Pour cela, téléchargez d’abord l’Arduino IDE et installez-le sur votre machine.

Suivez alors ces étapes :

  • Branchez l’arduino en USB sur votre PC
  • Lancez le logiciel Arduino
  • Sélectionnez dans le menu Fichier -> Exemples -> 11.ArduinoISP -> ArduinoISP (cela ouvre une nouvelle fenêtre avec le programme en question)
  • Toujours dans le menu Outils -> Type de carte -> Arduino/Genuino Uno
  • Outils -> Port -> le COM où il y a l’Arduino
L'interface de programmation Arduino
L’interface de programmation Arduino
  • Et encore Outils -> Programmateur -> Arduino as ISP (!! et non pas ArduinoISP !!)
  • Cliquez sur la flèche « Téléverser » (cercle rouge image ci-dessus)
  • Attendre la compilation du croquis, jusqu’à ce que le message « Téléversement terminé » apparaisse

Votre carte contient maintenant le programme nécessaire pour pouvoir envoyer des programmes à notre puce. Mais il reste quelques options à paramétrer.

  • Rendez-vous donc maintenant dans Fichier -> Préférences
  • En bas, dans le champ « URL de gestionnaire de cartes supplémentaires », copiez cette URL : https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json et cliquez sur OK
  • Puis allez dans Outils -> Type de carte -> Gestionnaire de carte et rechercher « attiny ».
  • Sélectionnez le gestionnaire proposé et cliquez sur « Installer », une fois installé fermer la fenêtre.
  • Maintenant dans Outils -> Type de carte : choisissez ATtiny25/45/85
  • Puis dans Outils -> Processeur : choisissez ATtiny85
  • Et enfin dans Outils -> Clock : choisissez Internal 8 MHz

Good ! Notre carte est maintenant parée pour la suite des opérations. 😉

Connecter la puce à l’Arduino

Il devient nécessaire ici de détailler le fonctionnement de notre sonde et de ses différents composants. Notre sonde est donc composée de 3 élements en plus du boitier contenant les piles (qui nous fournira l’énergie nécessaire au bon fonctionnement de l’appareil pendant quelques années). Le capteur (la sonde DHT22) est chargé de relever la température quand on le lui demande. L’émetteur doit transmettre les données par ondes radio 433 MHz jusqu’au récepteur de notre réseau domotique : le RfxCom. Enfin, la puce (ATtiny) est le chef d’orchestre de cet ensemble et c’est elle qui demande le relevé de température à la sonde pour la transmettre à l’émetteur.

En l’état, ce que l’on cherche à faire est de donner à cette puce un programme qui fera faire à la sonde un relevé de température toutes les X secondes et enverra les données via l’émetteur. Pour cela nous allons connecter notre puce à notre carte Arduino (elle-même branchée en USB) via notre breadboard pour ensuite lui téléverser le programme.
Nous allons donc réaliser le montage suivant :

Schéma de programmation ATtiny85
Schéma de programmation d’une ATtiny85

Faites bien attention à 2 choses en effectuant le montage ci-dessus :

  • Le sens (polarité) du condensateur de 10uF : le côté blanc doit être raccordé à la borne « GND » et l’autre à la borne « RESET ».
  • Le sens de la puce ATtiny a aussi son importance, il faut la positionner de manière à pouvoir lire ATtiny dessus comme sur le schéma (il y a aussi un petit cercle situé en bas à gauche pour détromper).

Le programme de notre sonde

Une fois ces branchements correctement effectués, il faut s’occuper du programme. Je vous propose un programme déjà prêt à l’emploi que vous pouvez télécharger ici :
attiny85_TempHumPir_433.zip
Note : je tiens ce programme de vil1driver du forum de easydomoticz.com qui le tenait lui-même de mulot35 qui le tenait de Olivier Lebrun de connectingstuff.net… Bref, c’est un travail communautaire ! 😀

Vous devez décompresser le zip sur votre poste, puis ouvrir le fichier attiny85_TempHumPir_433.ino à l’aide du logiciel Arduino. Dans le fichier, je vous invite à modifier à votre guise les lignes suivantes (sous le titre « Configuration »):

  • Ligne 56 : L’identifiant de votre sonde : 0xC1 puis 0xC2 pour la seconde…etc…
  • Ligne 58 : le nombre de cycles entre chaque mesure de température (1 cycle = 8 secondes).

Une fois que le programme vous convient, il vous suffit de cliquer sur la Flèche pour le téléverser dans la puce. Quinze secondes plus tard, notre puce est prête à gérer toute seule sonde et émetteur ! 😉

Montage électronique

Schema sonde breadboard
Schéma de la sonde sur une breadboard

Il s’agit maintenant de réaliser sur votre breadboard le montage ci-dessus. Vous pouvez donc laisser la puce là où elle était et retirer les autres fils du téléversage, plus besoin du Arduino dorénavant. On va utiliser pour ce montage les longues lignes rouge (+) et bleu (-) de la breadboard, sur lesquelles on connectera le boitier à pile et les bornes + et – de chaque composant. Pour la résistance, utilisez celle de 5.1kΩ et placez-la bien dans le bon sens (côté vert orienté vers le + rouge).

Une fois le montage ok, vous devriez voir apparaître votre sonde C1 dans les dispositifs sous Domoticz. Soyez patient, car si vous avez réglé le programme sur 1 mesure/minute, cela peut prendre un certain temps, surtout que par défaut la mesure n’est envoyée que si elle est différente de la précédente valeur mesurée.

Soudure finale

Ça y est, vous voyez votre sonde sous Domoticz ? Tout fonctionne comme il faut ? Alors il est temps de passer aux travaux manuels : on va souder tout ça ! 🙂

En gros, il s’agit de réaliser le même montage que précédemment sauf que cette fois-ci, vous serez en 3D et non plus tout à plat comme sur une breadboard. Ce schéma simplifié pourra peut-être vous aider :

Schéma sonde DIY
Schéma simple de notre sonde DIY

Je vous conseille de commencer par relier les 3 composants entre eux de manière serrée (soudure jaune sur le schéma), vous pourrez ensuite ajouter la résistance à votre montage et relier tous ça à la borne « + » puis à la borne « -« . Vous pouvez retourner et incliner les différents composants afin d’essayer de trouver la disposition la plus compacte. Libre à vous aussi d’utilisez des fils pour espacer les éléments ou au contraire les serrer au maximum les uns aux autres. Il est possible également de tordre un peu les « pattes » des composants et même carrément de couper celles qui sont inutiles.

Bref, à vous de voir comment vous préférez faire ! Faire une bonne soudure est moins simple qu’il n’y paraît mais en prenant son temps et en restant calme, on fini par y arriver.

Sonde DIY
La sonde terminée et soudée, c’est le boitier à pile qui prend, de loin, le plus de place

Une fois votre travail terminé, vous pourrez mettre tout ça en boîte si ça vous chante, c’est le moment de faire de la récup ! 😀

Sonde DIY en boîte
La sonde DIY mise en boîte : la classe !

Si vous êtes fiers de vos créations (et je pense que vous le serez !), je vous encourage à m’envoyer par mail les photos de vos sondes DIY, je les publierai alors sur le site.

Alors à bientôt les bricolos !

SUIVANT

PRECEDENT








17 Commentaires

  1. Bonjour,
    j’ai une question concernant la programmation de la puce. je prends bien l’ensemble des fichiers et j’utilise une carte arduino nano. il y a une erreur car le fichier est tros gros.
    j’ai donc pris les fichiers suivants : attiny85_TempHumPir_433.ino, dht.cpp et dht.h ce qui m’a permis de la programmer.
    Par contre lors du test de la sonde j’ai rien. Il me semble bien que tous les fichiers doivent servir et du coup je ne sais pas comment les mettre sur ma puce.
    Avez vous déjà tester cette config avec une carte nano?
    Merci.
    Cordialement.

    • Bonjour,
      Perso j’utilise une carte Uno et donc je ne connais pas spécifiquement le fonctionnement des Nano, mais ça devrait en principe ne pas être différent.
      A quel moment arrive l’erreur « fichier trop gros » exactement ? Si tu utilises bien une puce ATtiny85, je ne vois pas de raison pour que ça ne passe pas car, Arduino Uno ou Nano, ce qui importe ici est de pouvoir envoyer le programme attiny85_TempHumPir_433.ino (avec ses fichiers en include) dans la puce ; donc ça ne devrait pas poser de problème de taille s’il s’agit de la même puce.
      Voilà ce que je peux en dire… 🙂
      à bientôt !

  2. Salut Vieux Ben,
    D’abord merci pour ce tuto, je suis bien parti pour installer des sondes partout chez moi !!
    Ça fonctionne impec avec Domoticz (merci pour ce tuto là également).
    J’aurai aimé y ajouter un capteur de luminosité type photo résistance. Si je vois à peu près comment le câblage devrait se faire, je n’arrive pas à comprendre comment intégrer la lecture et remonté de data à ton code.
    Donc est-ce faisable et si oui comment t’y prendrais tu (câblage et code) ?
    Merci encore.
    P

    • Hello Philippe et merci à toi !
      Alors là j’avoue que tu me poses une colle. En ce qui concerne le code pour les sondes DHT, je t’invite plutôt à regarder au début du fichier .ino les coordonnées du programmeur originel, un certain Olivier, peut-être que lui saura mieux te renseigner. Après, il faut savoir que le script utilise une librairie spéciale pour les sondes DHT :
      http://arduino.cc/playground/Main/DHTLib
      Peut-être que tu devrais alors chercher dans ce sens s’il y a quelque chose de similaire concernant ton capteur de luminosité…
      C’est hélas tout ce que je peux faire pour toi… 🙂
      Merci pour ton intérêt en tout cas ! ++

    • Hello ! Merci pour ton comm. Les données sont envoyées par onde radio 433Mhz vers le Rfxcom. Quant à la portée, je n’ai pas fait de test complet mais je peux te dire que j’ai ce genre de sondes un peu partout dans la maison de la cave au grenier et que je n’ai jamais eu de problème de mauvaise réception. 😉

      • Merci,
        je viens de m’apercevoir que j’ai sauté un paragraphe ou tu aborde le sujet.
        Bon boulot en tout cas. J’ai commander le Raspberry Pi Carte Mère 3 Model B Quad Core CPU 1.2 GHz 1 Go RAM. Je vais m’amuser avec tout ca.
        Bonne soirée

    • Bonjour,
      Comme expliqué dans le paragraphe « Le programme de notre sonde », il suffit de modifier dans le programme le nombre de cycles entre chaque mesure. Sachant qu’un cycle dure 8s, tu peux mettre la variable sur 900 pour 2h de sleep. 😉 ++

    • Bonjour,
      Tu peux essayer de souder un bout de fil dans le trou d’antenne (ANT) de ton émetteur pour voir si ça fonctionne mieux.
      Sinon, question bête : es-tu sûr d’avoir attendu assez longtemps après avoir éloigné ta sonde ? Car il ne faut pas oublier que celle-ci ne transmet les infos que si la température est différente de celle mesurée précédemment. Autrement dit : pas de changement de temp = pas d’envoi de données.
      Voilà, c’est tout ce que je peux en dire…
      Merci à toi !

  3. Bonjour, je suis actuellement en terminale et nous devons créer un projet
    On a decide de travailler sur les ondes et de creer un capteur pour réussir a enregistrer des signaux satellites, radio…
    Mais je ne pas trop le therme des sondes DIY est ce possible avec ce genre de sonde

    • Mmmh, merci pour ta question mais non je ne pense pas… Cette sonde est faite pour transmettre des données et non pas en recevoir. En plus si c’est pour un projet scolaire, vous êtes pas censés créer le truc vous même à partir de composants électroniques simples ? Car là on a dans la sonde un émetteur tout fait 433Mhz. Bref, je pense pas trop pouvoir t’aider sur ce coup… sorry ! 🙂

  4. Merci pour ce tuto. La sonde est efficace et pas cher.
    Cependant, j’ai un soucis lorsque j’en connecte une seconde. Je n’ai plus le retour de température sur les deux.
    Qui a-t-il à faire pour y remédier ?

    • Salut ! As-tu bien penser à changer l’identifiant de ta sonde dans le programme de ta 2ème puce ? (voir partie « Le programme de notre sonde »)
      Si oui, alors je vois pas trop d’où peut venir le souci, ça a toujours bien fonctionné chez moi.
      Bonne chance à toi ! 😉

      • Bonjour,
        Merci pour ton retour. J’ai bien pensé à changer l’identifiant sur ma 2nde sonde. Après plusieurs essais, il s’agirait plus d’un problème de portée de la sonde…
        L’inconvénient, c’est que je ne suis à même pas 10m..

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here