Stacja pogodowa Arduino Nano DHT 22 i BME280

Stacja pogodowa Arduino Nano DHT 22 i BME280

Stacja pogodowa Arduino Nano DHT 22 i BME280

Wrzucam tutaj swój pierwszy „projekt” na majsterkowie. Konstrukcja powstała w wyniku zabaw z Arduino nano i potrzeby wykorzystania części, które walały się z demontażu – jak LCD 24×2. Kilka sztuk takich LCD zalegało mi nie wykorzystywane, więc trzeba było je zagospodarować. 

Konstrukcja nie jest żadnym nowum – typowa aż do bólu aplikacja DHT22 i BME 280, odczyt, przesłanie danych na LCD.

Kod poniżej:

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

//uzyte biblioteki
#include <DHT.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
//definicja pinu i typu czujnika DHT
#define DHTPIN 8
#define DHTTYPE DHT22
//definicja pinow magistrali SPI
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
//definicja pinow LCD
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//definicja DHT
DHT dht(DHTPIN, DHTTYPE);
//uzyte zmienne
float Tzew;
float Wilg;
float temperatura;
float cisnienie;
float wilgotnosc;
#define SEALEVELPRESSURE_HPA (1013.25) //cisnienie na poziomie morza
#define ALTITUDE 160.0 // wysokosc wzgledna w metrach dla miejsca pomiaru – u mnie 160 m npm
Adafruit_BME280 bme(BME_CS); // inicjalizacja czujnika BME w trybie hardware SPI
void setup() {
Serial.begin(9600);
Serial.println(F(„Start Testu”));
lcd.begin(24, 2); //start LCD 24×2
bool status;
status = bme.begin();
if (!status) {
Serial.println(„Brak sensora BME 280 – sprawdz polaczenie”);
while (1);
}
Serial.println(„OK”);
}
void loop() {
temperatura = bme.readTemperature(); //odczyt temperatury z czujnika BME
cisnienie = bme.readPressure(); //odczyt cisnienia z czujnika BME
cisnienie = bme.seaLevelForAltitude(ALTITUDE,cisnienie); //przeliczenie cisnienia dla danej wysokosci npm
wilgotnosc = bme.readHumidity(); //wilgotnosc z czujnika BME
Tzew = dht.readTemperature(); //temperatura z czujnika DHT
Wilg = dht.readHumidity(); //wilogotnosc z czujnika DHT
lcd.setCursor(0,0);
lcd.print(„Tzew: „);
lcd.print(Tzew);
lcd.print(” Twew: „);
lcd.print(temperatura);
lcd.setCursor(0,1);
lcd.print(„Cisn: „);
lcd.print(cisnienie/100);
lcd.print(” Wilg: „);
lcd.print(Wilg);
delay(1000);
}

Schemat we fritzingu poniżej – nie bawiłem się w żadne płytki stykowe – wszytko lutowane bezpośrednio do płytki nano, sprawdzone i zamknięte w typowej puszce instalacyjnej, w której wyciąłem otwór pod LCD i wkleiłem go dwuskładnikowym klejem. Z obudowy wyprowadzone przewody: zasilanie/USB oraz czujnika zewnętrznego. Konstrukcja powieszona na okresy testów, aby porównać jak się temperatury zachowają w okresie tygodnia – odczyty z referencyjnym loggerem. Jeżeli będą satysfakcjonujące, to będę rozbudowywać o moduł transmisji danych i akwizycji na Raspberry.

Pliki załączone do artykułu:

Ocena: 4/5 (głosów: 11)
Nettigo - patron działu Elektronika

Podobne posty

Disc VUmetr by hetm4n

Disc VUmetr by hetm4n

Witam! Chciałbym przedstawić wykonany prze zemnie VU metr. przeglądając różne konstrukcje na YT postanowiłem złożyć…

18 komentarzy do “Stacja pogodowa Arduino Nano DHT 22 i BME280

  • Witaj !
    Układ prosty i spełniający swoje zadanie :)
    Powiedz mi proszę jak się sprawuje czujnik BME ? Z tego co się orientuje to lubi się „on” zapychać i z czasem zaczyna pokazywać błędne pomiary, gdy wystawiony jest poza obudowa. Pytam dlatego że kiedyś chciałem go zastosować w czujniku jakości powietrza, lecz znajomy mi go odradził właśnie ze względu na to że trzeba jakoś go wystawić poza obudową, a ten mały drań „tak twierdzi znajomy” lubi się zapychać i jeśli nawet drobinka wilgoci się tam dostanie to tak samo. A wiadomo im więcej opinii tym lepiej :)
    Akurat moja stacja śmiga już od stycznia (praca inżynierska w której zbudowałem całą sieć czujników dla miasta Racibórz i okolice) , dane wysyłane są na serwer itd. ale uchowało się na szczęście jeszcze parę sztuk esp i jeden jest w domu :) dane wysyłane na thingspeak. Dla zainteresowanych link : https://thingspeak.com/channels/294249

    Odpowiedz
  • Póki co BME testuje od dwóch tygodni na UNO i od wczoraj na nano i działa.
    Co do błędnych pomiarów – ten czujnik służy do pomiaru ciśnienia i mierzy dokładnie, ale temperatura ma sporą odchyłkę od referencyjnych.
    Przebadałem na płytce prototypowej szereg czujników i tak:
    DHT11 – tylko do testów – wiarygodność mała
    LM35 – bardzo dokładny – niewielkie różnice ok 0,5 stopnia od referencyjnego
    DS18B20 – bardzo dokładny – wskazania pokrywają się z referencyjnym PT100 – max 0,5 stopnia
    DHT22 – dokładność lepsza niż DHT11, ale mimo wszystko mniej dokładny niż LM i DS
    BME 280 – do pomiaru temperatur nie warto go używać, chyba, że poglądowo – różnice ok 2,5 stopnia od PT100 referencyjnego.

    Odpowiedz
    • Z tą temperaturą to wiadomo, układ sam generuje ciepło i stąd ta niedokładność.
      A jak wygląda sprawa wilgotności względem DHT22 ? Jest całkiem znośna czy jednak nie ?

      Odpowiedz
  • A tutaj odczyty
    T zewn z DHT 22
    Twew z BME 280
    Cisn: BME280
    Wilgotność DHT 22
    Wilgotność z BME jest na poziomie 43%

    Wszystkie czujniki temperatury obok siebie (oprócz DHT22 za oknem) zastanawia duża różnica na wilgotności.
    Odczyt temperatury najbliższy rzeczywistemu w Dallas DS18B20 – wg PT 100 mam 28,53

    Odpowiedz
  • Jakbyś miał kiedyś czas i chęci oczywiście ;) to zobacz jaka jest różnica jak DHT22 jest zaraz obok BME280 bo bardzo mnie to interesuje :) Co do wilgotności to zależna ona jest od temperatury i zawartości pary wodnej w powietrzu, więc różnice między czujnikiem na zewnątrz jak i wewnątrz będą i jest to naturalne. Poniżej masz wykres przedstawiający te zależności :
    https://www.schock.pl/cache/media_2_avenit_mzag_schoeckmedia_image_thumbnailscheme_1140x642.jpg

    Odpowiedz
  • Wersja robocza – w domu to nie będzie wisieć na pewno. Do domu jak zrobię to na wyświetlaczu OLED, ale połączone z innymi rzeczami – sygnalizacja dwóch alarmów. Robione z tego, co było pod ręką i bardziej jako test czujników.

    Odpowiedz
  • Witam, od jakiegoś czasu bawię się modułami ESP z czujnikami DHT22. Z racji różnych wpisów odnośnie dokładności pomiaru przez te czujniki zamówiłem czujnik BME280 i wczoraj został podłączony. Niestety odchyłki między czujnikami trochę mnie zdziwiły . Na zdjęciu widać różnicę w odczytach a czujniki leżały obok siebie.

    Odpowiedz
    • Witaj,
      Tak jak wcześniej rozmawiałem z kolegą koala106…
      Różnica temperatur wynika z tego, że układ BMExxx się grzeje, a do tego dochodzi pojemność cieplna płytki PCB.
      Druga sprawa jest taka, że układu BME / BMP głównie służą do pomiaru ciśnienia, a reszta to skromne dodatki.
      Jak chcesz mieć dobry pomiar temperatury to możesz dać np. DS18B20.

      Odpowiedz
  • W takim razie do pomiaru wilgotności mógłbyś polecić jakiś czujnik, który był by wiarygodny w odczytach? Podłączałem dwa czujniki DHT obok siebie i różnica pomiaru była prawie 10 %. Może akurat trafiły mi się takie egzemplarze. Zależy mi na tym z racji tego, że chciałbym sterować osuszaczem powietrza w którym właśnie padła elektronika.

    Odpowiedz
    • Wydaje mi się, że DHT22 powinien być wystarczający. Niestety nie mam niczego godnego i dobrego do polecenia bo jedynie korzystałem z DHT11, DHT22 i czujników rezystancyjnych.
      Bynajmniej ze wszystkich tych czujników które miałem to najlepiej spisywał się DHT22, a trochę sporo się ich wykorzystało.

      Odpowiedz
  • Z doswiadczenia z różnymi czujnikami: dht11 tylko dla zabawy, dht22 tylko do wnętrz gdzie nie występuje duża wilgotność > 75%, najlepszy z tego jest bme280 używam od roku w kilku czujnikach jakości powietrza. Jednak są zabepieczone obudowami zewnętrznymi kupionymi na aliex.. taka ciekawostka, testowałem „dokładne” ds18b20 kilka sztuk z tej samej partii podłączone pod jeden kontroler, każdy pokazywał co innego rozrzut nawet 2-3 stopni, wiec nie sa takie dobre jak sie wydaje.

    Odpowiedz

Odpowiedz

anuluj

Stacja pogodowa Arduino Nano DHT 22 i BME280

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?