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