dht 22

hoi

ik heb een arduino uno en een dht 22

heb al diverse sketches geprobeerd maar krijg altijd dezelfde foutmelding

Arduino: 1.6.12 (Windows 10), Board:"Arduino/Genuino Uno"

C:\Users\Tamar\OneDrive\Documenten\Arduino\dht134\dht134.ino:6:18: fatal error: DHT.h: No such file or directory

#include <DHT.h>;

^

compilation terminated.

exit status 1
Fout bij het compileren van board Arduino/Genuino Uno

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

wie kan mij helpen

met vriendelijke groet manfred

Dat komt omdat je de library niet geinstalleerd hebt. Daarom kan de compiler het bestand DHT.h, dat een deel is van de library, niet vinden.

Download de library hier: GitHub - adafruit/DHT-sensor-library: Arduino library for DHT11, DHT22, etc Temperature & Humidity Sensors.
En meer info vind je hier: https://www.arduino.cc/en/Guide/Libraries.

Pieter
P.S: Gebruik [code] tags wanneer je code of error messages post.

Hoi

Super heb het zo gedaan en nu werkt het

bedankt

Hoi

Zal mij eerst even voorstellen (vorige post helemaal vergeten )
Ik ben Manfred 44 jaar en woonachtig in het zuiden des lands
Ik heb 0 ervaring met arduino tot 3 weken geleden via internet wat sketches gezocht en geprobeerd. Ledje aan uit en knipperledje servo sweep gedaan toen begonnen met de waardes te veranderen om te begrijpen wat het dan deed dit lukte allemaal.
Sinds afgelopen week ben ik aan het bouwen aan een terrarium controller eerst heel simpel en dan steeds uitgebreider

Wat ik tot nu toe heb is

Temperatuur min 24 graden en max 27 graden werkt

Vochtigheid min 80% max 95% werkt

Licht aan uit werkt
Maar nu komt het het licht moet in de toekomst in de ochtend rustig aangaan fade in ?
Rond 12 uur op zijn felst zijn en in de avond rustig minder worden fade out ?
Dan snacht`s het uv en rood licht aan (maanlicht en goed voor de planten )

Ben mij bewust dat ik dan een timer moet gaan gebruiken en deze moet combineren met de sketch die ik nu al heb maar hoe moet ik dit samen voegen is hier nog een bepaalde volgorde voor

De sketch wat ik nu al heb is deels gevonden op internet maar wel zelf aangepast naar mijn wensen
DWZ het orgineel had alleen maar een max temp en max vochtigheid

ik werk met de arduino uno

#include "DHT.h"

#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define uv 3 // uv licht
#define fan 4 //pin waar warmtebron op zit
#define pump 5 //pin waar de pomp op zit

int minHum = 80; // minimale vochtichheid
int maxhum = 95; //maximale vochtigheid
int minTemp = 24; // minimale temp.
int maxtemp = 27; // maximale temp.
DHT dht(DHTPIN, DHTTYPE); // dht sensor

void setup() {
pinMode( uv, OUTPUT);
pinMode(fan, OUTPUT); // wat te doen met pin 4
pinMode(pump, OUTPUT); // wat te doen met pin 5
Serial.begin(9600);
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
float t = dht.readTemperature();

// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
digitalWrite(uv, HIGH);
delay(1000);

digitalWrite(uv, LOW);
if ( t < minTemp) //temp lager dan 24 lamp aan

digitalWrite(fan, HIGH); // lamp aan
if ( t > maxtemp) // temp hoger dan 27 lamp uit
digitalWrite(fan, LOW);{ // lamp uit
}
if (h < minHum ) // hum. lager dan 80% pomp aan
digitalWrite(pump, HIGH); // pomp aan
if (h > maxhum ) // hum. hoger dan 95% pomp uit
digitalWrite(pump, LOW); //pomp uit
{
}

Serial.print("Humidity: "); // print humidity naar seriele monitor
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: "); // print temperatuur naar seriele monitor
Serial.print(t);
Serial.println(" *C ");
}

alvast bedankt

Terrariums zijn kennelijk populair tegenwoordig want het onderwerp komt regelmatig terug. Dus kun je volgens mij zat terug vinden in dit forum of op www.arduinoforum.nl.

Nu over je aanpak:
a) Je leert al veel door eenvoudige sketches te bestuderen en hoe ze werken.
b) Wat je niet leert, is programmeren (wel coderen). Ik trek dit altijd uit elkaar omdat als je kan programmeren (structuur opbouwen van hoe het programma eruit komt te zien) het niet meer uitmaakt welke taal je gebruikt.
c) Een troost.... in het onderwijs komt het ook niet meer voor bijna. Terwijl er prima technieken beschikbaar zijn als Flow charting, Nasi-Schneiderman en Jackson Structure Programming (mijn voorkeur).
d) Door eerst de programmeer techniek te beheersen en ook problemen uit elkaar te trekken in deel problemen kun je je focussen op zo'n deel probleem waardoor het overzicht behouden blijft.
e) Last but not least... Werk netjes. Lijn je programma uit (automatisch via de CTRL-T optie in de IDE. Het zorgt ervoor de je code (ook voor anderen) er netjes uitziet en motiveert ook anderen om aandacht aan je code te besteden.

bedankt voor je uitleg

met structuur bedoel de opbouw volgorde van hoe de programma`s eruitzien

voor een gedeelte snap ik dat maar wat ik niet weet is als ik 2 sketches samen voeg,
bijvoorbeeld programma 2 in zijn geheel onder programma 1 kan schrijven of moet ik dan bij de void ook de delen van programma 2 zetten

met vriendelijke groet manfred

Sketches samenvoegen is eigenlijk de volledig verkeerde aanpak..... Daarom lopen de meeste ook stuk. Uitzoeken waarom iets in een sketch werkt kun daarna splitsen in het initialisatie gedeelte (setup()) en verwerk gedeelte (loop()).

Beetje in pseudocode:

setup() {
    initialisatie van sensor 1
    initialisatie van sensor 2
}

loop() {
   verwerken van sensor 1
   verwerken van sensor 2
}

Dat je het niet snapt komt omdat je je laat sturen door de sketches niet door jouw programma ontwerp (want die is er niet). Als je de sketches ff vergeet, kun je jezelf de volgende vragen stellen:
a) Welke deel functionaliteiten heb ik nodig
b) hoe verwerk ik deze (dit moet naar de loop())
c) wat moet ik doen in de initialisatie (dit moet naar de setup())
Dus eerst in structuren denken en dan pas oplossen. Nu heb je oplossingen en probeer je een structuur te maken. Vrijwel alle beginners lopen hierop stuk omdat ze door de bomen het bos niet meer zien.
Eerst het bos definieren en dan de bomen plaatsen en dan bepalen wat ik moet voorbereiden.

In je gewone werk ga je toch ook niet klakkeloos beginnen en hopen dat het goed komt?

hoi Nico

heb je volkomen gelijk in is idd een betere aanpak
ga verder met onderzoeken en leren

groet manfred

suc6