Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:statiemeteo [2021/04/28 16:52]
ana.simionescu [Descriere generală]
pm:prj2021:avaduva:statiemeteo [2021/06/02 13:12] (current)
ana.simionescu
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
 +Proiectul constă în monitorizarea temperaturii,​ umidității și presiunii atmosferice în fiecare moment de timp și afișarea acestor informații pe un ecran LCD.
  
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Monitorizarea temperaturiiumiditatii si presiunii atmosferice si afisarea datelor ​pe un display ​LCD.+Ecranul LCD se deschide cu afișajul "​Stație Meteo"​. Utilizatorul poate alege ce informație își dorește sa fie afișată pe ecran. Astfelapăsând ​pe unul dintre cele 3 butoane, afișajul ​LCD-ului se schimbă pentru a arăta temperatura,​ umiditatea sau presiunea. În orice moment utilizatorul poate decide să afișeze un alt parametru din cele 3. Dacă nu este apăsat un alt buton, valoarea parametrului afișat este actualizată constant, interogând senzorii la fiecare loop.
  
 +==Schema Bloc==
 +
 +{{:​pm:​prj2021:​avaduva:​statie_meteo.png?​nolink&​600 |}}
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +- Arduino Uno R3
 +      * Mediază fluxul de date între senzori și LCD 16x2.
 +- Senzor Temperatură și Umiditate
 +      * Măsoară temperatura și umiditatea
 +- Senzor Presiune Atmosferică și Temperatură
 +      * Măsoară temperatura și presiunea atmosferică
 +- LCD-I2C
 +      * La început este afișat mesajul "​Stație Meteo"​.
 +      * Dacă este apăsat primul buton afișează mesajul "​Temperatura:",​ urmat de valoarea temperaturii.
 +      * Dacă este apăsat al doilea buton afișează mesajul "​Umiditate:",​ urmat de valoarea umidității.
 +      * Dacă este apăsat al treilea buton afișează mesajul "​Presiune:",​ urmat de valoarea presiunii.
 +- Buton 1
 +      * Dacă este apăsat determină interogarea senzorului DHT22 pentru valoarea temperaturii și afișarea acesteia.
 +- Buton 2
 +      * Dacă este apăsat determină interogarea senzorului DHT22 pentru valoarea umidității și afișarea acesteia.
 +- Buton 3
 +      * Dacă este apăsat determină interogarea senzorului DHT22 pentru valoarea temperaturii,​ senzorului BMP180 pentru calcularea presiunii și afișarea acesteia.
  
-{{:​pm:​prj2021:​avaduva:​statie_meteo.png?​nolink&​300 |}} 
 ===== Hardware Design ===== ===== Hardware Design =====
-- Arduino UNO\\ 
-- Breadboard\\ 
-- Fire tata-mama\\ 
-- Fire tata-tata\\ 
-- Senzor de temperatura\\ 
-- Senzor de umiditate\\ 
-- Senzor de presiune atmosferica\\ 
-- Display LCD 
  
 +==== Lista de piese ====
  
 +|     ​Nume ​         |   ​Link ​  |
 +| Arduino Uno R3    |https://​ardushop.ro/​ro/​home/​29-placa-de-dezvoltare-uno-r3.html?​search_query=uno&​results=124| ​
 +| Breadboard ​       |https://​ardushop.ro/​ro/​electronica/​33-breadboard-830.html?​search_query=breadboard&​results=15|
 +| Senzor de temperatura si umiditate DHT22  |https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-temperatura/​1449-modul-senzor-de-temperatura-i-umiditate-dht22.html?​search_query=dht22&​results=4|
 +| Senzor de presiune atmosferica BMP180 |https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-presiune/​149-modul-senzor-de-temperatura-si-presiune-bmp180.html?​search_query=bmp180&​results=7| ​   ​
 +| Display LCD       ​|https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd&​results=197|
 +| Butoane ​     | |
 +| Fire  tata-tata ​           | |
 +| Fire  mama-tata ​           | |
 +
 +==== Schema electrica ====
 +
 +{{:​pm:​prj2021:​avaduva:​statie_meteo_schema_noua.png?​nolink&​750 |}}
 +
 +== Conectare Senzor Temperatură și Umiditate DHT22 ==
 +Senzorul are 3 pini: +(VCC), -(GND) si OUT. Pinii + și - se conectează la pinii
 +corespunzători de pe Breadboard, la rândul lor conectați la pinul de 5V, respectiv cel de GND de pe Arduino, iar pinul OUT se conecteaza la pinul 7 de pe Arduino.
 +
 +== Conectare Senzor Presiune Atmosferică și Temparatură BMP180 ==
 +Senzorul are 4 pini: VIN, GND, SCL și SDA. Pinii VIN și GND se conectează la pinii
 +corespunzători de pe Breadboard, la rândul lor conectați la pinul de 5V, respectiv cel de GND de pe Arduino, iar pinii SCL și SDA se conecteaza direct la pinii SCL, respectiv SDA de pe Arduino.
 +
 +== Conectare LCD-I2C ==
 +Ecranul LCD se conecteaza la Arduino folosind interfata seriala I2C, prin pinii GND, VCC, SDA, SCL. Pinii VCC și GND se conectează la pinii
 +corespunzători de pe Breadboard, la rândul lor conectați la pinul de 5V, respectiv cel de GND de pe Arduino, iar pinii SCL și SDA la pinii A4 și A5 de pe Arduino.
  
 ===== Software Design ===== ===== Software Design =====
  
 +  * Limbaj de programare folosit: C
 +  * Mediu de dezvoltare si compilare: Arduino IDE
  
 +===IMPLEMENTARE===
 +
 +==Biblioteci folosite==
 +   ​*LiquidCrystal_I2C.h - pentru LCD
 +   ​*DHT.h - pentru senzorul de temperatură și umiditate
 +   ​*SFE_BMP180.h - pentru senzorul de presiune atmosferică și temperatură
 +==Program==
 +  -Inainte de setup():
 +     ​*Definire de macro-uri
 +     ​*Definirea pinilor folositi de LCD cu modulul extern
 +     ​*Inițializarea claselor pentru LCD, DHT și BMP180
 +     ​*Inițializarea variabilelor
 +  -setup_LCD():​
 +     ​*Inițializarea backlight-ului
 +     ​*Afișarea mesajului inițial
 +  -setup():
 +     ​*Setarea pinilor pentru butoane
 +     ​*Inițializarea LCD-ului
 +     ​*Inițializarea senzorului de temperatură și umiditate DHT
 +     ​*Inițializarea senzorului de presiune BMP180
 +  -show_temp():​
 +     ​*Citirea temperaturii de la senzor
 +     ​*Afișarea temperaturii pe LCD
 +  -show_humid():​
 +     ​*Citirea umidității de la senzor
 +     ​*Afișarea umidității pe LCD
 +  -show_pressure():​
 +     ​*Citirea presiunii de la senzor
 +     ​*Afișarea presiunii pe LCD
 +  -loop():
 +     ​*Citește butoanele
 +     ​*Dacă un buton a fost apăsat, verifică pe rând care dintre cele 3
 +     ​*Dacă a fost apăsat primul buton se setează pe true variabila care indică că trebuie afișată temperatură și pe false celelalte și se apelează funcția show_temp
 +     ​*Dacă a fost apăsat al doilea buton se setează pe true variabila care indică că trebuie afișată umiditatea și pe false celelalte și se apelează funcția show_humid
 +     ​*Dacă a fost apăsat al treilea buton se setează pe true variabila care indică că trebuie afișată presiunea și pe false celelalte și se apelează funcția show_pressure
 +     ​*Dacă niciunul dintre butoane nu a fost apăsat, se reapeleaza funcția corespunzătoare valorii afișate la momentul respectiv, identificată prin variabila setată pe true.
 +     ​*Variabila new_display reține dacă trebuie sa se dea clear la display pentru a afișa un alt parametru dintre cei 3 sau trebuie doar actualizată valoarea parametrului afișat deja.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +{{:​pm:​prj2021:​avaduva:​statie_meteo1.jpeg?​nolink&​350| }}{{ :​pm:​prj2021:​avaduva:​statie_meteo2.jpeg?​nolink&​350|}}
 +\\
 +{{:​pm:​prj2021:​avaduva:​statie_meteo5.jpeg?​nolink&​350| }}{{ :​pm:​prj2021:​avaduva:​statie_meteo6.jpeg?​nolink&​350|}}
 +\\
 +{{:​pm:​prj2021:​avaduva:​statie_meteo3.jpeg?​nolink&​350| }}{{ :​pm:​prj2021:​avaduva:​statie_meteo4.jpeg?​nolink&​350|}}
  
 +Video: https://​youtu.be/​UEm-iNqVZJI ​
  
 ===== Concluzii ===== ===== Concluzii =====
- +Proiectul este complet funcțional și poate fi folosit pentru a determina temperatura,​ umiditatea și presiunea atmosferică la fiecare moment de timp.
  
 ===== Download ===== ===== Download =====
  
 +{{:​pm:​prj2021:​avaduva:​statie_meteo.zip|}}
  
 ===== Bibliografie ===== ===== Bibliografie =====
 +https://​www.instructables.com/​How-to-Connect-I2C-Lcd-Display-to-Arduino-Uno/​\\
 +https://​create.arduino.cc/​projecthub/​diyprojectslab/​how-to-make-simple-weather-station-e99950\\
 +https://​www.sparkfun.com/​datasheets/​Sensors/​Temperature/​DHT22.pdf\\
 +https://​cdn-shop.adafruit.com/​datasheets/​BST-BMP180-DS000-09.pdf
pm/prj2021/avaduva/statiemeteo.1619617977.txt.gz · Last modified: 2021/04/28 16:52 by ana.simionescu
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