Poți crea o stație meteo personală cu doar câteva componente electronice, în primul rând ai nevoie de placa de dezvoltare Arduino Uno (în cazul meu), poate fi oricare alta (nano, promini sau chiar mega) deoarece este o aplicație relativ simple și nu necesită specificații mari hardware. Am folosit senzorul de temperatură și umiditate DHT 11, poate fi folosit și versiunea DHT 22 pentru o precizie mai mare a datelor.
Comparația între DHT 11 și DHT 22:
DHT 11
- Foarte ieftin
- Alimentat la tensiunea între 3 și 5V
- Consum maxim de curent 2.5 mA (moment în care primește datele)
- Conceput pentru un interval de valori 20-80% umiditate și cu o prezicie de 5%
- Conceput pentru un interval de valori 0-50°C și cu o prezicie de ±2°C
- Frecvență maximă de reînoire a datelor de 1 Hz (asta ar însemna reînoirea datelor fiecare 1 secundă),
- Dimensiunile fizice 15.5mm x 12mm x 5.5mm
- 4 pini cu spațiu de 0.1" între ele
DHT 22
- Ieftin
- Alimentat la tensiunea între 3 și 5V
- Consum maxim de curent 2.5 mA (moment în care primește datele)
- Conceput pentru un interval de valori 0-100% umiditate și cu o prezicie de 5%
- Conceput pentru un interval de valori -40 to 80°C și cu o prezicie de ±0.5°C
- Frecvență maximă de reînoire a datelor de 0.5 Hz (asta ar însemna reînoirea datelor fiecare 2 secundă),
- Dimensiunile fizice 15.1mm x 25mm x 7.7mm
- 4 pini cu spațiu de 0.1" între ele
Pentru afișarea datelor nu doar pe serială (link spre cum afișăm datele pe serial) folosim un ecran LCD, înainte de a începe lucrul cu ecranul LCD neaparat trebuie să cunoașteți ce adresă are acesta ( recunoașterea adresei lcd), în cazul meu adresa este 0x27, poate fi și 0x3F
Contectăm pinul de date (pinul 1) al senzorului DHT 11 la pinul 7 (pin digital) al plăcii Arduino, și pinul 2 și 3 al senzorului conectăm la alimentare (5V) și respectiv la masă.
| Pin DHT 11/22 | Conectat la Arduino Uno |
| GND | GND |
| 5V | 5V |
| DATA | Digital 7 |
LCD 16x2 I2C conține tot 4 pini (Masă, alimentare 5V, SDA, SCL)
Conectăm SDA la pinul A4 și SCL la pinul A5.
| Pin LCD I2C | Conectat la Arduino Uno |
| GND | GND |
| 5V | 5V |
| SDA | A4 |
| SCL | A5 |
Schema conexiunii este prezentată mai jos și respectiv codul este adaptat la acești parametri.
//Librarii DHT si LCD
#include <dht.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
dht DHT; //Declaram DHT
#define DHT11_PIN 7 //Declaram pinul la care este conectat DHT
void setup(){
Serial.begin(9600);
lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home ();
}
void loop()
{
lcd.clear();
lcd.setCursor(0,0);
int chk = DHT.read11(DHT11_PIN); //Citirea datelor de la senzor
lcd.print("Temp: ");
lcd.print(DHT.temperature); //Afisarea temperaturii in grade celsius
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Humidity: ");
lcd.println(DHT.humidity); //Afisarea umiditatii in %
lcd.print(" %");
delay(1000); //Refreshing every 1s
}
Schema proiectului
Descarcă biblioteca ↓