DHT11

Тема в разделе "Arduino & Shields", создана пользователем port-Maksim, 26 май 2019.

Метки:
  1. port-Maksim

    port-Maksim Нерд

    Код (C++):
    // библиотека для работы с датчиками серии DHT
    #include <TroykaDHT.h>
    // создаём объект класса DHT
    // передаём номер пина к которому подключён датчик и тип датчика
    // типы сенсоров: DHT11, DHT21, DHT22
    DHT dht(4, DHT11);

    int relepin = 4;
    int relepin2 = 3;

    void setup()
    {
      pinMode(relepin, OUTPUT);
      pinMode(relepin2, OUTPUT);
      // открываем последовательный порт для мониторинга действий в программе
      Serial.begin(9600);
      dht.begin();
    }

    void loop()
    {
      // считывание данных с датчика
      dht.read();
      // проверяем состояние данных
      switch(dht.getState()) {
        // всё OK
        case DHT_OK:
          // выводим показания влажности и температуры
          Serial.print("Temperature = ");
          Serial.print(dht.getTemperatureC());
          Serial.println(" C \t");
          Serial.print("Temperature = ");
          Serial.print(dht.getTemperatureK());
          Serial.println(" K \t");
          Serial.print("Temperature = ");
          Serial.print(dht.getTemperatureF());
          Serial.println(" F \t");
          Serial.print("Humidity = ");
          Serial.print(dht.getHumidity());
          Serial.println(" %");
          break;
        // ошибка контрольной суммы
        case DHT_ERROR_CHECKSUM:
          Serial.println("Checksum error");
          break;
        // превышение времени ожидания
        case DHT_ERROR_TIMEOUT:
          Serial.println("Time out error");
          break;
        // данных нет, датчик не реагирует или отсутствует
        case DHT_ERROR_NO_REPLY:
          Serial.println("Sensor not connected");
          break;
      }
     
      // ждём две секунды
      delay(2000);
     
      if(dht.getTemperatureC < 18.00) digitalWrite(relepin, LOW);
      else digitalWrite(relepin, HIGH);
      if(dht.getHumidity < 70.00) digitalWrite(relepin2, LOW);
      else digitalWrite(relepin2, HIGH);
    }
    Проблема в этом коде
    if(dht.getHumidity < 70.00) digitalWrite(relepin2, LOW);
    else digitalWrite(relepin2, HIGH);
     
  2. port-Maksim

    port-Maksim Нерд

  3. NikitOS

    NikitOS Король шутов Администратор

    Почему 18.00 и 70.00?
    Температура и влажность же целым числом приходят...

    dht.getTemperature => dht.getTemperature()
    dht.getHumidity => dht.getHumidity()
     
    Daniil, MR_YouTube, port-Maksim и ещё 1-му нравится это.