Zobrazení Teploty Na Oled Displeji

Popis

Tento projekt slouží k měření teploty pomocí senzoru DS18B20 a zobrazení naměřených hodnot na OLED displeji. Senzor měří teplotu, kterou následně zobrazuje na displeji v reálném čase.

Po každém měření teploty se na displeji aktualizuje hodnota teploty v °C. Teplota se zobrazí ve formátu "Teplota: X.XX C". Systém periodicky měří teplotu a zobrazuje ji každou sekundu.

Značka

Ukázkový kód

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <OneWire.h>           // Knihovna pro komunikaci přes OneWire sběrnici
#include <DallasTemperature.h> // Knihovna pro práci s DS18B20

// Vytvoříme instanci pro OLED displej
U8G2_SH1107_PIMORONI_128X128_F_HW_I2C oled(U8G2_R1, U8X8_PIN_NONE);

// Nastavení pro OneWire komunikaci
#define ONE_WIRE_BUS 3 // Pin, na kterém je připojen datový vodič senzoru

OneWire oneWire(ONE_WIRE_BUS);       // Vytvoření instance OneWire na daném pinu
DallasTemperature sensors(&oneWire); // Předání OneWire sběrnice knihovně DallasTemperature

void setup() {
    // Nastavení I2C sběrnice
    Wire.begin(14, 15); // SDA, SCL
    // Inicializace displeje
    oled.begin();
    oled.setI2CAddress(0x3C << 1); // Adresa displeje
    // Inicializace senzoru DS18B20
    sensors.begin();
}

void loop() {
    sensors.requestTemperatures();        // Požádání senzoru o změření teploty
    float teplota = sensors.getTempCByIndex(0); // Získání teploty v °C (první nalezený senzor)

    // Výpis teploty na sériový monitor
    Serial.print("Teplota: ");
    Serial.println(teplota);

    // Vymažeme displej
    oled.clearBuffer();
    // Nastavíme velikost písma
    oled.setFont(u8g2_font_ncenB08_tr);
    // Vytvoříme formátovaný text do bufferu
    char buf[50]; // Ujistěte se, že máte dostatek místa v poli
    sprintf(buf, "Teplota: %.2f C", teplota);  // Formátování teploty na dvě desetinná místa

    // Vykreslíme text na displej
    oled.drawStr(0, 10, buf);
    // Zobrazíme obsah bufferu na displeji
    oled.sendBuffer();

    // Čekáme 1 sekundu
    delay(1000);
}

Tato stránka byla naposledy upravena 2025-12-30 12:53

Běží na Wiki|Docs

This page was last edited on 2025-12-30 12:53

Eduingo
info@eduingo.com

Běží na Wiki|Docs