Погода в доме: управление обогревателем с помощью ̶г̶о̶в̶н̶а̶ ̶и̶ ̶п̶а̶л̶о̶к̶ Arduino Mega 2560

Поделиться
HTML-код
  • Опубликовано: 2 дек 2024

Комментарии • 1

  • @BlackDembelMP
    @BlackDembelMP  7 лет назад

    Script:
    #include
    #include
    #include
    #include
    #include "DHT.h"
    #define BMP_SCK 13
    #define BMP_MISO 12
    #define BMP_MOSI 11
    #define BMP_CS 10
    #define DHTPIN 2
    #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
    const int HEATER_PIN = 3;
    const int SET_PIN = 0;
    float set_raw = 0;
    float set_c = 0;
    DHT dht(DHTPIN, DHTTYPE);
    Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
    void setup() {
    Serial.begin(9600);
    dht.begin();
    bme.begin();
    pinMode(HEATER_PIN, OUTPUT);
    pinMode(HEATER_PIN, OUTPUT);
    digitalWrite(HEATER_PIN, HIGH);
    }
    void loop() {
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    float hic = dht.computeHeatIndex(t, h, false);
    Serial.println("ПОГОДА В ДОМЕ");
    //BMP Output Section
    Serial.println("*");
    Serial.println("Вывод датчика BMP");
    Serial.print("Температура: ");
    Serial.print(bme.readTemperature());
    Serial.print(" *C ");
    Serial.print(" %\t");
    Serial.print("Атм. давление: ");
    Serial.print(bme.readPressure()/1000);
    Serial.println(" kPa ");
    Serial.println();
    //DHT Output Section
    Serial.println("Вывод датчика DHT");
    Serial.print("Температура: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(" %\t");
    Serial.print("Влажность: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Ощущается как: ");
    Serial.print(hic);
    Serial.println(" *C ");
    Serial.println();
    set_raw = analogRead(SET_PIN);
    set_c = map(set_raw, 0, 1023, 0, 27);
    Serial.print("Уставка температуры ");
    Serial.print(set_c);
    Serial.println(" *C ");
    Serial.println();
    if (set_c > hic) {
    digitalWrite(HEATER_PIN, LOW);
    Serial.println("Нагреватель ВКЛ");
    Serial.println("*");
    Serial.println();
    Serial.println();
    Serial.println();
    }
    else {
    digitalWrite(HEATER_PIN, HIGH);
    Serial.println("Нагреватель ВЫКЛ");
    Serial.println("*");
    Serial.println();
    Serial.println();
    Serial.println();
    }
    delay(3000);
    }