From e196cc30676160eff046156b7787667fe3f44623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Delhaie?= Date: Fri, 10 Dec 2021 18:44:19 +0100 Subject: [PATCH] Initial commit --- README.md | 10 +++++++ arduino_temp_oled.ino | 65 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 README.md create mode 100644 arduino_temp_oled.ino diff --git a/README.md b/README.md new file mode 100644 index 0000000..092e3ee --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Arduino Temperature/Humidity station + +## Components +- OLED Screen SH1106 (128X64) +- DHT22 +- a button + +## Libraries +- u8g2 +- DHT (from https://github.com/markruys/arduino-DHT) \ No newline at end of file diff --git a/arduino_temp_oled.ino b/arduino_temp_oled.ino new file mode 100644 index 0000000..abb4e80 --- /dev/null +++ b/arduino_temp_oled.ino @@ -0,0 +1,65 @@ +#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; +}