Stație meteo "all-in-one" - Dinu Petruț
Introducere
Prezentarea pe scurt a proiectului:
Ce face: citește temperatura, presiunea atmosferică și umiditatea folosind un modul BME280, le afișează pe un ecran LCD I²C, le salvează într-un fișier CSV pe un card microSD și le transmite live prin Serial Monitor.
Scopul: combină 4 interfețe embedded (ADC, I²C, 1-wire, SPI + UART) într-un sistem funcțional, ușor de extins pentru orice aplicație IoT.
Ideea de la care am pornit: construirea unui sistem practic care să integreze în mod real conceptele studiate la laborator (măsurători analogice și digitale, comunicații seriale și stocare pe card) într-un singur dispozitiv funcțional.
Utilitate: soluție portabilă de monitorizare ambientală și logging.
Descriere Generală
Proiectul este o staţie meteo portabilă care:
măsoară temperatura, presiunea atmosferică şi umiditatea
procesează valorile pe un Arduino Uno R3
afișează date pe un ecran LCD şi un LED RGB
trimite măsurătorile pe interfaţa serială USB
salvează datele pe un card MicroSD
1. Hardware Modules
2. Software Modules (pe Arduino Uno R3)
Hardware Design
Lista componentelor principale
Arduino Uno R3
GY-BME280-3.3 (senzor temperatură, presiune, umiditate)
VCC → 3.3 V
GND → GND
SDA → A4
SCL → A5
LCD 16×2 cu interfaţă I²C
VCC → 5 V
GND → GND
SDA → A4
SCL → A5
Modul microSD-card (SPI + level-shifter) +
card microSD 32 GB
VCC → 5 V
GND → GND
CS → D10
MOSI → D11
MISO → D12
SCK → D13
Conexiune USB-Serial (UART)
Modul RTC DS3231
VCC → 5 V
GND → GND
SDA → A4
SCL → A5
Senzor capacitiv TTP223
VCC → 5 V
GND → GND
OUT → D2
Led RGB
R-pin → Rezistor 220 Ω → D4
G-pin → Rezistor 220 Ω → D5
B-pin → Rezistor 220 Ω → D6
Cathode (–) → GND
Schema electrică
Pentru că nu am găsit componentele pe Wokwi, am realizat următoarele modificări hardware:
Am înlocuit senzorul BME280 (care măsura temperatura, umiditatea și presiunea) cu un senzor DHT22, care măsoară doar temperatura și umiditatea și am folosit un potențiometru pentru a ajusta presiunea.
Software Design
Mediu de dezvoltare: Arduino IDE
Librării folosite:
Wire.h - comunicare I2C
SPI.h - comunicare SPI
SD.h - interfață SD-card
Adafruit_Sensor.h - framework comun pentru senzori Adafruit
Adafruit_BME280.h - BME280 (temperatură, umiditate, presiune)
LiquidCrystal_I2C.h - afișaj LCD I2C 16×2
RTClib.h - RTC DS3231
Sistemul are 6 moduri între care se poate comuta la apăsarea butonului tactil. Trecerea de la un mod la altul este liniară (0 → 1 → 2 → 3 → 4 → 5 → 0), iar modurile sunt:
mode_0 (Temperatură): Se măsoară temperatura curentă cu BME280. Pe LCD apare „Temperature” și valoarea actuală în °C. Este transmis și în Serial Monitor.
mode_1 (Prag): Se citește valoarea pragului de temperatură de la potențiometrul conectat pe A0 (0–50 °C). Pe LCD apare „Threshold” și valoarea. Este transmis și în Serial Monitor.
mode_2 (Umiditate): Afișează umiditatea relativă (%) de la BME280 pe LCD („Humidity: xx.x %”) și în Serial Monitor.
mode_3 (Presiune): Afișează presiunea atmosferică (hPa) de la BME280 pe LCD („Pressure: xxxx.x hPa”) și în Serial Monitor.
mode_4 (Ceas digital): Afișează ora în format HH:MM cu cifre mari pe LCD, folosind caractere speciale (big digits). Ora este preluată de la RTC DS3231.
mode_5 (Dată și zi): Afișează ziua curentă a săptămânii și data în format „DD/MM/YYYY”. Informația vine de la RTC DS3231 și apare și în Serial Monitor.
În plus, sistemul oferă:
!!! TEMP ALERT !!!
T > prag °C
Mesajul rămâne afișat 2 secunde, apoi LCD-ul se curăță
Avertizarea este transmisă și în Serial Monitor
La fiecare 10 secunde:
* Se calculează mediile
* Se scrie în fișierul `log.csv` sub forma:
YYYY-MM-DD,HH:MM:SS,tAvg,hAvg,pAvg
* Dacă fișierul este gol, se adaugă antetul:
Date,Time,Temp,Hum,Pres
* Se resetează acumulările și contorul
* Se afișează mesajul „Saved to SD !” pe LCD timp de 1 secundă
Rezultate Obţinute
Concluzii
Stația meteo prezentată reușește să integreze concepte esențiale din domeniul sistemelor embedded și să le transforme într-un instrument practic, ușor de extins și aplicabil în scenarii reale de monitorizare IoT.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Resurse Software
-
-
Bibliotecă Adafruit BME280:
Bibliotecă Adafruit Sensor:
Bibliotecă LiquidCrystal_I2C:
Bibliotecă RTClib:
Bibliotecă SD.h (inclusă în Arduino)
Exemple din comunitatea Arduino (forumuri, GitHub, etc.)
Resurse Hardware
-
-
Modul SD card reader – specificații generale
Afișaj LCD 16×2 cu interfață I2C – compatibil PCF8574
Schemă fire/pinout Arduino UNO/Nano
Documentație despre potențiometru analogic și legarea pe pin analogic A0
Buton tactil digital (cap touch sensor TTP223) – documentație tehnică
Export to PDF