Module PIC V2 - Dataloggeur de température sur carte SD


Ce projet utilise le Module PIC V2 pour effectuer des mesures de teméprature et enregistre les données sur carte SD.

Introduction :


L'objectif de ce projet est de faire l'acquisition régulière de plusieurs capteurs de temépratures puis de sauvegarder les résultats sur un support (carte SD formaté en FAT32), permettant d'analyser les données, tracer des graphiques, etc... Les temépratures surveillées seront, dans mon cas, la température extérieure, la teméprature du salon, la teméprature du garage. Pour le moment seul 3 capteurs seront exploités, mais rien n'empêche d'en ajouter par la suite.
Le projet est, pour l'instant, mené à part, mais en finalité, il s'intégrera totalement dans le projet de monitoring et de suivi de la consommation électrique (Télérelevé EDF), ainsi on pourra mieux apréhender l'influence de la teméprature sur la consommation éléctrique.

Le coeur du système repose sur l'utilisation du module PIC v2. Seule un morceau de platine à bidouille est rajoutée. Elle permettera de recevoir le module PIC v2 ainsi que les connecteurs des capteurs de teméprature.

Les capteurs de temépratures retenus seront des DS18B20 de MAXIM-IC. Ce sont des capteurs de temépratures numériques fonctionnenant sur un bus 1-WIRE (ou I-WIRE ). Je vous invite à aller faire un tour sur le site de MAXIM afin de mieux cerner le principe ce ce bus, mais voici ce qu'il faut retenir :

  • Bus qui peut avoir 2 ou 3 Fil (Gnd, Data et optionnelement l'alimentation, sous conditions),
  • Bus Bidirectionnel,
  • 1 Seul Maître avec 1 ou plusieurs esclaves,
  • Chaques composants possède leur propres Serial ID, ID famille etc.. non modifibale,
  • Des instruction commandes prédéfinies et protocole simple d'utilisation,
  • Une gamme complète de composants (EEPROM, RTC, Capteurs divers, Convertisseurs A/D,etc...)
  • ...

 

 

Comme vous l'aurez compris, sur une sortie Bus 1-WIRE (2 ou 3 fils), il est possible de connecter plusieurs capteurs. Vous trouverz sur le site de MAXIM, une procédure permettant au maître d'identifier les capteurs présents sur le bus (à l'aide d'un algorithme, le serial ID peut être retrouvé).
Une autre méthode serait de lui indiquer, soit directement en inscrivant son ID dans le code (moins pratique lors d'un changement ou ajout de composant, par exemple) soit par une entrée dédiée à l'acquisition de cet ID. Cependant après plusieurs essais, il s'est avéré que lorsque plusieurs capteurs sont sur le même bus et que de grandes longueurs de câbles sont utlisés, il peut il y avoir des collisions, retards, perturbations et problème de timing sur les signaux envoyés et reçus. Le sujets est abordé dans plusieurs pdf sur le site de MAXIM.

C'est pourquoi il y aura un seul capteur par ligne de bus, cela est surtout vrai pour les grandes longueurs de câbles, faute de quoi tous les capteurs situés sur le même bus resteront "muets" car le bus s'en trouve perturbé.

 

Le Fonctionnement :

 

Le principe de fonctionnement du montage est le suivant:

Soft V1.0: (Télecharger)

Le composant Horloge Temps réel(RTC) est programmé avec l'heure actuelle inscrite en "dur" dans le code.
Dès la mise sous tension du montage, le soft scrute en permanance si une carte sd est insérée dans le lecteur et si le verrou de protection en écriture n'est pas mis. Une fois toutes ces conditions remplie, le maître demande périodiquement l'heure à la RTC. Toutes les minutes, le maître demande aux capteurs présents que lui soit retourné la température mesurée. C'est le maître qui demande à chaque capteur de faire l'acquisition de la température. L'heure de la mesure et les temépratures sont enregistrées sur la carte SD, préalablement formatée en FAT32. Un fichier log est créé par jour de mesure. Ainsi pour un jour donné, le fichier correspondant devrait contenir 1440 lignes (60 minutes * 24 heures), soit autant d'acquisitions. La liaison RS232 (avec le convertisseur TTL<>RS232) permet à tout instant de vérifier le bon déroulement du traitement. Toutes les minutes, les résultats des mesures des capteurs, l'heure de la mesure et le debug de la gestion FAT32 est redirigé sur ce port accessible par PC.
Une Led témoin, clignote toutes les secondes pour indiquer que le programme est en vie. Lors d'une écriture sur la carte sd, la led passe alors au fixe le temps de l'écriture. Il est tout à fait possible d'éjecter la carte sd à tout moment pour récupérer les données (éviter quand mêm son extraction lors des phases d'écriture, même si elles sont relativement courtes).

Dans cette version de base, le Bootloader n'est pas intégré, ce qui veux dire que la programmation ou re-programmation du soft se fait uniquement via le connecteur ICSP et non pas par RS232.

 

Evolutions à prévoir:

  • Prévoir le réglage de la RTC par la liaison RS232,
  • Pas de détection de batterie sauvegarde RTC HS,
  • Necessité de modifier le code pour ajouter des capteurs,
  • Stockage local des données, pas d'exploitation temps réel, transfert manuel des fichiers logs,
  • Intégrer le Bootloader pour faciliter la mise à jour,
  • ...

Remarques: Il n'est pas certain que toutes ces évolutions seront apportée à ce projet, cependant le point portant sur le transfert manuel des fichiers logs sera prochainnement résolu dans un autre projet. (Module PIC Ethernet).

 

Les Capteurs de temépratures DS18B20 :


Schéma interne du DS18B20:

Connection du Bus 1-Wire au Microcontrôleur:

Le câblage des capteurs DS18B20 sur fils n'est pas forcément des plus évident, étant donné que ce composant se présente sous la forme d'un boîtier de transistor standard T0-92. Il est impératif de bien isoler les soudures et les pattes du composant avec de la gaine thermorétractable, sans quoi l'accident est vite arrivé. De plus à trop chauffer la soudure il est fort à parier que la gaine isolante du fil fonde et remonte rapidement sur son âme.
Afin déviter ces désagréement, la petit carte suivante va bien aider. Elle est relativment compacte, permet de souder les pattes du capteur sans soucis et d'y relier les fils du bus sans craindre pour la gaine isolante ni pour ses doigts. Rien n'empêche de protéger le tout avec de la gaine thermo, sans pour autant recouvrir le capteur pour ne pas fausser les mesures futures.


La Carte SD FAT32 :

Le système de FAT32 est présenté ICI.

La seule nécessité du projet est, au préalable, de formater la carte en FAT32 sur un PC car le code ne gere pas le formattage de la carte, mais il est capable de détecter si le support est correctement formaté en FAT32 ou non. La carte peux déjà contenir des fichiers, mais il est impératif de ne pas avoir des fichiers avec des noms longs.
Seul le système de nom de fichier court (8 caractères pour le nom et 3 pour l'extension) est pris en compte.
Le code de gestion de la FAT32 vérifie si un fichier log correspondant au jour de la mesure existe déjà. Si le fichier n'est pas présent, il sera alors créé. Si le fichier est déjà existant, il sera complété avec les nouvelles acquisitions.
Le code de gestion de la FAT32 gére le chainnage des fichiers ce qui rend plus souple la gestion des fichiers lorsque celle-ci est faite sur un PC puis passée au montage, par exemple.

 

Schéma de câblage :

Le schéma du Module PIC V2 n'as pas été modifié. La led temoin et les connecteurs des capteurs ont été câblé sur la carte à bidouille, selon ce schéma:

 

Les fichiers de log :

 

Voici un exemple de fichier log enregistré sur la carte SD:


Chaque ligne correspond à un cycle de mesure effectué. Sont sauvegardé, la date, l'heure et les valeurs des températures des 3 capteurs. Tout les champs sont séparés par des virgules, le fichier peut être facilement exploitable par Excel, par exemple.

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

© 2010 Morbak
.