Stacja pogodowa z Arduino i czujnikiem BME280

📅 15 stycznia 2025 ⏱ 10 min czytania 🏷️ Arduino/ESP 👁 11 odsłon
← Arduino/ESP
← Arduino / ESP

Czujnik BME280 mierzy temperaturę, wilgotność i ciśnienie jednocześnie – to trzy w jednym układzie za mniej niż 15 zł. W połączeniu z Arduino Uno i małym wyświetlaczem OLED 128×64 px uzyskujemy kompaktową stację pogodową.

Lista zakupów

ElementCena
Arduino Uno R3 (lub klon)~30 zł
Czujnik BME280 (moduł I2C)~12 zł
Wyświetlacz OLED 0,96" SSD1306 (I2C)~12 zł
Kable dupont i breadboard~5 zł

Schemat I2C (4 przewody)

ModułVCCGNDSDASCL
BME2803,3 VGNDA4A5
OLED SSD13063,3 VGNDA4A5
💡 BME280 ma dwa możliwe adresy I2C: 0x76 (SDO do GND) lub 0x77 (SDO do VCC). OLED SSD1306 zwykle ma adres 0x3C. Sprawdź skanerem I2C jeśli masz problemy z komunikacją.

Biblioteki

Kod

#include <Wire.h>
#include <Adafruit_BME280.h>
#include <Adafruit_SSD1306.h>

Adafruit_BME280 bme;
Adafruit_SSD1306 wyswietlacz(128, 64, &Wire, -1);

void setup() {
    bme.begin(0x76);
    wyswietlacz.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    wyswietlacz.setTextColor(WHITE);
}

void loop() {
    float temp  = bme.readTemperature();
    float hum   = bme.readHumidity();
    float press = bme.readPressure() / 100.0F;

    wyswietlacz.clearDisplay();
    wyswietlacz.setTextSize(2);
    wyswietlacz.setCursor(0, 0);
    wyswietlacz.print(temp, 1);
    wyswietlacz.println(" C");
    wyswietlacz.setTextSize(1);
    wyswietlacz.print("Wilg: "); wyswietlacz.print(hum, 1); wyswietlacz.println(" %");
    wyswietlacz.print("Cisnien: "); wyswietlacz.print(press, 1); wyswietlacz.println(" hPa");
    wyswietlacz.display();
    delay(2000);
}

Rozbudowa projektu

Tagi: arduino czujnik oled pogoda