Proiectul presupune implementarea unei stații meteo de predicție a vremii prin compararea presiunii atmosferice obținute prin măsurători efectuate în timestamp-uri anterioare. Stația meteo nu doar că mă va ajută să aleg vestimentația potrivită în funcție de vreme, dar și să înțeleg algoritmii de predicție a vremii în funcție de presiunea atmosferică înregistrată de-a lungul unei zile - am pornit de la ideea că ar fi un bun exercițiu atât hardware, cât și software.
Predicția vremii poate fi făcută comparând presiunea atmosferică înregistrată de-a lungul timestamp-urilor anterioare folosind mai mulți senzori specializați (vezi secțiunea Hardware design/schemă bloc).
În locul timer-ului de pe Atmega324A, voi utiliza un modul Real Time Clock (RTC) pentru a obține ora și minutul cu o precizie superioară. Acest modul RTC poate fi configurat să genereze o întrerupere o dată la câteva ore, la intrarea într-un nou timestamp.
Correction: m-am hotărât să foloesc totuși timer-ul de pe Atmega324A, întrucât la PM Fair e doar un proof of concept, cu intreuperi o dată la 30 secunde.
Persistența datelor măsurate în timestamp-urile anterioare se poate asigura stocând datele obținute în memoria non-volatilă (EEPROM) a microcontroller-ului Atmega324A.
Senzorul de presiune funcționează în parametri optimi doar atunci când este alimentat la tensiunea de 3.3V și nu tolerează tensiunea de 5V de pe pinii logici - astfel, voi folosi un stabilizator de tensiune de 3.3V pentru a alimenta senzorul, iar semnalele folosite în comunicarea cu Atmega324A vor trebui trecute printr-un translator de nivel voi alimenta senzorul BMP180 de la pin-ul de 3.3V de pe plăcută.
Rezultatul prelucrărilor se va afișa pe un LCD 16×2 - vor fi vizibile valorile actuale și anterioare ale parametrilor de interes și predicția vremii pentru ziua curentă.
Proiectul presupune implementarea unor algoritmi de predicție a vremii bine-cunoscuți și simplificați care vor prelucra datele colectate de la senzori în timestamp-urile anterioare. Ca mediu de dezvoltare, am folosit Atom, iar codul a fost dezvoltat pe Ubuntu 18.04.
Ca produs final, am obtinut un program pe placuta care afiseaza in continuu ultimele 4 masuratori facute si, o data la 30 secunde, primeste o intrerupere si extrage date noi de la cei 2 senzori (BMP180 si DHT11). De asemenea, inainte de a trece prin toate datele anterioare, face si o predictie comparand valoarea curenta a presiunii cu valoarea anterioara, conform algoritmului listat in sectiunea de Bibliografie. Informatiile sunt scrise/citite in/din memoria EEPROM a microcontroller-ului, fiind organizate logic sub forma unei liste circulare.
Dezvoltarea proiectului a fost interesantă, dar ușor frustrantă din când în când, mai ales până să-mi dau seama cum funcționează comunicația cu senzorii. Per total a fost fain, iar costurile aproximative sunt undeva în jurul a 120 RON.