// Matériels : Adafruit Feather Huzzah ESP8266 + Support Particle, Adafruit OLED SH1107, Sparkfun TMP117, câble Qwiic // Logiciel : Arduino // A ajouter #include #include #include #include #include #define BUTTON_A 0 #define BUTTON_B 16 #define BUTTON_C 2 // Constructeurs Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire); TMP117 sensor; // L'adresse du circuit TMP117 est 0x48 = (GND) par défaut void setup() { // Bus I2C Wire.begin(); // Initialisation Wire.setClock(400000); display.begin(0x3C, true); // L'addresse de l'afficheur est 0x3C par défaut // Configuration de l'affichage display.setRotation(1); // Affichage horizontal display.setTextSize(1); display.setTextColor(SH110X_WHITE); display.clearDisplay(); // Pour ne pas afficher le logo Adafruit chargé // automatiquement à la mise sous tension // Test de la communication avec le capteur if (sensor.begin() == false) { display.println("DEFAUT(s)"); display.print("1. Le capteur TMP117 ne repond pas ! "); display.println(); display.print("BLOCAGE du PROGRAMME"); display.display(); // Transfert du buffer sur l'écran while (1) delay(10); // Blocage du programme } // Connexion des boutons-poussoirs pinMode(BUTTON_A, INPUT_PULLUP); pinMode(BUTTON_B, INPUT_PULLUP); pinMode(BUTTON_C, INPUT_PULLUP); } void loop() { // Efface le buffer display.clearDisplay(); // Test des boutons display.setCursor(0, 0); if (!digitalRead(BUTTON_A)) display.print("[A]"); if (!digitalRead(BUTTON_B)) display.print("[B]"); if (!digitalRead(BUTTON_C)) display.print("[C]"); // Titre display.setCursor(20, 0); display.println("Sparkfun TMP117"); // Mesure et affichage // Data Ready est un indicateur de mode de conversion - en conversion continue, l'indicateur dataReady doit toujours être haut if (sensor.dataReady() == true) // Affiche les valeurs de température que lorsque les données sont prêtes { display.setCursor(0, 12); display.print("Temp : "); display.print(sensor.readTempC(), 1); display.print("C"); delay(500); display.display(); // Transfert du buffer sur l'écran } delay(10); }