diff --git a/arduino_temp_oled.ino b/arduino_temp_oled/arduino_temp_oled.ino similarity index 60% rename from arduino_temp_oled.ino rename to arduino_temp_oled/arduino_temp_oled.ino index abb4e80..cff0275 100644 --- a/arduino_temp_oled.ino +++ b/arduino_temp_oled/arduino_temp_oled.ino @@ -1,65 +1,83 @@ -#include -#include -#include -#include - -U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); -DHT dht; - -byte i = 0; - -void setup(void) { - u8g2.begin(); - u8g2.enableUTF8Print(); - - u8g2.setFontDirection(0); - u8g2.clearBuffer(); - u8g2.setFont(u8g2_font_luRS08_tf); // choose a suitable font - u8g2.drawStr(40,35,"Welcome !"); - u8g2.sendBuffer(); - - pinMode(2, INPUT); - dht.setup(6); - delay(1500); -} - -void loop(void) { - if (i > 5) { - u8g2.clearBuffer(); - u8g2.sendBuffer(); - if (digitalRead(2) == HIGH) { - powerScreen(); - } - delay(50); - } else { - u8g2.clearBuffer(); - u8g2.drawLine(74, 0, 74, 64); - printTemp(); - printHumidity(); - u8g2.sendBuffer(); - delay(3000); - i++; - } -} - -void printTemp() { - u8g2.setFont(u8g2_font_luRS08_tf); - u8g2.drawStr(5,10,"Temp"); - u8g2.setFont(u8g2_font_luRS14_tf); - u8g2.setCursor(5, 60); - u8g2.print(dht.getTemperature(),1); - u8g2.print("°C"); -} - -void printHumidity() { - u8g2.setFont(u8g2_font_luRS08_tf); // choose a suitable font - u8g2.drawStr(80,10,"Humidity"); - u8g2.setFont(u8g2_font_logisoso22_tf); - u8g2.setCursor(80, 60); - u8g2.print(int(dht.getHumidity())); - u8g2.print("%"); -} - -void powerScreen() { - i = 0; -} +#include +#include +#include +#include + +#define VERSION "1.2.0" + +U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); +DHT dht; + +byte i = 0; + +void setup(void) { + u8g2.begin(); + u8g2.enableUTF8Print(); + + u8g2.setFontDirection(0); + printBoardInfo(); + + pinMode(2, INPUT); + dht.setup(6); +} + +void loop(void) { + if (i > 5) { + u8g2.clearBuffer(); + u8g2.sendBuffer(); + if (digitalRead(2) == HIGH) { + powerScreen(); + } + delay(50); + } else { + u8g2.clearBuffer(); + printTemp(); + printHumidity(); + u8g2.sendBuffer(); + delay(3000); + i++; + } +} + +void printTemp() { + u8g2.setFont(u8g2_font_luRS08_tf); + u8g2.drawUTF8(5, 10, "Température"); + u8g2.setFont(u8g2_font_luRS14_tf); + u8g2.setCursor(5, 27); + u8g2.print(dht.getTemperature(),1); + u8g2.print("°C"); + if(dht.getStatus() != 0) { + u8g2.setFont(u8g2_font_luRS08_tf); + u8g2.drawStr(80, 10, "[FAILED]"); + } +} + +void printHumidity() { + u8g2.setFont(u8g2_font_luRS08_tf); // choose a suitable font + u8g2.drawUTF8(5, 40, "Humidité"); + u8g2.setFont(u8g2_font_luRS14_tf); + u8g2.setCursor(5, 58); + u8g2.print(int(dht.getHumidity())); + u8g2.print("%"); + if(dht.getStatus() != 0) { + u8g2.setFont(u8g2_font_luRS08_tf); + u8g2.drawStr(80, 40, "[FAILED]"); + } +} + +void powerScreen() { + i = 0; +} + +void printBoardInfo() { + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_luRS08_tf); // choose a suitable font + u8g2.drawStr(5, 10, "Board: ATmega328P"); + u8g2.drawStr(5, 25, "Arch: AVR (8-bit)"); + u8g2.drawUTF8(5, 45, "by Aurélie"); + u8g2.setCursor(5, 55); + u8g2.print("Version "); + u8g2.print(VERSION); + u8g2.sendBuffer(); + delay(1200); +}