Root » Serveurs » Chauffage » Mon installation » 2020 » Logs
Enregistrement sur carte SD
Commande par arduino et servomoteur
Electronique
Dans un chapitre précédent, nous avons ajouté une imprimante pour pouvoir suivre l'évolution de la température. Mais une suite de chiffres ne montre pas parfaitement l'évolution des températures.
-

-

Sur une page précédente, nous avons ajouté une imprimante sérielle pour voir l'évolution de la température et des paramètres principaux de l'installation, notament la position du servo-moteur. En un coup d'o&eulig;il, on peut voir les paramètres de l'installation. A l'encre mauve typique (pour ceux qui ont connu le duplicateur à alcohol (Ronéo): c'est l'encre violette qui tient le coup le plus longtemps). Si vous le pouvez, utilisez du papier couché au lieu du papier bouffant (le papier de journal ordinaire): les caractères seront mieux visibles, même avec le ruban qui a déjà imprimé des milliers de caractères.

Mais ces chiffres ne montrent pas parfaitement le fonctionnement de l'installation. On voit sur les chiffres qu'il y a un léger overshoot, mais quelle est la forme du graphique des températures. Est-ce qu'il y a une ondulation régulière ou des pics et des creux instables?

Pour cela il faut tirer des graphiques. Arduino ne peut pas le faire directement, par contre il peut écrire un journal (log) dans un fichier sur carte SD. Il existe des shields qui permettent d'écrire sur une carte SD. Il faut également installer les instructions nécessaires avec un include. Les routines peuvent accéder les cartes SD formatées FAT-16 et FAT32. Ecrire dans un fichier est tout aussi simple que d'envoyer une ligne de caractères à l'imprimante.

Le format FAT est tellement simple que les routines peuvent être incluses dans la mémoire de l'arduino. Ce format a été développé à un moment où les ordinateurs étaient bien moins puissants qu'actuellement. Le format a également été utilisé par d'autres appareils: des camescopes et de stélévisions.

SPI

L'interface de la carte de mémoire utilise le protocole SPI (serial peripheral interface) qui est utilisé par plusieurs accessoires. Ce protocole utilise les ports 11, 12 et 13 (MISO master in slave out, MOSI master out slave in, SCK serial clock) et le port 4 (SS slave select). La communication est full duplex (data in et data out simultané possible), c'est le master qui détermine la viteese en fournissant les tops d'horloge.

Plusieurs accessoires utilisant ce protocole peuvent être connectés en parallèle, la sélection s'effectue via le port SS. Les ports utilisés sont fixés dans le logiciel et il n'est pas recommandé de les modifier. Il est généralement possible de choisir un autre port de sélection avec une instruction SD.begin(i); mais il n'est pas possible de changer les ports 11, 12 et 13.

Certains accessoires (shields) ont plusieurs fonctionalités, et il est possible de sélectionner une des fonctions en mettant le port de sélection demandé actif (low). C'est par exemple le cas avec le shield serveur web qui dispose églement d'un lecteur de carte SD. Même si le protocole SPI ne communique qu'avec un seul périphérique, il est nécessaire d'activer le port de sélection correspondant pour que le logiciel (les routine include) puisse fonctionner correctement.

On retrouve ce protocole un peu partout, et même là où on ne l'attend pas, par exemple la communication entre un boitier Canon et l'optique s'effectue avec ce protocole. Les cartes de mémoire MMC et SD utilisent d'office ce protocole, ce qui fait que l'interface peut être limité au maximum. Un shield SD ne contient pas plus qu'une petite puce qui fait la conversion des niveaux. Ce protocole est plus rapide que le protocole I2C (utilisé par exemple dans les magnétoscopes Philips ils y a 20 ans)

Réalisation du graphique

Chaque minute, le logiciel ajoute une ligne
HH:MM TT.TT ttXSSS KKK

Avec
  • HH:MM Temps écoulé
  • TT.TT Température actuelle
  • ttX Température demandée ou mode de fonctionnement auto ou manuel
  • SSS Position du servomoteur
  • KKK Température des gaz
Chaque minute, le logiciel produit 24 octets. Pour remplir une carte de mémoire de 4GB, on peut enregistrer des données pendant 115 jours. La carte est ensuite lue par une application qui va transformer le fichier LOG.TXT en fichier LOG.HTML qui contient des instructions graphiques.

Le premier graphique a été tiré lors d'essais en octobre. Les traits verticalux indiquend quand il y a eu une interruption de l'enregistrement. Les pointillés verticaux indiquent qu'une heure est écoulée.

Le graphique jaune indique la position du servo-moteur qui règle le thermostat de gaz. En fait, la position change constamment entre 60 et 90. Quand la température diminue et passe sous la référence, la position du servo augmente lentempent, tant que le bruleur ne s'est pas mis en route.

Le graphique rouge/bleu indiquent la température effective par rapport à la température demandée. On voit que la température demandée est rapidement atteinte et qu'il y a un léger overshoot. La température mesurée se stabilise un peu au dessus de la température demandée.

Le graphique vert/violet indique la température des gaz d'échappement, avec en vert quand le bruleur est à l'arrêt, la température descend alors jusqu'à environ 25°. Cette température est nécessaire pour indiquer au logiciel si le bruleur est en route ou non.

Un second graphique montre également l'évolution de la température quand le système est déclenché et que seul le thermostat mécanique est actif (deuxième partie du graphique). Alors qu'en fonctionnement automatique (avec commande du servomoteur) la température est stabilisée à environ 0.2°, elle oscille maintenant sur une plage de 1°.

Le graphique ne montre que la température de la pièce, qui varie d'un degré sans servocommande active, mais l'effet est beaucoup plus prononcé que ce que le graphique ne montre. Le chauffage produit également un rayonnement infra-rouge (j'ai d'ailleurs enlevé le capot pour augmenter l'effet de rayonnement). Or ce rayonnement n'est présent que quand le chauffage a une température de plus de 50°. Quand le rayonnement n'est pas présent, on a une impression de froid, et on a tendance à augmenter le chauffage, même s'il y a 18°. En mode automatique, le convecteur reste constamment chaud (mais il est également mis à l'arrêt plus rapidement.

Le dernier graphique disponible se trouve ici.

Publicités - Reklame

-