Stacja meteo

Stacja meteo

Witam,

stację pogodową zbudowałem dla mojego brata, który ma alergię na kurz. Wyposażyłem ją w czujnik temperatury i wilgotności oraz czujnik kurzu, który występuje w nawilżatorach i oczyszczaczach powietrza. Te trzy czynniki są bardzo ważne dla alergika, dlatego wszystkie występują w mojej stacji pogodowej. Jej odczyty są teraz bardzo pomocne dla nas! Projekt publikuję drugi raz, zrobiłem poprawki do pierwszej wersji.

Do jej zbudowania potrzebowałem:

  • Arduino Nano CH340
  • czujnik temperatury i powietrza DHT11
  • czujnik pyłu / stężenia cząstek – monitor czystości powietrza GP2Y1010AU0F
  • wyświetlacz LCD 2×16 znaków wraz z konwerterem I2C LCM1602
  • rezystor THT 1/4 W 4,7kΩ
  • mały powerbank 5V
  • płytka stykowa 170 otworów
  • przewody połączeniowe

Podłączenie:

Czujnik kurzu podłączamy następująco: zasilanie do 5V, wejście modułu ILED do pinu cyfrowego D7,  wyjście AOUT do pinu analogowego A0. Czujnik DTH11 podłączamy również do 5V, ale dodatkowo umieszczamy rezystor 4,7 kΩ pomiędzy zasilanie i pin sygnałowy, podpięty do pinu cyfrowego D2. Ekran LCD podpinamy także do 5V, linię SDA do A5, a linię SCL do A4.

Program:

Efekt mojej pracy można zobaczyć tutaj:

Mój projekt powstał zgodnie z myślą “Potrzeba matką wynalazców”. Jest wykorzystywany w domu codziennie. Program do obsługi czujników oraz LCD powstał w oparciu o stronę oraz kurs na forbot.pl.

Pozdrawiam

Karol

Ocena: 4.31/5 (głosów: 13)

Podobne posty

9 komentarzy do “Stacja meteo

  • Poprawiłem art, żeby film YT ładował się bezpośrednio w artykule.
    Na przyszłość – wystarczy wkleić adres filmu w nowej linii (ale nie robić z niego klikalnego linka) i player sam będzie się ładował w treści :)

    Pozdro!

    Odpowiedz
  • coś masz nie tak z wyświetlaniem – cały ekran Ci miga
    pewnie czyścisz go całego – zamiast czyścić całość to po prostu czyść komórki odpowiedzialne za wyświetlanie wartości a resztę zostawiaj bez zmian

    Odpowiedz
    • No tak, “lcd.begin(16,2);” przecież się daje w “setup()”, a nie w “loop()”. Linijka 51 kodu do wywalenia i powinno działać jak należy. Po co dwa razy to wywoływać?

      Nie wiem jak egzemplarz autora, ale mój GP2Y1010AU0F był bardzo niedokładny (praktycznie nic sensownego nie byłem w stanie z niego wyciągnąć). Z Chin można kupić znacznie lepszy PMS7003 za 60-70zł, albo odrobinę taniej większy PMS5003.

      Świetna sprawa, można sobie fajne wykresy robić potem.

      Odpowiedz
      • Jeszcze jedno, ten fragment kodu:
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print(“Kurz = “);
        lcd.print(AVG_DUST);
        float t = dht.getTemperature();
        float h = dht.getHumidity();

        Zła kolejność. Najpierw się pobiera dane z czujników, potem się czyści wyświetlacz i wyświetla dane. Inaczej niepotrzebnie zwiększasz czas, przez który nie danych na wyświetlaczu.

        Ponadto pozwolę sobie polecić ten blog na przykładzie artykułu o tym wykrywaczu pyłu (autor opisuje zwiększenie precyzji pomiarów przez zmianę VREF Arduino na wewnętrzne 1.1V): http://www.jarzebski.pl/arduino/czujniki-i-sensory/czujnik-pylu-gp2y1010au0f.html

        Odpowiedz

Odpowiedz

anuluj

Masz uwagi?