⭐⭐ Początkujący plus ⏱️ 20 minut

Mini-stacja pogody

Zrobisz mini-stację pogody. DHT11 mierzy temperaturę i wilgotność powietrza, a ekranik OLED je pokazuje.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.

🧰 Czego potrzebujesz?

1× Arduino UNO
1× Czujnik temperatury DHT11
1× Ekranik OLED 0,91"
🔌
Kabel USB + Przewody połączeniowe

🗺️ Schemat podłączenia

Poprowadź przewody od Arduino do każdej części. Kolory przewodów możesz wybrać samodzielnie.

Od Do
Arduino UNO · D2 Czujnik temperatury DHT11 · DAT
Arduino UNO · 5V Czujnik temperatury DHT11 · VCC
Arduino UNO · GND Czujnik temperatury DHT11 · GND
Arduino UNO · A4 Ekranik OLED 0,91" · SDA
Arduino UNO · A5 Ekranik OLED 0,91" · SCL
Arduino UNO · 5V Ekranik OLED 0,91" · VCC
Arduino UNO · GND Ekranik OLED 0,91" · GND

🛠️ Tak to zbudujesz

  1. Podłącz DHT11: DAT do pin 2, VCC do 5V i GND do GND.
  2. Podłącz ekran OLED: SDA do A4, SCL do A5, VCC do 5V i GND do GND.
  3. Wskazówka: dwie części potrzebują 5V i GND. Użyj pasków + i − na swoim breadboardzie.

💻 Kod

// Mini-stacja pogody
// DHT11 mierzy temperaturę i wilgotność powietrza. Ekranik OLED to pokazuje.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

const int DHT_PIN = 2;          // DAT z DHT11 jest na pin 2
DHT dht(DHT_PIN, DHT11);

Adafruit_SSD1306 ekran(128, 32, &Wire, -1);  // OLED 128 x 32 piksele (SDA = A4, SCL = A5)

void setup() {
  Serial.begin(9600);
  dht.begin();
  if (!ekran.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {  // 0x3C to adres ekranu
    Serial.println(F("Nie ma ekranu. Sprawdz SDA i SCL."));
    while (true);                                   // Stop: bez ekranu to nie ma sensu
  }
  ekran.setTextColor(SSD1306_WHITE);
}

void loop() {
  float temperatura = dht.readTemperature();  // W stopniach Celsius
  float wilgotnosc = dht.readHumidity();      // W procentach

  ekran.clearDisplay();
  ekran.setTextSize(2);
  ekran.setCursor(0, 0);

  if (isnan(temperatura) || isnan(wilgotnosc)) {   // Pomiar się nie udał?
    ekran.setTextSize(1);
    ekran.print(F("Brak DHT11"));
  } else {
    ekran.print(temperatura, 1);
    ekran.print((char)247);                  // Znak stopnia
    ekran.println(F("C"));
    ekran.print(wilgotnosc, 0);
    ekran.print(F("% wilg."));

    Serial.print(F("Temperatura: "));
    Serial.print(temperatura);
    Serial.print(F(" C  Wilg.: "));
    Serial.print(wilgotnosc);
    Serial.println(F(" %"));
  }

  ekran.display();   // Dopiero teraz wszystko naprawdę trafia na ekran
  delay(2000);       // DHT11 może mierzyć tylko raz na 2 sekundy
}

🧠 Co robi kod?

  • DHT11 jest na pinie 2. Za pomocą readTemperature() i readHumidity() odczytujemy wartości.
  • Ekran OLED rozmawia przez SDA (A4) i SCL (A5). Za pomocą print() pokazujemy tekst na ekranie.
  • Co 2 sekundy pojawia się nowy pomiar. Nie uda się zmierzyć? Wtedy zobaczysz komunikat.

🎯 Spróbuj…

  • Pokaż też temperaturę w Fahrenheit
  • Włącz LED, gdy jest cieplej niż 25 stopni
  • Zapamiętaj najwyższą temperaturę z dzisiaj i też ją pokaż

🚀 Zbuduj ten projekt z Codey: otwórz codey.online/pl/starter-kits/uno/projects/weather-station i kliknij ZRÓB TO. Wtedy kod i schemat podłączenia będą od razu gotowe.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.
⬇️ Pobierz tę stronę jako PDF 📚 Pobierz cały tutorial (PDF)

Codey Online to produkt od OTRONIC

Zbuduj swój projekt Arduino lub ESP32 z pomocą AI

Opisz, co chcesz zbudować. Codey Online napisze kod, narysuje schemat połączeń, skompiluje projekt i wgra go na płytkę bezpośrednio z przeglądarki.

Zacznij za darmo