Done the search,
found the other 3 treads,
read them,
tried what their suggested,
but my problem is not quite the same.
My problem
I downloaded the DHT22 sensor library from GiT,
unZipped and copied into my "Library" directory.
Renamed the Library file name to DHT, the same as the .h and .cpp files inside the library.
Problem is without the UNO even connected to my computer I get the ERROR massage just trying to compile the example that comes with thee Library.
Then I tried a new sketch, but get the same ERROR as soon as I #include < DHT.h> statement.
It also includes a <DHT_U.h)>statement which i just deleted as I thought this was the initial problem.It does not change colour.
If I load another sketch with a LCD library in it it leads perfectly and runs fine.
When you encounter an error you'll see a button on the right side of the orange bar "Copy error messages". Click that button. Paste the error in a message here USING CODE TAGS (</> button on the toolbar).
[coArduino: 1.8.3 (Windows 10), Board: "Arduino/Genuino Uno"
In file included from C:\Users\Herman\Documents\Arduino\libraries\DHT\DHT_U.cpp:22:0:
C:\Users\Herman\Documents\Arduino\libraries\DHT\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include <Adafruit_Sensor.h>
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
de]
Sometimes libraries have dependencies on other libraries. That is the case here. You installed the DHT library but you didn't install the Adafruit Unified Sensor library that the DHT library requires. The solution is to simply install the Adafruit Unified Sensor library:
Sketch > Include Library > Manage Libraries...
Wait for download to finish.
In the "Filter your search..." box, type "Adafruit Unified Sensor".
Scroll down until you see "Adafruit Unified Sensor by Adafruit". Click on it.
THANKS! :astonished:
So it is some hidden library, as i have not included it in the Example sketch and it works.
If I create a new sketch do i include the "new" Unified sensor library or the DHT library?[code// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
#define DHTPIN 2 // what digital pin we're connected to
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}]
It's not "hidden" at all. I already explained it. Just as you might use a library in your sketch to add useful functions, libraries may also use other libraries. Usually those libraries will document where to get their dependencies in the documentation, as was the case here. You just need to make the effort to actually read the documentation and follow the directions
HermanJFourie:
as i have not included it in the Example sketch and it works.
That's because the DHT sensor library has the #include directive for the Adafruit Unified Sensor library.
HermanJFourie:
If I create a new sketch do i include the "new" Unified sensor library or the DHT library?
With any modern version of the Arduino IDE, you only need to add #include directives in your sketch for the libraries that the sketch uses. Those libraries will have #include directives for any of their dependencies. You are welcome to add those #include directives in your sketch too. It makes no difference.
HermanJFourie:
Don't know what happened there??
It's a good idea to click the "Preview" button before posting to check how it will look.