Библиотека DHT.h не импортируется

Я пытаюсь считать влажность и температуру с помощью датчика температуры DHT11 для Arduino UNO, используя библиотеку DHT.h. У меня есть код ниже:

#include <DHT.h>
#define dataPin 4
dht DHT;

void setup() {
  Serial.begin(9600)

}

void loop() {
  int readData = DHT.read11(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  Serial.println("Temperature: ")
  Serial.print(t)
  Serial.print(" ºC")
  Serial.println("Humidity: ")
  Serial.print(h)
  Serial.print(" % ")
  delay(2000)
}

При компиляции программы выдает ошибку:

fatal error: DHT.h: No such file or directory

Я также пытался использовать строчные буквы, но это не сработает. Есть ли причина, почему? Должен ли я установить его? Я попытался найти библиотеку в приложении Arduino Sketch — Include Library — Manage Libraries, но библиотеки там нет.

, 👍1

Обсуждение

На самом деле это пользовательская библиотека от adafruit. Он присутствует на https://github.com/adafruit/DHT-sensor-library., @svtag

adafruit/DHT-sensor-library не является правильной библиотекой для кода в вопросе. Этот код написан для другой библиотеки, для которой я предоставил инструкции ниже., @per1234

кажется, с вашей библиотекой проблем нет. Вы откалибровали свою формулу (математическое уравнение внутри кодирования)?, @ben


3 ответа


1
  1. Загрузить https://github.com/RobTillaart/Arduino/archive/master.zip
  2. Скопируйте подпапку Arduino-master/libraries/DHTstable загруженного файла в подпапку libraries папки вашего альбома. Вы можете найти папку с альбомом для скетчей в разделе Файл > Настройки > Расположение папки для скетчей в Arduino IDE.
  3. Измените первую строку скетча с:

    #include <DHT.h>
    

    к:

    #include <dht.h>
    

Теперь при попытке скомпилировать скетч вы по-прежнему будете сталкиваться с множеством ошибок. Однако они вызваны недостатком точек с запятой, а не библиотекой DHT, и, следовательно, не по теме этого вопроса.

,

Спасибо, @per1234, теперь ошибка не появляется. Но показания влажности и температуры неверны. Здесь температура около 20 градусов по Цельсию при влажности около 60%. А Arduino показывает температуру 2,3 градуса Цельсия и влажность 13%. Почему так? Как это исправить?, @Naseeb Gill


0

У меня возникли проблемы с использованием некоторых версий библиотеки DHT. Я предлагаю вам попробовать использовать другую версию dht.h

.

Эта версия мне подходит (есть более новые версии, но я рекомендую начать с этой старой, но золотой):

dht.h (606B, 12.06.2012)

//
// ФАЙЛ: dht.h
// ВЕРСИЯ: 0.1.00
// НАЗНАЧЕНИЕ: DHT Temperature & Библиотека датчика влажности для Arduino
//
// URL-адрес: http://arduino.cc/playground/Main/DHTLib
//
// ИСТОРИЯ:
// см. файл dht.cpp
//

#ifndef dht_h
#define dht_h

#if ARDUINO >= 100
 #include "Arduino.h"
#else
 #include "WProgram.h"
#endif

#define DHT_LIB_VERSION "0.1.00"

class dht
{
public:
    int read11(uint8_t pin);
    int read22(uint8_t pin);
    double humidity;
    double temperature;

private:
    uint8_t bits[5];  // буфер для приема данных
    int read(uint8_t pin);
};
#endif
//
// КОНЕЦ ФАЙЛА
//
,

0

попробуйте скачать эту библиотеку по этой ссылке и вставить в свой ide, у меня работает.

https://github.com/adafruit/DHT-sensor-library

,