|

Afficher la température DS18B20 sur ecran OLED 0.91 avec un Arduino Uno

Prérequis :

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

// Inclure les bibliothèques dont nous avons besoin
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);

// Le câble de données est branché sur le port 7 de l'Arduino
#define ONE_WIRE_BUS 7

// Configurer une instance oneWire pour communiquer avec tous les appareils OneWire
OneWire oneWire(ONE_WIRE_BUS);

// Transmettez notre référence oneWire à Dallas Temperature.
DallasTemperature sensors(&oneWire);

/*
 * Fonction de configuration. Nous démarrons uniquement les capteurs ici.
 */
void setup(void) {
  // démarrer le port série
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Démarrer les bibliothèques
  sensors.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // Address 0x3C for 128x32

  display.display();
  delay(1000);

  // Effacez le tampon.
  display.clearDisplay();
  display.display();
  //Défini la couleur du texte
  display.setTextColor(WHITE);
}

/*
*Fonction principale, obtenir et afficher la température
 */
void loop(void) {
  // appelez sensors.requestTemperatures() pour émettre une demande de
  // température globale à tous les périphériques du bus
  Serial.print("Demander des températures...");
  sensors.requestTemperatures();  // Send the command to get temperatures
  Serial.println("Fait");
  delay(1500);
  // Après avoir obtenu les températures, nous pouvons les imprimer ici.
  // Nous utilisons la fonction ByIndex et, à titre d'exemple, nous obtenons la température du premier capteur uniquement.
  float tempC = sensors.getTempCByIndex(0);

  // Vérifiez si la lecture a réussi
  if (tempC != DEVICE_DISCONNECTED_C) {
    Serial.print("Température pour l appareil 1 (index 0) est: ");
    Serial.println(tempC);
    Serial.println("");
  } else {
    Serial.println("Erreur : impossible de lire les données de température");
    Serial.println("");
  }
  // On imprime les infos sur écran OLED
  display.clearDisplay();
  //Défini la taille du texte
  display.setTextSize(1);
  //Défini la position du texte
  display.setCursor(0, 0);
  display.println("Temperature :");
  display.setCursor(0, 12);
  display.setTextSize(2);
  display.print(tempC);
  display.print(char(247));
  display.print("C");
  display.display();
}

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *