De multa vreme imi doream un termometru care sa imi poata oferi loguri si grafice cu temperatura (macar ) de pe ultimele 24 ore. De curand am facut acest lucru posibil cu Arduino! 🙂 Mai mult, pe langa temperatura, aceasta statie meteo mai afiseaza umiditatea si presiunea atmosferica!
Componente folosite:
- pentru a economisi spatiu si pentru a reduce costurile, am folosit numai chip-ul ATmega328P-PU de la Arduino, cumparat din China, de pe site-ul www.banggood.com cu 2$
- Crystal Oscillator 16MHZ – 0.85$
- senzor umiditate si temperatura DHT22 – 3,97$
- BMP180 Digital Barometric Pressure Sensor – 3,77$
- LCD display 3.7$
- Adjustable Power Supply Step Down – necesar pt a cobora de la 5,2V de la incarcator la 3,2V necesar la placa de retea – 0,82$
- Modul LAN – 3,87$
- cutie transparenta pentru arduino 7.2$
- Push button – 100buc – 1,92$
- se alimenteaza la 5V. Folosesc un incarcator de telefon (iphone) – ( 2$ )
Dupa cum se poate observa cel mai scump este cutia 🙂
Descriere proiect:
Dupa cum am precizat, am folosit placa Arduino R3 UNO doar pentru a programa chipul ATmega328P-PU. La alimentare va fi afisat pe display-ul LCD dupa 2 secunde IP-ul care i-a fost alocat prin DHCP. Din 10 in 10 minute este citita temperatura, umiditatea si presiunea atmosferica. Aceste date sunt afisate pe display-ul LCD, dar sunt transmise in acelasi timp si intr-o baza de date prin POST.
Senzorul de umiditate si temperatura a fost montat pe fir, aproximativ 50cm, pentru a putea fi pus la distanta de unitate. In acest fel unitatea nu va influenta temperatura senzorului.
Proiectul poate fi optimizat sa fie alimentat si de pe baterie, dar modul-ul LAN va trebui sa fie oprit pentru a salva viata bateriei. Se mai poate adauga si o fotorezistenta ( 0,13$ ) care sa inchida display-ul LCD pe timp de noapte.
Pe cutie sunt 4 butoate, din care sunt functionale doar doua:
- un buton pentru a ilumina LCD-ul pentru 10 secunde
- un buton pentru reset
Valorile transmise de senzori in baza de date, sunt apoi afisate intr-o pagina web (cu parola):
Aceasta statie meteo face parte dintr-un proiect mai mare de home automation, pe care il voi detalia in perioada ce urmeaza!
- Termostat pentru centrala si aer conditionat ce poate fi controlat prin internet
- Termostat-ul poate lua decizii in functie de temperatura din mai multe incaperi
- Creerul termostat-ului este Raspberry PI
- Controlul luminii, dar si a altor dispozitive din locuinta
- lista este inca deschisa 🙂
Modul de conectare:
1. Senzorul DHT22
DHT PIN1 Arduino 5V
DHT PIN2 10K Resistor Arduino 5V
DHT PIN2 Arduino Digital Pin 2
DHT PIN3 Not Used
DHT PIN4 Arduino GND
Librarie: adafruit/DHT-sensor-library
2. Senzor BMP180 temperatura si presiune
- UNO +5V to sensor board VCC
- UNO GND to sensor board GND
- UNO pin A4 to sensor board SDA
- UNO pin A5 to sensor board SCL
Librarie: BMP180_Breakout-master
3. IC / I2C 1602 Blue Backlight LCD Display Module For Arduino
Librarie: Arduino-LiquidCrystal-I2C-library
4. ATmega328
Pentru programarea microcontrolarului ATmega328 este nevoie de:
- 16 MHz crystal
- 10k resistor
- doi condensatori 22 picofarad (ceramic)
5. ENC28J60 Ethernet LAN
Librarie: ethercard