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

Cet article reste toujours dans l’esprit « pour les nuls ».

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

  • 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

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é-requis

Je supposerai que:

  • petit vous aimiez bien monter les legos (sinon, vous n’allez pas du tout vous amuser…),
  • vous savez ce qu’est un Arduino, savez le connecter à votre ordinateur, lancer l’IDE (logiciel arduino) et sélectionner le port COM adéquat et savez téléverser un programme: tout cela c’est décrit dans l’article sur la réalisation d’un système d’arrosage automatique. Si vous n’avez pas besoin d’un tel système d’arrosage (pauvres plantes…), allez  au moins jusqu’à l’étape 3 de l’article sur le système d’arrosage automatique et vérifiez que la diode clignote (ce qui montrera que vous savez téléverser un programme dans un arduino). Cette étape 3 ne devrait pas vous prendre plus d’une heure.

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

5.1. 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.2. Chargement du code

copiez puis téléversez le code ci dessous

// 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);

}

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

convertisseur DC/DC step down

transformateur courant continu pour bateau

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 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, …)… Ceci ouvre de nombreuses possibilités

Une réflexion sur “Fabriquer un système de surveillance de la température moteur

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s