Table of Contents

Statie Meteo cu Navigatie prin Intreruperi

Introducere

Proiectul reprezinta o statie meteorologica autonoma, capabila sa monitorizeze in timp real temperatura, umiditatea si presiunea atmosferica din mediul ambiant. Datele sunt prelucrate si afisate local pe un ecran OLED de 0.96' sub doua forme: un ecran de date text si trei ecrane dedicate pentru istoricul grafic al fiecarui parametru, completate de statistici de minim si maxim stocate persistent.

Sistemul utilizeaza un potentiometru analogic pentru navigarea fluida intre ecrane. Schimbarea paginilor este gestionata in fundal prin intreruperi hardware. Codul este scris integral in C pentru microcontrolerul ATmega328P, lucrand direct la nivel de registri hardware, fara a apela la biblioteci high-level din ecosistemul Arduino.

Ideea de pornire: Dorinta de a dezvolta un sistem de telemetrie compact si independent, care nu doar afiseaza valori instantanee, ci construiește un istoric vizual direct pe un ecran de rezolutie mica. Prin eliminarea comunicatiei UART, statia devine un dispozitiv portabil prin conectarea la o baterie de 9V, capabil sa retina recordurile climatice chiar si dupa intreruperea alimentarii.

Utilitate: Monitorizarea microclimatului ambiental cu un grad ridicat de precizie si analizarea tendintelor meteorologice pe termen scurt prin intermediul graficelor cu axe si grid renderizate bitwise.

Descriere generala

Sistemul este organizat in jurul microcontrolerului ATmega328P, care gestioneaza perifericele in mod concurent:

Hardware Design

BOM (Bill Of Materials):

Schema Electrica (Conexiuni principale): Toate perifericele digitale impart aceeasi magistrala I2C, conectate in paralel la pinii hardware dedicati ai portului C:

Software Design

Rezultate Obţinute

S-a obtinut un sistem embedded complet si stabil. Potentiometrul permite selectarea a 5 ecrane distincte (Intro, Date Live, Grafic Temp, Grafic Presiune, Grafic Umiditate). Ecranele de grafica randeaza corect evolutia pe 128 de puncte, iar pe randul secundar afiseaza din EEPROM extremele inregistrate (Max si Min) cu o precizie stabila de doua zecimale, fara artefacte vizuale sau pâlpâiri (flicker), datorita managementului corect al functiei de clear selectiv.

Concluzii

Scrierea codului la nivel de registru a evidentiat avantajele optimizarii de spatiu si viteza specifice programarii low level. Integrarea timerelor si a intreruperilor a permis decuplarea logicii de afisare de cea de achizitie. Sistemul rezultat este robust, retine datele critic-istorice in mod nevolatil si reprezinta o aplicatie practica completa a conceptelor de interactiune hardware-software studiate.

Download

Jurnal

Bibliografie/Resurse