Fabriquer un système de surveillance de la température moteur


Cet article est dans l'esprit "pour les nuls".

Publié originalement sur le blog de 1plus1blog.com

 

Pourquoi faire un tel système alors que les moteurs ont une alarme de température?

Parce-que:

  • les alarmes en question sonnent parfois trop tard (malgré l'alarme existante du bateau, nous avons malheureusement grillé un joint de culasse la saison dernière...)
  • on peut avoir besoin d'une alarme déportée par rapport à celle déjà présente (cockpit/carré)

Coût entre 10 et 30 euros selon la qualité des composants choisis.

Temps: une soirée pour fabriquer le prototype à la maison.

Il existe bien sûr dans le commerce des systèmes tout faits (plus couteux...).

1. Objectif

Voici un système de surveillance de la température moteur. On programme une alarme qui sonnera lorsque la température passera au dessus d'un seuil que l'on aura choisi.

Ce projet permet d'aller un peu plus loin dans l'électronique arduino que le système d'arrosage automatique.

2. Matériel

.

arduino

  • Sonde de température numérique DS18B20 et sa résistance de 4.7Kohms étanche Sa plage de mesure va de -55°C à + 125°C. Je vous suggère d'éviter les sondes bas de gamme copiées sur celle-là... vous risquez d'acquérir un capteur de mauvaise qualité, aux mesures imprécises voire fausses. Comme ce capteur est numérique, vous pouvez l'utiliser sur une longue distance sans détérioration de l'information.

sonde-de-temperature-etanche-ds18b20

buzzer

  • une plaque de tests
  • plaque testcette plaque de test permet de faire des branchements sans soudure, très pratique quand on travaille sur un prototype à la maison.Pour information, ces plaques connectent électriquement certains trous entre eux : les lignes du haut et du bas sont reliées horizontalement (pour relier tous les + et relier tous les -)les trous du milieu sont reliés verticalement (toutes les connexions ne sont pas représentées sur le schéma, mais ça devrait vous suffire pour comprendre)cablageplaque
  • des cables Dupont pour les branchements sur la plaque de test
  • cables dupont
  • Afficheur LCDafficheur

Afin de permettre le branchement des broches de l'afficheur avec le reste du système, il faudra faire un peu de soudure pour souder les strips (normalement fournis avec l'afficheur... enfin ça dépend des vendeurs).

strip

Pour cette soudure, utilisez la plaque de test comme support le temps de la soudure

[gallery ids="8254,8253" type="rectangular"]

  • 1 résistance 220 Ohms, code couleur rouge– rouge– noir - noir
  • 1 potentiomètre 10 Kohms (permet de faire varier la luminosité de l'afficheur) et son bouton

[gallery ids="8070,8071" type="rectangular"]

Pour les fournitures, si vous partez de rien, pensez à acheter un kit initiation (il y en a là aussi) qui contient la plaque de test, des fils, des résistances, buzzer, potentiomètre...

 

 

3. Présentation de la carte Arduino

carte arduino

Pour la petite histoire, Arduino est un projet né dans un bar en Italie. Le but était de mettre à la portée de tous et des étudiants une carte électronique capable de s'interfacer avec d'autres composants (capteurs, moteur, commandes...), pilotables avec un logiciel facilement accessible. Il a été choisi dès le départ de le produire sous licence libre et de mettre à la disposition du public son plan. Ainsi, une carte Arduino ne coûte pas cher, vous pouvez également construire la vôtre à partir de rien  : tous les schémas électroniques et le code source sont disponibles gratuitement sous des licences libres. Cette carte a révolutionné le monde de l'électronique.

Passons à la carte

1: le processeur ou le "cerveau" de la carte

2: prise USB permettant de brancher l'arduino sur un un PC (pour la programmation), une fois la programmation effectuée (on ne la fait qu'une fois). Cette prise permet également d'alimenter la carte arduino en 5V (via une prise 220V- USB à la maison)

3: prise alternative à la prise USB qui permet d'alimenter la carte arduino avec une tension entre 9V et 12V (par exemple sur la batterie autonome ou sur la même alimentation que la pompe à eau)

5a: entrées/sorties numériques de la carte arduino. Nous allons en utiliser 3: 2 pour l'alimentation de la sonde de température, 1 pour la collecte de la mesure de température

 

 

 

4. Branchements

Suivez pas à pas, comme un lego...

branchements

A noter:

  • les cables rouges sont branchés sur le + (5V), les cables noir sont branchés sur le - (masse)
  • la sonde de température est représentée par le petit "machin" à trois pattes noir en haut à gauche. Le cable rouge va sur le +, le bleu sur le - . Le cable jaune va sur la broche 7 de l'arduino. N'oubliez pas de brancher la résistance 4.7 KOhms (normalement livrée avec la sonde) (le code couleur de la résistance du dessin est incorrect).
  • L'autre petit "machin" à 3 pattes situé au dessus de l'afficheur et relié à celui-ci, est un potentiomètre (résistance variable): brancher la patte du milieu sur le 3ème broche de l'afficheur, les deux autres broches sont branchées sur le + et le - du circuit (branchez comme vous voulez, tout ce que cela changera ce sera le sens de rotation du bouton pour augmenter ou diminuer la luminosité de l'afficheur)
  • Buzzer: si vous regardez de près le buzzer il y a un signe + sur une des pattes: brancher cette patte sur le + (fil rouge)!

5. Programmation

Les manipulations pas à pas, sont listées ci-dessous. Si vous voulez en savoir plus, je vous invite à aller)

5.1. Téléchargement du logiciel de dialogue-interface avec l'arduino

  1. Il faut télécharger le logiciel appelé IDE, il permet de dialoguer avec la carte arduino, d'écrire (ou copier) le programme puis de le charger sur l'arduino

2.  Cliquez sur windows installer

arduino

3. décompressez le fichier (.zip)

4. branchez l'arduino sur un port USB de votre ordinateur

5. lancez le programme arduino IDE

6. ouvrez "outils", cochez "arduino uno",

outilarduino7. vérifiez que le port USB sur lequel l'arduino est branché est correct (COM xx)

outilportCOM


 

 

5.2. Installation de la bibliothèque liquicrystal

Dans un premier temps, il vous faut charger une "bibliothèque" qui permettra à l'arduino d'utiliser l'afficheur LCD Les bibliothèques sont des  codes "tout-faits" qui permettent une connexion facile à un capteur, écran, module etc. Dans notre cas, il faudra la bibliothèque Liquidcrystal. pour cela, dans l'IDE (logiciel arduino), cliquez sur:

    • croquis,
  • inclure une bibliothèque
  • gérer les bibliothèques

 

 

biblio1 dans la fenêtre en haut à droite, tapez "liquid" bibliotheque Vous verrez apparaître en dessous "liquidcrystal": cliquez sur "installer" faites de même avec la bibliothèque "onewire" (bibliothèque pour la sonde de température) onewire et la bibliothèque "dallastemperature" (bibliothèque pour la sonde de température) dallas

5.3. Chargement du code dans l'arduino

    • copiez-collez le code ci dessous dans la fenêtre de l'IDE

 

// systeme de surveillance de la temperature moteur par 1plus1blog.com

#include    //librairie de l'afficheur
#include  //Librairie du bus OneWire
#include  //Librairie du capteur

//Déclaration des pins du LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// declaration temperature
OneWire oneWire(9); //Bus One Wire sur la pin 9 de l'arduino
DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie
float temperature = 0;
float seuil = 28; // réglage du seuil d'alerte

void setup() {
  // put your setup code here, to run once:
 pinMode(7, OUTPUT);
  Serial.begin(115200); //Permet la communication en serial
 sensors.begin(); //Activation des capteurs
 sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
 sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
//Initialisation de l'écran LCD : 16 colonnes et 2 lignes
  lcd.begin(16, 2);  

  //Affiche 'température' sur l'écran LCD
  lcd.print("Il fait :");
}

void loop() {
  // put your main code here, to run repeatedly:
  sensors.requestTemperatures(); //Demande la température aux capteurs
 Serial.print("La température est: ");
 Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
 Serial.println(" C°");

   temperature = sensors.getTempCByIndex(0);
   Serial.print("temperature");

  Serial.print(temperature);

//Positionne le curseur de l'écran LCD sur la colonne 0, ligne 1
  lcd.setCursor(0, 1); 

  //Affiche à cette position la valeur de 'temp'
  lcd.print(temperature); 

  //Affiche 'degres C' à la suite de 'temp'
  lcd.print(" degres C"); 

 if (temperature > seuil)
{ digitalWrite(7, HIGH);   //si la température dépasse le seuil la broche 7 passe sur 5V ce qui déclenche le buzzer
  delay(500);                       // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making
  delay(500); 

}
else
{
  digitalWrite(7, LOW);   // turn the LED on (HIGH is the voltage level)
  delay(500);                       // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making
  delay(500);
}

    delay(2000);

}
  • cliquez là

verifier

pour que l’IDE vérifie que la syntaxe du programme est correcte : il y aura un message de succès en bas

  • ensuite cliquez là pour charger le programme dans l’arduino.

televerser

Notez que chaque fois que vous téléchargez (ou plutôt « téléversez ») un programme dans l’arduino, cela efface complètement le programme qui était chargé auparavant.

Notez qu’une fois qu’un programme est téléversé, chaque fois que vous mettrez l’arduino sous tension, la partie void setup s’exécutera une fois, puis la partie void loop s’exécutera indéfiniment en boucle jusqu’à ce que vous coupiez l’alimentation de l’arduino.

puis téléversez le code

PS: notez que vers le début du code, qu'il y a une ligne "float seuil = 28;"

En effet, dans un premier temps et afin de tester le bon fonctionnement du système à la maison, on a réglé le seuil d'alarme à 28°C, il faudra insérer la valeur adéquate lors de l'intégration du système sur le bateau.

Une fois que c'est téléversé, vous devriez voir la température s'afficher à deux endroits:

  • En appuyant sur le petit symbole en haut à droite

moniteur

Vous devriez voir apparaître à l'écran de votre ordinateur la température (en plus de l'écran LCD)

moniteur2

 

  • L'afficheur doit également afficher la température (tournez le bouton du potentiomètre pour régler la luminuosité)

instal2

Pour tester l'alarme, mettez la sonde dans votre main, regardez la température monter sur l'afficheur, et vérifiez que l'alarme sonne lorsque la température passe au dessus du seuil choisi (28°C)  (video moche là)

chauffe

Ca y est votre système de surveillance avec alarme marche!

Ca ne marche pas? Vérifier les branchements.

  • Si le petit moniteur du PC ne fonctionne pas, le problème est probablement dans le téléchargement du code (Arduino pas sur le bon port COM, Arduino Uno non sélectionné etc etc).
  • Si le petit moniteur du PC fonctionne mais la température est fausse (-127°C) c'est un problème de branchement de la sonde de température
  • Si le petit moniteur du PC fonctionne et la température moteur est correcte, c'est l'afficheur (potentiomètre, branchements)

Il va falloir maintenant l'intégrer dans le bateau et régler la valeur de température au delà de laquelle, votre alarme doit sonner

6. Intégration

6.1. Intégration de l'électronique.

La plaque de test, c'est bien en laboratoire, mais sur le bateau il va falloir des connexions qui tiennent bien.

Il faudra donc passer par une plaque sur laquelle vous ferez des soudures avec des véritables fils électriques pour raccorder les composants. Avant l'installation sur le bateau, vous pouvez pulvérisez un produit anti-humidité afin de protéger le tout.

plaque trou

Après il vous faudra faire un peu de mécanique pour intégrer Arduino, plaque électronique, buzzer, afficheur dans des boitiers adaptés

6.2. Intégration du capteur de température.

Là, ça dépend de votre moteur. il faut installer le capteur sur une partie chaude et dont la température varie dans délai par rapport à la température de la culasse.

N'ayant pas de recette miracle (échappement? culasse?...), personnellement, on a choisi de mettre la sonde dans un profilé carré, percé du diamètre de la sonde, lui-même collé sur la culasse. (Colle qui tient les température supérieures à 120°)

6.3. Réglage du seuil d'alerte.

Nous relevons la température lorsque le fonctionnement du moteur est établi à haut régime (par exemple 95°C)

Pour déterminer le seuil, nous rajoutons 10°C  (ce qui donnerait 105°C dans mon cas): Cette valeur peut être modifiée selon vos souhaits: trop bas, vous risquez des fausses alarmes, trop élevé, vous risquez de faire sonner l'alarme trop tard)

On rentre cette valeur de seuil pour le déclenchement de l'alarme sonore dans le code arduino:

float seuil = 28; est donc remplacé par float seuil = 105;

6.4. Alimentation.

L'arduino fonctionne avec une alimentation dont la tension est comprise entre 9V et 12V.

branchement arduino

Une solution sera donc de brancher le système sur le 12V de la batterie moteur via un transfo DC-DC... que vous aurez réglé sur 10 ou 11V

[caption id="attachment_2108" align="aligncenter" width="306"]convertisseur DC/DC step down transformateur courant continu pour bateau[/caption]

Pour cela, relire l'article Brancher son ordinateur portable directement sur la batterie du bateau. ou Des éclairages LED pas chers et performants, (Eh oui, je vois Francis au fond qui n'a pas utilisé ces articles "parce qu'il y a des solutions plus simples et toutes faites dans le commerce"...)

6.5 Optionnel: Mise en route automatique du système

Pour peaufiner le tout et s'éviter la mise en place d'un interrupteur manuel (qu'on peut vite oublier ce qui videra lentement la batterie...), on pourra mettre un relai qui permet de mettre ce système en marche uniquement lorsque le moteur tourne, c'est à dire lorsque l'alternateur du moteur produit de l'électricité...

Si vous avez réalisé le tutoriel sur l'arrosage automatique, vous savez ce qu'est un relai et comment cela fonctionne: il faudra donc prendre un relai 220V/12V. Lorsque l'alternateur débite du 220V, il déclenche le relai qui autorise l'alimentation en 12V de votre système de surveillance de la température moteur lui même branché sur la batterie moteur.

téléchargement

 

7. Conclusion

  • Nous avons fabriqué un système de surveillance de la température moteur à bas coût
  • Nous savons charger une bibliothèque dans l'IDE arduino
  • nous savons prendre une température sur la base d'un capteur numérique
  • nous savons afficher la température sur un afficheur LCD
  • nous savons faire sonner une alarme lorsque le paramètre passe au dessus d'un certain seuil
  • Nous savons alimenter ce système directement à partir de la batterie moteur
  • Nous savons mettre un relai pour que le système s'allume et s'éteigne en même temps que le moteur

C'est sur ce principe que fonctionne les majorité des capteurs dont nous disposons sur le bateau (loch, speedomètre, vent, compas, ...)...