// Matériels : Adafruit Feather Huzzah ESP8266 + Support Particle, Adafruit OLED SH1107, Adafruit SGP30, câble Qwiic. // Logiciel : Arduino // A ajouter #include #include #include #include #include "Adafruit_SGP30.h" #define BUTTON_A 0 #define BUTTON_B 16 #define BUTTON_C 2 // Constructeurs Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire); Adafruit_SGP30 sgp; void setup() { // Bus I2C Wire.begin(); // Initialisation Wire.setClock(400000); display.begin(0x3C, true); // L'adresse 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 (!sgp.begin()) { display.println("Le capteur de repond pas"); while (1) ; } display.print("Numero de serie #"); display.print(sgp.serialnumber[0], HEX); display.print(sgp.serialnumber[1], HEX); display.println(sgp.serialnumber[2], HEX); display.display(); // Transfert du buffer sur l'écran delay(2000); // 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(40, 0); display.println("SGP30"); // Numéro de série display.setCursor(0, 12); display.print("Numero : #"); display.print(sgp.serialnumber[0], HEX); display.print(sgp.serialnumber[1], HEX); display.println(sgp.serialnumber[2], HEX); // Mesures if (!sgp.IAQmeasure()) { Serial.println("Measurement failed"); return; } // Mesures et affichage display.print("TVOC : "); display.print(sgp.TVOC); display.println(" ppb"); display.print("eCO2 : "); display.print(sgp.eCO2); display.println(" ppm"); // Infos display.setCursor(5, 52); display.print("Appuyer sur A, B, C"); display.display(); // Transfert du buffer sur l'écran delay(500); }