// Termometras ir barometras // naudojamų bibliotekų pajungimas #include #include #include #include // užduodame OLED ekraniuko parametrus px #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 // įvedame temperatūros korekciją turimam davikliui // panaudodami precizinį Hg termometrą #define TEMP_OFFSET -3.8 // koreguojame daviklį pagal vietos meteo stotį #define PRESSURE_OFFSET 18 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Adafruit_BMP280 bmp; // Vietovės slėgis jūros lygyje (hPa) #define SEA_LEVEL_PRESSURE 1013.25 void setup() { Serial.begin(9600); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { while (1); } display.clearDisplay(); display.setTextColor(SSD1306_WHITE); if (!bmp.begin(0x76)) { if (!bmp.begin(0x77)) { display.setCursor(0, 20); display.setTextSize(2); display.println("BMP280"); display.println("NERASTAS!"); display.display(); while (1); } } display.clearDisplay(); display.setTextSize(2); display.setCursor(10, 20); display.println("KOKS ORAS"); display.display(); delay(2000); } void loop() { // float temperatura = bmp.readTemperature(); float temperatura = bmp.readTemperature() + TEMP_OFFSET; float slegis = bmp.readPressure() / 100.0 + PRESSURE_OFFSET ; // float aukstis = bmp.readAltitude(SEA_LEVEL_PRESSURE); float slegis_mmHg = slegis * 0.750062; display.clearDisplay(); display.drawRect(0, 0, display.width() - 1, display.height() - 1, WHITE); display.setTextSize(1); // display.setCursor(15, 4); // display.print("Temperatura:"); display.setCursor(13, 7); display.setTextSize(3); display.print(temperatura, 1); display.print((char)247); display.print("C"); display.setTextSize(1); display.setCursor(13, 36); display.print("Slegis: "); display.print(slegis, 1); display.print(" hPa"); display.setCursor(13, 48); display.print("Slegis: "); display.print(slegis_mmHg, 1); display.print(" mmHg"); display.display(); Serial.print("Temperatura: "); Serial.print(temperatura); Serial.println(" C"); Serial.print("Slegis: "); Serial.print(slegis); Serial.println(" hPa"); Serial.println(); delay(1000); }