Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SFE_BMP180.h>
  2. #include <DHT.h>
  3. #include <LiquidCrystal_I2C.h>
  4.  
  5. #define DHT11PIN 2
  6. #define LED_ZIEL 8
  7. #define LED_ZOLT 9
  8. #define LED_CZER 10
  9.  
  10. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Ustawienie adresu ukladu na 0x27
  11. DHT dht;
  12. SFE_BMP180 pressure;
  13.  
  14. void setup()  
  15. {
  16.   lcd.begin(16,2);   // Inicjalizacja LCD 2x16
  17.   Serial.begin(9600);
  18.   dht.setup(DHT11PIN);
  19.   pinMode(6,OUTPUT);
  20.  
  21.   lcd.backlight(); // zalaczenie podwietlenia
  22.   lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna)
  23.   lcd.print("Dzien dobry");
  24.   delay(1000);
  25.   pinMode(LED_ZIEL, OUTPUT);
  26.   digitalWrite(8, LOW);
  27.   pinMode(LED_ZOLT, OUTPUT);
  28.   digitalWrite(9, LOW);
  29.   pinMode(LED_CZER, OUTPUT);
  30.   digitalWrite(10, LOW);
  31.   pinMode(12, INPUT_PULLUP); //przycisk
  32.  
  33.   if (pressure.begin())
  34.     Serial.println("BMP180 init success");
  35.   else
  36.   {
  37.     // blad
  38.     Serial.println("BMP180 init fail\n\n");
  39.   }
  40.  
  41. }
  42.  
  43. void showTemperature(int fahrenheit, int sensorVal, int temperatura){
  44.    if (sensorVal == HIGH) {
  45.     lcd.print(temperatura);
  46.     lcd.println("*C        ");
  47.   } else {
  48.     lcd.print(fahrenheit);
  49.     lcd.println("*F        ");
  50.   }}
  51.  
  52. void loop()
  53. {
  54.   char status;
  55.   double P, T;
  56.   int wilgotnosc = dht.getHumidity();
  57.   int temperatura = dht.getTemperature();
  58.   double fahrenheit = (temperatura*1.8)+32;
  59.   int sensorVal = digitalRead(12);
  60.   //czy przycisk dziala
  61.   //Serial.println(sensorVal);
  62.   if (dht.getStatusString() == "OK") {
  63.     lcd.setCursor(0,0);
  64.     lcd.print(wilgotnosc);
  65.     lcd.print("%RH | ");
  66.     showTemperature(fahrenheit, sensorVal, temperatura);
  67.     //lcd.println("*C        ");}
  68.   }
  69.      status = pressure.startPressure(3);
  70.       if (status != 0)
  71.       {
  72.         // sprawdzanie cisnienia
  73.         delay(status);
  74.  
  75.         status = pressure.getPressure(P,T);
  76.         if (status != 0)
  77.         {
  78.           // wypuszczamy na serial
  79.           //Serial.print("absolute pressure: ");
  80.           lcd.setCursor(0, 1);
  81.           lcd.print(P+80,2);}}
  82.           lcd.print("hPa");
  83.   //sprawdzic czujnik bo daje temperature a nastepnie 0
  84.   if(temperatura>0&&temperatura<=25){
  85.     digitalWrite(8, HIGH);}
  86.     else if(temperatura>25&&temperatura<=30){
  87.       digitalWrite(9, HIGH);
  88.       }
  89.       else if(temperatura>30){
  90.         digitalWrite(6, HIGH);
  91.         int f;
  92.         for(f=635;f<=912;f++){
  93.         tone(6, f);
  94.         delay(7);}
  95.         for(f=912;f>=635;f--){
  96.         tone(6, f);
  97.         delay(7);}
  98.         digitalWrite(10, HIGH);}
  99.   //Odczekanie wymaganego czasugo
  100.   //Serial.print(temperatura);
  101.   delay(1000);
  102.   lcd.backlight(); // zalaczenie podswietlenia
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement