Utiliser un capteur de température VMA324 (pour une cafetière connectée)

Utiliser un capteur de température VMA324 (pour une cafetière connectée)

Depuis plusieurs semaines, je travaille sur un projet de cafetière orientée IOT (internet of things).
Le principe de fonctionnement est plutôt simple : La cafetière est composée d’un corps de chauffe et d’une pompe pour le circuit d’eau. Un capteur de température DS18b20 avec son module VMA324 assureront l’asservissement pour que le système puisse pleinement maîtriser les actionneurs (pompe, résistance de chauffe…). L’un de mes objectifs était que la cafetière ne nécessite aucun nettoyage après utilisation. Comme il est difficile de mettre cela en place avec du vrai café, je vais être contraint d’utiliser du café lyophilisé. Ce dernier sera versé de façon très précise dans la tasse à l’aide d’un petit moteur pas à pas (28BYJ-48).

  1. Voici une photo de la cafetière en l'état actuel. J'ai fabriqué le boitier en mdf de 10mm. Il a été préparé et peint par la suite.
  2. Concernant le côté connecté de la machine, la cafetière fonctionnera avec un réveil indépendant permettant de régler l’heure à laquelle le café sera prêt. La communication sera assurée par un des modules nrf24l01. L’horloge interne est un module DS18B20 et les variables seront stockées sur une carte SD.
  3. Ce projet étant long à réaliser, il n’est pas encore terminé.
    J’en suis rendu à l’étape de l’intégration.
    Dans ce tutoriel je vais donc vous montrer comment utiliser le capteur de température DS18b20 avec le module Velleman VMA324.
    Tout d’abord, voici comment câbler le montage sur une carte Arduino Uno:
    V → 5 V
    G → GND
    S → D2
    Je vous conseille vivement de faire l’acquisition des cartes arduino uno fabriquées par Velleman car elles ont un très bon rapport qualité prix et avec ces dernières, vous êtes certains de ne pas avoir de problèmes de drivers (ce qui est souvent le cas avec les cartes vendues sur les sites chinois).
  4. Voici un code simple pour tester le fonctionnement :et afficher la température sur le moniteur série :


    #include // Inclusion des librairies nécessaires
    #include
    #define ONE_WIRE_BUS 2 // Le module est branché sur l'entrée numérique 2
    OneWire oneWire(ONE_WIRE_BUS); // La technologie One Wire est une technologie comparable à l'I2C. Il s'agit d'un bus de communication permettant l'utilisation de plusieurs capteurs à communication série sur une seule et même broche numérique.
    DallasTemperature sensors(&oneWire);

    float x = 0; // Création d'une variable pour stocker des nombres à virgules
    void setup(void)
    {
    Serial.begin(9600); // Démarrage du port serie pour utiliser le moniteur
    sensors.begin();
    }
    void loop(void)
    {
    sensors.requestTemperatures(); // Commande pour demander la température
    x = sensors.getTempCByIndex(0); // Je stocke la valeur dans la variable x car cela est plus simple pour travailler avec après
    Serial.println(x); // Affichage de la valeur sur le moniteur serie
    delay(500); // Delais de lecture
    }
  5. Je tiens à vous faire part d’une info intéressante concernant les instructions d’utilisation de moniteur série. En effet, pour afficher quelque chose sur le moniteur série, il existe deux instructions : Serial.println() et Serial.print().
    L’instruction Serial.print() permet d’afficher les éléments voulus à la suite sur une seule ligne tandis que Serial.println() permet d’afficher les éléments en sautant une ligne à chaque fois.
  6. Pour pouvoir utiliser directement la sonde comme thermomètre, on peut maintenant ajouter un afficheur LCD.
    Pour savoir comment le câbler, vous pouvez vous référer à mon tutoriel dans lequel je vous ai montré comment fabriquer une trottinette connectée
    Sur la photo, 22,31°C ça peut sembler être beaucoup mais il s'agit bien de la température réelle de la pièce ou se trouve la sonde (mon PC chauffe beaucoup ;) )
  7. Voici donc le code détaillé que j'ai utilisé :

    // Code libre d'utilisation, rédigé pour MakeItWithCOnrad.fr

    #include // Inclusion des librairies nécessaires (A télécharger si ce n'est pas déjà fait)
    #include
    #include
    #define ONE_WIRE_BUS 2 // Le module est branché sur l'entrée numérique 2

    OneWire oneWire(ONE_WIRE_BUS); // La technologie One Wire est une technologie comparable à l'I2C. Il s'agit d'un bus de communication permettant l'utilisation de plusieurs capteurs à communication série sur une seule et même broche numérique.
    DallasTemperature sensors(&oneWire);

    LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

    float x = 0; // Création d'une variable pour stocker des nombres à virgules

    void setup(void)
    {
    Serial.begin(9600); // Démarrage du port serie pour utiliser le moniteur
    sensors.begin();
    lcd.begin(16, 2); // Démarrage écran
    }
    void loop(void)
    {
    sensors.requestTemperatures(); // Commande pour demander la température
    x = sensors.getTempCByIndex(0); // Je stocke la valeur dans la variable x car cela est plus simple pour travailler avec après
    Serial.println(x); // Affichage de la valeur sur le moniteur serie
    delay(1000); // Délais de lecture
    lcd.setCursor(2,0); // On place le cursseur au digit 2 sur la ligne 1 (ici nommée 0)
    lcd.print("TEMPERATURE:"); // Affichage du texte souhaité
    lcd.setCursor(2,1);
    lcd.print(x); // Affichage de la température stockée dans la variable x
    lcd.setCursor(8,1);
    lcd.print("DEGRES");
    }
  8. Et voici un capteur de plus que je sais utiliser !
    Il ne reste plus qu'a l’intégrer dans un réel projet ou alors à simplement le placer dans un joli boitier imprimé en 3D pour en faire un thermomètre.
    En bonus, voici une photo supplémentaires du projet que je suis entrain de réaliser :
    On peut apercevoir une petite pompe péristaltique homemade !
Réalisé par
Posté le
Univers
Programmation
Temps de fabrication
1h
Niveau de difficulté
Débutant
Matériel(s)
1
Arduino (Uno, Mini Pro ou autre)
1
VMA324
1
Afficheur LCD 1602
Outils
1
Ordinateur

Aucun commentaire. Soyez le premier à en écrire un !

Vous devez être connecté pour laisser un commentaire.