ARDUINO - Stacja pogody
-
jacek
09/07/2015
- Informatyka
- 3506 czytań 0 komentarzy
- ARDUINO UNO z ATMEGA 383 lub inny podobny
- Czujnik DHT22
- Rezystor 10kR
- kondensator 100pF - ceramiczny
- Przewód trzy-cztero żyłowy

W pierwszej kolejności zrobiony został termometr. Do platformy ARDUINO podłączony został scalony czujnik temperatury DS1820, a na kontrolerze działał program monitorowania temperatury z wyznaczaniem temperatury minimalnej i maksymalnej w czasie pracy. Temperatura to jednak dopiero początek. Do pełni danych potrzebna jest przynajmniej wilgotność względna. I dlatego rozbudowie uległ system pomiaru.

Jak To Jest Zrobione?
Materiały:

Reszta to już tylko oprogramowanie. Dane zostają odczytane z czujnika. Bieżąca temperatura i wilgotność prezentowane są na wyświetlaczu. Do tego w dwóch zmiennych przechowuje się wartość maksimum i minimum z odczytanych temperatur. Co dwie sekundy odczytywane są dane z czujnika, modyfikowane wartości temperatury minimalnej i maksymalnej i wszystkie te dane prezentowane są na wyświetlaczu LCD. W tym rozwiązaniu zastosowano możliwość monitorowania danych przez port szeregowy COM. Po podłączeniu ARDUINO do komputera przez USB uruchamiamy IDE i włączamy monitor portu szeregowego. Na ekranie zobaczymy bieżące odczyty danych.


Wartości min i max temperatury przechowywane są do czasu kolejnego restartu mikro-kontrolera. Z czasem będą przechowywane w pamięci i możliwe do odczytu, aby np. prześledzić zmiany temperatury i wilgotności. Do tego jednak wymagana jest dalsza rozbudowa urządzenia. Możliwe jest też prezentowanie danych na stronie WWW. Więc możliwości zmian są szerokie.
Kod Programu "Stacja Pogody"
=============
//Stacja Pogody //Autor Jacek Patka //biblioteka DHT22 - https://github.com/markruys/arduino-DHT //Pomiar temperatury i wilgotnosci //wyznaczenie temperatury minimalnej i maksymalnej //dane na LCD i COM #include "DHT.h" #include <LiquidCrystal.h> DHT dht; LiquidCrystal lcd(8,9,4,5,6,7); float temp, min = 150, max = -150; void setup() { lcd.begin(16, 2); lcd.print("Reading sensor"); Serial.begin(9600); Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)"); dht.setup(2); // data pin 2 } void loop() { delay(dht.getMinimumSamplingPeriod()); float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); //Wyznaczenie temperatury min i max if(temperature < min) min = temperature; if(temperature > max) max = temperature; //Dane na LCD lcd.clear(); char tempF[6]; char humF[6]; dtostrf(temperature, 5, 1, tempF); dtostrf(humidity, 2, 0, humF); lcd.print("T:"); lcd.print(tempF); lcd.print((char)223); lcd.print("C "); lcd.print("H: "); lcd.print(humF); lcd.print("%"); char minF[6]; char maxF[6]; dtostrf(min, 5, 1, minF); dtostrf(max, 5, 1, maxF); lcd.setCursor(0,1); lcd.print("<"); lcd.print(minF); lcd.write((char)223); // lcd.write('C'); lcd.setCursor(9,1); lcd.print(">"); lcd.print(maxF); lcd.write((char)223); // lcd.write('C'); //Dane na COM Serial.print(dht.getStatusString()); Serial.print("\t"); Serial.print(humidity, 1); Serial.print("\t\t"); Serial.print(temperature, 1); Serial.print("\t\t"); Serial.println(dht.toFahrenheit(temperature), 1); }=============
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.
Zaloguj się , żeby móc zagłosować.
Brak ocen. Może czas dodać swoją?