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);
}