🔧 Poziom trudności:
Średnio zaawansowany – Zaawansowany (z AI)
⏱️ Czas realizacji:
2–4 godziny (+ czas na zbieranie danych do AI)
🎯 Co zbudujesz?
Zrobisz kompaktową stację pogodową, która:
- mierzy temperaturę, wilgotność, ciśnienie i inne parametry,
- pokazuje aktualne dane na ekranie OLED,
- uczy się prognozować pogodę na podstawie trendów,
- działa offline, lokalnie – ale można ją też podłączyć do Wi-Fi.
🔩 Lista komponentów
Komponent | Opis | Koszt orientacyjny |
---|---|---|
ESP32 | Mikrokontroler z Wi-Fi | 20–30 zł |
Czujnik BME280 lub DHT22 | Pomiar temperatury, wilgotności, ciśnienia | 10–20 zł |
Ekran OLED (I2C) | Do wyświetlania danych | 10–15 zł |
Opcjonalnie: karta SD | Logowanie danych do pliku | 10 zł |
Obudowa / stelaż | Ochrona i estetyka | 0–15 zł |
Zasilanie 5V | Ładowarka USB / powerbank | 10–20 zł |
🧠 Jak działa?
- Stacja mierzy dane co określony czas (np. co 10 minut),
- Dane są zapisywane i analizowane przez algorytm (lub AI model),
- Wyświetlany jest:
- aktualny pomiar,
- prognoza pogody na najbliższe godziny.
W wersji z AI – predykcja może uwzględniać lokalne warunki i uczyć się z historii.
📐 Schemat działania
- Pomiar (temp + wilgotność + ciśnienie)
- Analiza trendów – czy ciśnienie rośnie/spada, jak szybko zmienia się temp
- Wniosek: czy będzie padać, ociepla się, ochładza itp.
- AI może nauczyć się powiązań typu:
- spadek ciśnienia → deszcz
- gwałtowny wzrost temp + wilgotność → burza
🔌 Schemat połączeń
- BME280 (I2C)
- VCC → 3.3V
- GND → GND
- SDA → GPIO 21
- SCL → GPIO 22
- OLED (I2C) – te same piny (można łączyć I2C)
📟 Kod (Arduino IDE – odczyt danych + wyświetlenie)
Przykład użycia BME280 + OLED:
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
Wire.begin();
bme.begin(0x76); // adres BME280
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(SSD1306_WHITE);
}
void loop() {
float temp = bme.readTemperature();
float hum = bme.readHumidity();
float pres = bme.readPressure() / 100.0F;
oled.clearDisplay();
oled.setCursor(0, 0);
oled.print("Temp: "); oled.print(temp); oled.println(" C");
oled.print("Wilg: "); oled.print(hum); oled.println(" %");
oled.print("Cisn: "); oled.print(pres); oled.println(" hPa");
oled.display();
delay(60000); // co minutę
}
🧠 AI – prognoza lokalna
- Zbieraj dane przez kilka dni (min. 3–5 dni, co 15 min)
- Dodaj etykiety – „słonecznie”, „deszczowo”, „burza”, „chłodno”
- Trenuj model w Edge Impulse lub Roboflow
- Eksportuj do
.tflite
i uruchom lokalnie na ESP32 (lub Raspberry Pi)
AI uczy się wzorców i może powiedzieć np.:
- „Deszcz w ciągu 2h”
- „Burza nadchodzi”
- „Uwaga: gwałtowne ochłodzenie”
📲 Opcje rozszerzone
- Wysyłanie danych na e-mail lub Google Sheets
- Wyświetlanie na aplikacji (np. Blynk, MQTT, Home Assistant)
- Alarm pogodowy z buzzerem lub diodą RGB
- System porównawczy z pogodą online (np. z OpenWeather)
🧰 Montaż
- Płytkę z czujnikami zamontuj w przewiewnym miejscu, ale osłoniętym od deszczu
- Obudowa z otworami wentylacyjnymi lub daszkiem
- Zasilanie z powerbanku lub panelu słonecznego 🌞
✅ Efekt końcowy
- Lokalna stacja pogodowa
- Czytelny ekran z aktualnymi danymi
- Prognoza oparta na trendach lub modelu AI
- Możliwość rozbudowy o logi, integrację z domem, automatyczne alerty