Enregistreur de température very low cost

Enregistreur de température very low cost

On croit que mesurer une température est une chose simple… Mais très compliqué à réaliser, car qui dit température dit toujours température en un point précis. Qu'elle est la température d'un local ? En bas, en haut, proche de la fenêtre, proche du radiateur ou prêt de l'utilisateur ! Il faut donc pouvoir mesurer plusieurs points en même temps pour avoir une bonne évaluation de la température.

Ce très petit enregistreur de température bon marché est basé sur un microcontrôleur Atmel AVR ATINY45 et sur un bus 1-Wire. Il enregistre les températures de plusieurs capteurs 1-Wire dans sa petite mémoire EEPROM de 256 bytes. On communique avec lui au moyen d'une interface RS232 TTL.

 On voit qu'il est tout petit...
On voit que c'est vraiment un tout petit enregistreur de température !
 

Dans ce projet, tout a été simplifié au maximum:

Alimentation 3.7V non régulée au moyen d'un accu Lion de récupération
Utilisation de l'oscillateur RC interne
Interface 1-Wire simplifié
Interface RS232 simplifié


 
 

Le microcontrôleur ATTINY45

Le microcontrôleur ATTINY45 se loge dans un dual line 8 pins, donc très facilement intégrable dans nos projets, il existe aussi une version très compacte SO8W. C’est la 2CV du microcontrôleur, voici quelques caractéristiques de ce composant merveilleux :


 

Le bus 1-Wire de Dallas

Le bus 1-Wire est constitué de seulement 2 fils, data/alimentation et masse ! Tous les composants sont autoalimentés et branchés en parallèle sur le bus. Afin de pouvoir accéder à un composant sur le bus 1-Wire, chaque composant possède une adresse unique gravée en usine. Il n’est pas nécessaire de connaître qui est connecté sur le bus, un algorithme d’inventorisation permet la découverte de tous ses habitants.
Le bus 1-Wire est émulé en programmation par le microcontrôleur. Ceci nous permet de choisir quelles broches on désire utiliser afin de pouvoir simplifier grandement le câblage du connecteur 1-Wire sur la platine. Un petite LED verte basse consommation nous indique son fonctionnement.
 

Les sondes de température DS18B20

Ce sont de petits composants 3 broches en boîtier TO92. Pour aussi ici, se simplifier la vie, ils sont connectés entre eux au moyen de connectique de téléphone RJ12. Facilement on peut étendre son bus en connectant plusieurs capteurs au moyen d'un Y RJ12. La longueur du bus peut-être de plusieurs mètres. Le logiciel détecte automatiquement tous les capteurs connectés sur le bus, il faudra juste les authentifier par ordre d'adresse afin de les retrouver dans les données mémorisées dans l'enregistreur.



La sonde DS18B20
La sonde de température DS18B20 en boîtier TO92 noyée dans une gaine rétrécissante !
 



Le module complet avec une sonde de température...





Et ici avec 2 sondes et le câblage de téléphone RJ12. On voit aussi la batterie Lion (3mm d'épaisseur) qui peut tenir plusieurs années !


 

La connexion série RS232

Les niveaux standards des interfaces RS232 se trouvent entre +12V et -12V. Mais il se fait que la majorité des interfaces RS232 fonctionnent très bien entre 0V et 3V, pour autant que l’on ne dépasse pas quelques mètres de distance et que l’on ne monte pas trop haut en vitesse ! Après simplification extrême, il ne suffit plus qu’une unique résistance pour protéger l’entrée du microcontrôleur de la "haute tension" RS232.
Le protocole RS232 est émulé en programmation par le microcontrôleur très simplement au moyen d'une quarantaine d'instructions. Ceci nous permet de choisir quelles broches on désire utiliser afin de pouvoir simplifier grandement le câblage du connecteur RS232 sur la platine.
 

Le programme

Le programme de ce petit enregistreur de température a été écrit en assembleur avec l'outil de développement AVRstudio disponible gratuitement sur leur site d'Atmel. Il est constitué de plusieurs modules très facilement modifiables à sa guise, ce qui en fait le cœur du système. Au pourra le modifier pour enregistrer des valeurs analogiques ou logiques au lieu de température par exemple. On pourra aussi lui ajouter une extension mémoire EEPROM IC2 de 32kBytes.
Si on laisse connecté l'ordinateur sur le port RS232, on peut faire un affichage en temps réel des points de température mesurées.
 

Alimentation au moyen d'accu Lion

On peut alimenter l'enregistreur au moyen d'une tension non régulée, est doit juste être comprise entre 3.3V et 5.5V. Les accus Lion ont le grand avantage d'avoir avec un seul élément une tension de 3.7V et une autodécharge excessivement faible, ce qui va parfaitement pour notre montage. De plus, ce type d'accu est très utilisé dans l'informatique portable… et on le trouve en grande quantité dans les poubelles spécialisées des magasins d'informatique. Dans les packs de portables "usé", il reste toujours des éléments qui sont encore tout à fait utilisables.
Afin de consommer le moins d'énergie possible, la plus part du temps le microcontrôleur dort et est réveillé par le WatchDog seulement pour la mesure. Avec un accu de 1Ah, il peut fonctionner jusqu'à 10 ans !

Améliorations et idées

On peut connecter sur cet enregistreur un adaptateur Bluetooth/RS232 du style (EmbeddedBlue eb501-SER, www.a7eng.com) afin de pouvoir l'utiliser à distance, par exemple mesure de température à l'extérieur.

Comme indiqué plus haut on peut lui ajouter une extension mémoire de 32'000 points (24 LC256/P, www.microchip.com) pour seulement 4FS en IC2.

En modifiant un poil le code on peut enregistrer pleins d'autres paramètres du style télé-mesure embarquée !

 
 

Le schéma, circuit imprimé et code source...




Le schéma en format Eagle...
Le circuit imprimé en format Eagle...
Le code source...
Le code HEX pour la flash...


 

Les liens

ATTINY45, Atmel, http://www.atmel.com/dyn/resources/prod_documents/2586S.pdf

1-Wire Wikipédia, http://en.wikipedia.org/wiki/1-Wire

DS18B20, Dallas, http://www.maxim-ic.com/quick_view2.cfm?qv_pk=2812

Eagle freeware, logiciel réalisation schéma et PCB, CadSoft, http://www.cadsoftusa.com/freeware.htm

Lion, Samsung, http://www.samsungsdi.com/contents/en/product/battery/type01_ICR18650_24.html

24 LC256/P, Microchip, http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010823

EmbeddedBlue eb501-SER, A7, http://www.a7eng.com/products/embeddedblue/serial/eb501-SER.htm

 

 

(c) GPL 2008, www.zufferey.com