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 à 22€. 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 à 37€ : 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








65 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..

        • Bonjour J’ai le même problème que toi, la première fonctionne toujours bien mais les suivantes ne sont vues qu’une seule fois à l’initialisation dans domoticz.Je ne comprends pas pourquoi.J’ai essayé de reprogrammer les dispositifs dans domoticz mais cela ne change rien. Quelqu’un a une idée ?
          Merci d’avance

  5. Bonjour Ben et merci pour ce tuto très clair. Je suis retourné en enfance quand je faisais de l’électronique avec mon père !
    Donc pour amortir le cout de fabrication, je me suis lancé direct dans la fabrication de 10 sondes ! Le pire elles marchent toute (enfin pour le moment sur la platine)
    Je voulais faire une sonde un peu plus particulière pour mesuré la température de mon eau de chauffage. Est-ce que tu aurais une idée de quelle sonde il faudrait et s’il faut modifier le circuit/code ?
    Merci d’avance pour ta réponse.

    • Hello et merci pour ton comm, ça fait plaisir !
      10 sondes ça commence à causer !! 😀
      Ta question est intéressante, tu peux te tourner pour cela vers la sonde DS18B20 qui est une sonde étanche que l’on peut donc immerger dans l’eau : https://amzn.to/2PKZhRg
      Au niveau du code, tu dois simplement décommenter la ligne #define DS18B20 et recommentez la ligne de ta sonde DHT. Le script a été conçu pour les 3 types de sonde (DHT11, DHT22 et DS18B20), ça tombe bien !
      Par contre je n’ai jamais testé avec ce genre de sonde donc si tu te lances tu pourras me reconfirmer si ça marche ! 😉
      ++ et bon courage !

  6. En fait, j’ai trouvé comment faire. Tu as raison la sont DS18B20 peut faire l’affaire pour mon montage, mais sans la protection waterproof.
    Par contre, comme je vais mesurer l’eau partante et entrante, je vais avoir besoin de connecter 2 sondes sur le montage mais j’ai un doute. Dans ton code, il y a ce joli schéma :

    +——-+
    1|* |8 (+)
    Data Sonde 2| |7
    TX 433 3| |6 Switch B (optionel)
    (-) 4| |5 Switch A (optionel)
    +——-+

    Pour brancher mes 2 sondes, il faut que je les relie sur les pattes 5 et 6 et rien sur la 2.
    Ensuite au niveau du code, il faut simplement que je décommente ca, ca suffit ?
    //#define SWITCH_A
    //#define SWITCH_B

    Merci encore pour ton aide. Dès que ca marche, je te fais un feedback complet avec photos.

    • Hello !
      Alors là ça dépasse mes compétences car je ne suis pas le concepteur du code en question.
      Je te conseille de contacter son auteur pour lui poser la question, tu trouveras son mail au début du script. 😉
      Good luck !

  7. Bonjour,
    Je souhaiterai créer une sonde d’humidité du sol sur le même principe, c’est possible ? La programmation de la sonde doit être différente j’imagine.
    En tout cas merci beaucoup pour tout ces super tuto, simplement parfait !

  8. Bonsoir,

    J’ai réalisé ce tuto, j’utilise jeedom avec un RFlink, la température remontée est fausse d’une 15aine de degré, j’ai essayé avec et sans résistance, avec et sans condensateur, je ne trouve pas de solution…

    Avez-vous déjà eu le cas et savez vous ce qu’il se passe?

    • Salut à toi ! J’ai eu le cas souvent de sondes un peu défectueuses notamment au niveau de la mesure d’humidité (30-40% en plus…) mais jamais sur la température. As-tu une autre sonde DHT sous la main pour savoir si ça vient du matériel ?

      • Salut, tout d’abord, merci pour ta réponse, j’ai commandé un autre sonde et refait un essai, pour l’instant, ça ne marche pas…
        Je cherche de mon coté, si je trouve, je vous tiens au jus

  9. Salut !
    Petit retour sur ton tuto : j’ai fait 11 sondes reparties dans toutes la maison j’ai maintenant la température en temps réel 🙂
    Mes petits « conseils » :
    J’avais utilisé le cuivre d’un câble antenne pour faire l’antenne sur les modules… gros pas pratique et pas très efficace. j’ai pris du câble RJ45, et récupéré les paires dedans. coupé à 17.3cm, sur chaque module ca fonctionne parfaitement. Mur porteur en béton, plancher béton d’un bout à l’autre de la maison ca fonctionne !
    Pour la durée de mise a jour, si vous utilisez Domoticz vous pouvez laisser 5 min soit environ 37 cylces car les logs enregistrent toutes les 5 min.

    Je n’ai plus qu’a piloter ma VMC et radiateur en fonction de la temp/humidité 🙂

  10. Bonjour, merci pour ton tuto. Je me suis revu au collège entrain de souder les composants sur circuit imprimé. J’ai réussi 4 sonde sur 5 tentatives (surement un attiny qui merde…) résultat plutôt pas mal pour du DIY…
    Au passage, je tiens à te remercier car j’ai installer un rasbperry avec un rfxcom et je crois que j’ai entièrement copié ta configuration domotique, j’ai utilisé tous tes modules et ai même acheté sur le boncoin un compteur OWL!
    Sinon pour en revenir aux sondes, rapport qualité prix avec l’arduino ect, on en ressort à pas loin de 5 euros si on tire bien les prix sur les sites chinois voire sur ebay.
    Pour les non manuels, j’utilise le même type de sonde prête à l’emploi qui fonctionne réellement bien sur rfxcom
    https://www.banggood.com/fr/Digoo-DG-R8H-433MHz-Wireless-Digital-Hygrometer-Thermometer-Weather-Station-Sensor-for-TH11300-8380-p-1178108.html?gmcCountry=FR&currency=EUR&createTmp=1&gclid=EAIaIQobChMI7dTB9M6T4QIVFBLTCh1Aagq8EAEYASABEgLhKPD_BwE&cur_warehouse=CN
    Le prix descend dès que vous en prenez 3 pour info;
    Attention une autre sonde qui semblerait plus sympa car doté d’un écran digital nommé DG-R8S est beaucoup moins fiable à la longue…
    Encore merci!!!

  11. Bonjour,
    tout d’abord je tiens à vous remercier pour votre partage et vous féliciter pour cette article (et les autres) qui sont très bien écrit et très clair.
    Je travaille pour la recherche dans le domaine des sols et de l’hydrologie.
    Nous avons comme projet de mesurer la température/humidité à différents point sur une parcelle agricole avec un budget réduit.
    Votre blog et mes compétences me permettrons de fabriquer très facilement ce capteur.
    Par contre, nous ne pourrons pas utiliser le RFXcom sur le terrain (faute d’alimentation électrique et trop énergivore pour des batterie).
    Du coup ma questions, si vous en avez la réponse, est il possible de récupérer les données envoyées par le DHT22 avec l’émetteur 433 sur un arduino UNO vvoir mega avec un récepteur 433 ?

    Merci d’avance pour votre aide et réponse.

    • Bonjour et merci pour votre comm. Ça fait plaisir de voir qu’on peut aider. Malheureusement je n’ai pas la réponse à votre question mais il me semble que ça doit être possible cependant. À voir si l’on trouve des tutos la dessus sur google…
      Merci et à bientôt sur tutomotique ! 😉

      • Bonjour,
        pour les intéressés, j’ai réussi à récupérer les datas sur un arduino en utilisant le récepteur 433 qui va avec celui proposé dans ce tuto et avec la librairie VirtualWire (cf lien : https://www.carnetdumaker.net/articles/communiquer-sans-fil-en-433mhz-avec-la-bibliotheque-virtualwire-et-une-carte-arduino-genuino/).
        ATTENTION : pour que cela fonctionne, il faut bien prendre la librairie DHTlib pour DHT11, 22, …. dispo ici : https://github.com/RobTillaart/Arduino/tree/master/libraries (normalement, c’est celle utilisée sur ce tuto).
        J’avais une librairie pour DHT qui ne fonctionnait pas sur une puce Attiny85 lors de la compilation (j’ai mis du temps à comprendre).
        Pour la programmation de l’ATTINY85, il faut suivre les même étapes présenter dans ce tuto.

        Code émetteur dans l’Attiny85 :
        /**
        Exemple de code avec la bibliothèque VirtualWire – envoie data DHT22 par appuie BP
        BPH envoie valeur humidité
        BPT envoie valeur temperature
        */

        #include
        dht DHT;
        #define DHT22_PIN 2 //broche 7 (pin2) de l’attiny85

        #include
        uint8_t PinRF = 1; //broche 6 (pin1) de l’attiny85
        /** Broches pour les boutons
        const byte BPH = 3; //broche 2 (pin3) de l’attiny85
        const byte BPT = 4; //broche 3 (pin4) de l’attiny85
        //variables float lecture capteur
        float hum;
        float temp;

        void setup()
        {
        pinMode(BPH, INPUT_PULLUP);
        pinMode(BPT, INPUT_PULLUP);
        // Initialisation de la bibliothèque VirtualWire
        // Vous pouvez changez les broches RX/TX/PTT avant vw_setup() si nécessaire
        vw_set_tx_pin(PinRF);
        vw_setup(2000);
        }

        void loop()
        {
        if ((digitalRead (BPH) == LOW) && (digitalRead (BPT) == HIGH))
        {
        DHT.read22(DHT22_PIN);
        hum = DHT.humidity;
        // N.B. La constante VW_MAX_MESSAGE_LEN est fournie par la lib VirtualWire
        vw_send((byte*) &hum, sizeof(hum)); // On envoie le message
        vw_wait_tx(); // On attend la fin de l’envoi
        }

        if ((digitalRead (BPT) == LOW) && (digitalRead (BPH) == HIGH))
        {
        DHT.read22(DHT22_PIN);
        temp = DHT.temperature;
        // N.B. La constante VW_MAX_MESSAGE_LEN est fournie par la lib VirtualWire
        vw_send((byte*) &temp, sizeof(temp)); // On envoie le message
        vw_wait_tx(); // On attend la fin de l’envoi
        }
        }

        Code récepteur sur Arduino :

        /**
        Exemple de code pour la bibliothèque VirtualWire – recuperation DHT via Attiny85
        */

        #include

        /** Différents messages de commande */
        float hum;
        float temp;

        void setup() {
        Serial.begin(9600);
        // Initialisation de la bibliothèque VirtualWire
        // Vous pouvez changez les broches RX/TX/PTT avant vw_setup() si nécessaire
        vw_setup(2000);
        vw_rx_start(); // On peut maintenant recevoir des messages
        Serial.println(« Go ! »);
        }

        void loop()
        {
        byte taille_message = sizeof(float);
        // On attend de recevoir un message
        vw_wait_rx();
        if (vw_get_message((byte *) &hum, &taille_message))
        {
        Serial.print(« Humidité = « );
        Serial.println(hum); // Affiche le message
        }

        if (vw_get_message((byte *) &temp, &taille_message))
        {
        Serial.print(« Température = « );
        Serial.println(temp); // Affiche le message
        }
        }

  12. Bonjour,
    Merci pour ce tuto complet.
    J’ai un soucis, la sonde est bien vu par un rflink diy, mais aucune inclusion dans jeedom…
    La sonde DHT22, enfin l’ensemble est il bien reconnu par jeedom avec un rflink ?

  13. Bonjour
    Merci pour ce tuto qui me permet d »entrer dans le monde de la domotique. Bien que j’ai suivi toute les étapes à la lettre je n’arrive pas a téléverser le programme dans le tiny85
    j’ai ce message d’erreur
    avrdude: Expected signature for ATtiny85 is 1E 93 0B
    Double check chip, or use -F to override this check.
    Mauvais microcontrôleur trouvé. Avez-vous sélectionné la bonne carte dans le menu Outils > Type de carte ?
    avez vous une idée de la raison?
    merci pour votre aide
    cdtl
    franck

    • Bonjour
      Je viens d’avoir le même problème que toi et il semble y avoir un problème sur les attiny qui ne seraient pas des ’85’ mais des ’13’ d’après la signature du composant.

  14. Bonjour,

    Lorsque j’essaie de téléverser le fichier attiny85_TempHumPir_433.ino sur l’Attiny une erreur apparaît : ‘WDTCR’ was not declared in this scope

    Comme je n’y connais rien à ce code je ne sais pas où il faut la déclarer ni même quel valeur lui donner. Vous avez une idée ?

  15. MCUSR &= ~(1<<WDRF);
    // start timed sequence
    WDTCR |= (1<<WDCE) | (1<<WDE); // ligne 546 concernée par l'erreur
    // set new watchdog timeout value
    WDTCR = bb;
    WDTCR |= _BV(WDIE);
    }

  16. Bonjour
    J’ai suivi le tuto à la lettre mais il n’y a qne la première qui fonctionne, les autre ne sont vues qu’une seule fois à l’initialisation. Quelqu’un a une idée ?
    Merci pour votre aide.

  17. Bonjour, je n’arrive pas à le faire fonctionner avec un DS1820.. j’ai bien adapté:
    #define DS18B20
    //#define DHT11
    //#define DHT22
    … mais domoticz ne remonte rien, contrairement a une utilisation avec un DHT…

    une idée?

    • Bon, j’ai finalement réussi avec le DS1820…par contre je ne recoit que la 1ere mesure et ensuite plus rien, même en décommentant la ligne //#define ALWAYS_SEND

  18. Bonjour,
    tout d’abord, merci pour les différents articles de ce tutomotique, très clairs. Merci aussi pour les commentaires très constructifs de certains des lecteurs.
    Voilà, je possède des volets roulants Somfy RTS qui ne retournent pas d’indication de position (et j’en rage !). Alors j’imagine une sonde DIY (c’est pourquoi je poste ceci sur cet article) basée comme cette sonde sur un Attiny et un module 433, mais qui lirait la valeur de plusieurs (au moins 2) photorésistances ou capteurs optiques. cette sonde serait fixée sur le coté du coffre du volet et verrait défiler des étiquettes collées sur l’extrémité des lames du volet et indiquant en binaire le n° de la lame.
    Par exemple, avec seulement 2 photorésistances, on aurait les étiquettes Noir-Blanc, Blanc-Noir et Noir-Noir à coller sur la première lame, sur la lame du milieu et sur la dernière lame d’un volet blanc (Blanc-Blanc est inutilisé car correspond à toutes les lames sans étiquette). (Avec 3 photorésistances on peu faire plus précis). En fonction du dernier code transmis par la sonde et du sens de rotation du moteur, on peu se faire une bonne idée de la position du volet.

    Quelqu’un a-t-il des avis ou des conseils au sujet de ceci ou a-t-il connaissance d’une telle réalisation ou d’un autre dispositif pour connaitre la position d’un volet roulant sans retour de position ?

    Dans l’attente (et l’espoir) de vos retours, cordialement.

  19. Bonjour,
    pour ma part le montage fonctionne bien avec un DS1820, par contre j’ai un gros problème de consommation de batterie. J’ai mis une pile 9V avec un petit régulateur pour abaisser la tension à 5V environ, pile vide en 4 jours !!!
    J’avais mis le sleep à 8 (donc 8×8=64s)
    Si quelqu’un a un idée je suis preneur … Merci

    • Bonjour
      J’ai fait la même erreur… En fait le régulateur consomme. J’ai pu passer à env 1 mois en supprimant le régulateur, piles 4×1.5v. Envoi tous le 1/4heures et send always décommenté.
      J’ai pas fait mieux.
      A+

  20. Après 6 mois d’utilisation avec des batteries lipo type 18650 en 2s et une configuration avec une émission toutes les 64 secondes ça a consommé entre 350mAh et 550mAh. Donc pour des éléments de 1300mAh ça dure 2 ans sans recharger.

    Par contre j’ai beaucoup d’aléas dans les remontées, dès fois c’est toute les minutes comme configurée mais souvent j’ai 10 minutes voir 30 minutes sans remontées. Je ne me l’explique pas. Là j’ai rechargée les configuration de chaque sonde avec une remontée de mesure toute les 2 minutes (15 x 8 secondes). J’ai mis toutes les sondes à 3 mètres pour vérifier si les mesures remontent sont proches. En l’occurence une sonde a une hygrométrie qui est à 30% au dessus des autres et dans domoticz je n’ai pas trouvé d’endroit pour indiquer un offset (pour la température il y a). Bref, même à 3m j’ai les mêmes aléas avec 30 minutes sans remontées… A noter que j’habite une maison et que mes voisins sont à 50m chacuns. Je capte bien d’autres interrupteurs en 433mhz mais pas non plus une flopée. Je sèche, si quelqu’un a une idée… C’est problématique car je souhaitais utiliser ces sondes pour gérer mes chauffages électriques plus finement, là c’est rapé.

  21. Super tuto qui m’a permis de fabriquer deux sondes supplémentaires pour ma domotique ! (et certainement d’autres encore !).
    j’ai customisé le code pour y ajouter deux led d’état (récup température et envoi données + niveau bas batterie) que je peux éteindre en enlevant un cavalier pour économiser les piles.
    j’ai créé un petit PCB pour y mettre tout ça
    photo :
    https://nsa40.casimages.com/img/2020/05/15//200515043457322028.jpg

    juste une remarque, a priori le ATTiny85 tolère une tension jusqu’à 2,7 volts selon la doc. en mettant l’alerte de niveau bas de piles à 2600mV comme par défaut dans le script, le ATTiny ne semble déjà plus fonctionner à ce niveau de tension (en tout cas j’ai essayé chez moi, il ne fonctionne plus vers ces valeurs de tension).
    j’ai augmenté ce seul à 2750mV pour avoir l’avertissement de tension faible avant qu’il ne marche plus…

  22. Bonjour,
    J’ai un petit don pour réparer l’électroménager mais je n’ai vais jamais franchi le pas d’essayer de créer. Cet article m’a convaincu que je devais m’y mettre : matos commandé ! 🙂

    Juste quelque questions de novice :
    – a quoi sert la résistance ? Pourquoi 5.1K ? Comment la calculer, et qui protege-t-elle ?
    – tu commande des condensateurs 10uF mais je n’ai pas compris leur utilité. Ils ne sont pas dans le schéma ?
    – je vais sonder toute ma maison (et jardin, et aquarium…) du coup je me demande comment augmenter la portée radio. En montant une antenne sur ATN (j’ai vu un comme avec du RJ45 plus haut, je vais tester ), mais pour la puissance électrique, si je met des piles AAA ou bien si je met plus de 2 piles Aqa en serie, comment calciller la portée en fonction de l’alim ?

    Merci je redécouvre avec mes restes du collège alors ça va piquer. Il ne me reste que U=R.I environ ^^

  23. Bonjour,
    Tout d’abord bravo et merci pour votre montage. Une idée me vient, celle d’utiliser ce montage pour fait un capteur d’ouverture de porte Aussi, savez vous quelle est la consommation de ce montage et/ou avez-vous un retour d’expérience de la durée des piles ? car en remplaçant les 2 piles par une petite cr123A par exemple, cela deviendrait un capteur de porte très bon marché à l’utilisation, d’autant que le signal ne serait envoyé que lors des ouvertures fermetures, aller, une dizaine par jour.
    Merci par avance pour votre réponse.

  24. Je comprend mal la réception du signal par le Raspberry pi. Si on a 4 sonde, est-ce qu’on doit mettre 4 récepteurs? Je comprend bien l’envoie du signal, mais je comprend mal la réception….

  25. Bonjour,

    Je trouve l’article super intéressant, je regrette de ne pas l’avoir trouvé Ya quelques mois.
    Je n’arrive pas a télécharger les fichiers programmes.
    Est’il possible de remettre le lien en fonctionnement ?

    Merci d’avance a vous

Répondre à CHD Annuler la réponse

Please enter your comment!
Please enter your name here