Statie meteo

Autor

Introducere

Proiectul consta in realizarea unei statii meteo care sa furnizeze informatii precise despre conditiile climatice din apropiere, dar si afisarea notificarilor primite pe telefon folosind un modul bluetooth. Totodata, statia va trebui sa monitorizeze pulsul utilizatorului folosind un senzor de puls.

Scopul proiectului este de a crea un device care sa poata colecta date relevante legate de temperatura, umiditate, presiune si, totodata, sa poata afisa notificarile primite pe smartphone.

Mi se pare interesanta ideea de a avea un device care poate furniza aceste informatii si care poate primi informatii de la telefon, ulterior afisandu-le pe un ecran. Astfel, utilizatorul nu mai trebuie sa ridice telefonul, sa il deblocheze si sa intre manual in fiecare aplicatie pentru a verifica cine i-a trimis un mail si ce contine acel mail, spre exemplu.

Motivul pentru care am ales acest proiect este faptul ca mi-as dori o asemenea statie care sa si incarce telefonul wireless.

Descriere generală

Statia va primi date din mediul inconjurator prin senzorii pe care ii are si le va afisa pe ecran. Modulul bluetooth va asigura conexiunea smartphone-ului la statie si va putea prelua notificarile acestuia.

Hardware Design

Lista de piese:

  • ATmega 324
  • Modul Bluetooth HC-05
  • Senzor de Temperatura si Umiditate DHT22/AM2302B
  • Modul LCD 1602
  • Modul cu Buzzer activ
  • Modul RTC de precizie DS3231 I2C
  • Senzor puls
  • Modul senzor de Temperatura si Presiune BMP180 (inlaturat ulterior)

Schema electrica:

Software Design

Pentru dezvoltarea proiectului am folosit:

  • Sublime - pentru a scrie codul
  • Eagle - pentru a crea schema electrica
  • HIDBootFlash pentru incarcarea programului

Pentru componentele folosite am avut nevoie de urmatoarele biblioteci:

  • usart.c - pentru comunicarea prin bluetooth
  • lcd.c - pentru afisarea informatiilor pe lcd
  • ds3231.h - pentru ceasul in timp real (pentru a afisa ora)
  • simple_twi.h - helper pentru ds3231.h
  • dht22.c - pentru senzorul de temperatura si umiditate
  • adc.c - pentru conversia datelor primite de la senzorul de puls

Am avut nevoie de timer pentru a genera intreruperi si a verifica daca senzorul de puls are date concrete. Am folosit ISR atat pentru senzorul de puls, pentru modulul bluetooth, cat si pentru cele doua butoane. Sunetul este creat de un buzzer activ. Am adaugat functii pentru a afisa anumite informatii sau pentru a verifica daca nu este timpul pentru a suna alarma.

Rezultate Obţinute

Proiectul functioneaza si am reusit sa implementez toat ce mi-am propus. El poate sa primeasca notificari de la un telefon cu Android, poate sa afiseze temperatura, umiditatea si ora, poate sa transmita temperatura si umiditatea inapoi spre telefon, poate sa masoare bataile inimii (pulsul), poate sa seteze o alarma si sa sune la acea ora. Toate comenzile sunt date prin Bluetooth de pe telefon, prin intermediul aplicatiei. Aplicatia Android este creata prin imbinarea a doua aplicatii diferite, una care poate intercepta notificarile, cealalta care poate trimite/primi date prin bluetooth.

Concluzii

  • A fost un proiect interesant la care am lucrat din pasiune
  • Mi-a placut faptul ca la final am un dispozitiv concret, pe care pot pune mana
  • Am intampinat si probleme cu senzorul de puls, dar am reusit sa le remediez
  • Am invatat cum sa imbin soft-ul si hard-ul pentru a crea un device care sa functioneze

Download

Codul sursa se poate gasi aici smart_station_bogdan_cristian_firuti331ca.zip

Jurnal

  • 24 aprilie → am conectat LCD-ul si am observat functionarea sa
  • 29 aprilie → am conectat senzorul de temperatura si am preluat date de la el
  • 30 aprilie → am conectat modulul bluetooth si l-am facut sa primeasca/trimita date
  • 30 aprilie → am gasit o apicatie care poate intercepta notificarile si o aplicatie care se conecteaza prin bluetooth, iar apoi trimite date (le-am - unit si am modificat pentru a-mi fi mie de folos)
  • 30 aprilie - 1 mai → am conectat senzorul de puls, dar acesta nu functioneaza precum cel original, asa ca a trebuit sa adaptez biblioteca
  • 1 mai → am conectat buzzer-ul si am observat ca pot sa trimit 1/0 si el sa scoata sunete
  • 2 mai → am scos senzorul BMP180 datorita alimentarii la 3.3V (singurul la aceasta tensiune)
  • 2 mai → am conectat modulul de ceas in timp real si acum pot afisa ora
  • 21 mai → ultimele retusuri, pus in cutie, verificat sa mearga toti senzorii, setare/resetare alarma

Bibliografie/Resurse

pm/prj2019/amocanu/smart-station.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0