dht 22 code

algemene C code
Berichten: 16
Geregistreerd: 04 Dec 2019, 12:29

dht 22 code

Berichtdoor Pipo » 03 Jan 2020, 21:10

hoi allemaal .

een probleem ik heb een code welke eerst voor een DHT 11 maar heb deze om willen zetten naar een dht 22
loop tegen problemen aan , het werkt te niet
er klopt iets niet maar weet niet goed waar het aanligt.
kan iemand helpen ??




Code: Alles selecteren
#include <Wire.h>;
#include <DHT.h>;
#include <LiquidCrystal_I2C.h>;
LiquidCrystal_I2C lcd(0x27,20,4);
#define dataPin 8 // Defines pin number to which the sensor is connected
#define DHTTYPE DHT22
//DHT dht(DHTPIN, DHTTYPE);
const int Measure_Period = 2000; // Update measurement every 2000 msec.
unsigned long time_to_Measure = 0;
int meetwaarde = 2;
void setup() {
 Serial.begin(9600);
 lcd.begin(16, 2);
 lcd.print("DHT11 sensor: ");
 lcd.setCursor(0, 0);
 DHT22sensor.attach(2); // DHT22 met -, + en data
}
void loop() {
 DHT22_Meting();
}
void DHT22_Meting() {
 if ((millis() - time_to_Measure) > Measure_Period) {
 meetwaarde = (meetwaarde + 1) % 3;
 if (meetwaarde == 0) {
 int chk = DHT22sensor.read();
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Humidity: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT22sensor.humidity, 1);
 lcd.print(" %");
 }
 if (meetwaarde == 1) {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Temperatuur: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT22sensor.temperature, 1);
 lcd.print(" ");
 lcd.print(char(223));
 lcd.print("C");
 }
 if (meetwaarde == 2) {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Dauwpunt: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT11sensor.dewPoint(), 2);
 lcd.print(" ");
 lcd.print(char(223));
 lcd.print("C");
 }
 time_to_Measure = millis();
 }
}

Advertisement

Berichten: 16
Geregistreerd: 04 Dec 2019, 12:29

Re: dht 22 code

Berichtdoor Pipo » 03 Jan 2020, 22:45

zelf denk ik dat het de library het probleem kan zijn

Berichten: 3135
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: dht 22 code

Berichtdoor shooter » 04 Jan 2020, 00:22

je noemt het datapin maar het moet DHTpin zijn, want de lib moet wel weten waar de DHT22 op zit.
paul deelen
shooter@home.nl

Berichten: 16
Geregistreerd: 04 Dec 2019, 12:29

Re: dht 22 code

Berichtdoor Pipo » 05 Jan 2020, 00:19

heb dit aangepast maar het volgend probleem "class dht has no member named



#include <Wire.h>;
#include <DHT.h>;
#include <LiquidCrystal_I2C.h>;
LiquidCrystal_I2C lcd(0x27,20,4);
//#define dataPin= 2; // Defines pin number to which the sensor is connected
#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);
const int Measure_Period = 2000; // Update measurement every 2000 msec.
unsigned long time_to_Measure = 0;
int meetwaarde = 2;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("DHT22 sensor: ");
lcd.setCursor(0, 0);
//DHT22sensor.attach(2); // DHT22 met -, + en data
int chk;
float hum; //Stores humidity value
float temp; //Stores temperature value


}
void loop() {
DHT22_Meting();
}
void DHT22_Meting() {
if ((millis() - time_to_Measure) > Measure_Period) {
meetwaarde = (meetwaarde + 1) % 3;
if (meetwaarde == 0) {
int chk = dht.read();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humidity: ");
lcd.setCursor(0, 1);
lcd.print(dht.humidity, 1);
lcd.print(" %");
}
if (meetwaarde == 1) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperatuur: ");
lcd.setCursor(0, 1);
lcd.print(DHT22sensor.temperature, 1);
lcd.print(" ");
lcd.print(char(223));
lcd.print("C");
}
if (meetwaarde == 2) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Dauwpunt: ");
lcd.setCursor(0, 1);
lcd.print(DHT11sensor.dewPoint(), 2);
lcd.print(" ");
lcd.print(char(223));
lcd.print("C");
}
time_to_Measure = millis();
}
}

Gebruikers-avatar
Berichten: 2491
Geregistreerd: 06 Aug 2016, 01:03

Re: dht 22 code

Berichtdoor Koepel » 06 Jan 2020, 19:21

Laat je sketch even voor wat het is.
Kijk welke DHT library je hebt geïnstalleerd. Als je er meerdere hebt geïnstalleerd dan kun je beter allemaal weg doen en opnieuw beginnen.

Heb je één DTH library geinstalleerd, kijk dan in het menu bij de voorbeelden. Probeer een voorbeeld van die library.

In de "Bibliotheek Beheer" in de Arduino IDE staan al zo'n 5 DHT libraries voor de DHT22. Op Github staan er nog veel meer.
BasOnTech gebruikt twee libraries van Adafruit: https://www.youtube.com/watch?v=2eKUI7Cq1nM.
Ik gebruik(te) de library van RobTillaart: https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib.

Berichten: 16
Geregistreerd: 04 Dec 2019, 12:29

Re: dht 22 code

Berichtdoor Pipo » 08 Jan 2020, 21:44

hoi Koepel thanks voor de tips die van Rob Tillaart lukken nog niet

Gebruikers-avatar
Berichten: 2491
Geregistreerd: 06 Aug 2016, 01:03

Re: dht 22 code

Berichtdoor Koepel » 08 Jan 2020, 23:34

Daar kan ik niet zo veel mee.

Dan blijf ik met tientallen vragen zitten: Welk Arduino board heb je ? Hoe heb je het aangesloten ? Heb je een pullup weerstand ? Welke waarde heeft de pullup weerstand ? Heb je meerdere DHT libraries in je "libraries" map gevonden ? Hoe heb je de library van RobTillaart geïnstalleerd ? Welk voorbeeld van die library heb je geprobeerd ? Wat lukt er niet ?

Berichten: 3135
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: dht 22 code

Berichtdoor shooter » 09 Jan 2020, 11:52

in de loop staat dhtsensor 22 of 11 en in de kop staat alleen dht dus kijk de namen na.
paul deelen
shooter@home.nl

Berichten: 16
Geregistreerd: 04 Dec 2019, 12:29

Re: dht 22 code

Berichtdoor Pipo » 15 Jan 2020, 00:29

in middels een stuk verder .
maar nu loopt hij vast op " lcd.print(DHT22sensor.dewPoint(), 2);" vast (foutmelding )
volgens mij haalt hij dit weg uit "meetwaarde = (meetwaarde + 1) % 3;" en hier staat +1 moet dit niet +2 zijn ?





Code: Alles selecteren
#include <Wire.h>
#include <DHT.h>;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
#define dht22 DHT22sensor;      // DHT 22  (AM2302), AM2321
//dht22 DHT22sensor;
const int Measure_Period = 2000; // Update measurement every 2000 msec.
unsigned long time_to_Measure = 0;
int meetwaarde = 2;
void setup() {
 Serial.begin(9600);
 lcd.begin(16, 2);
 lcd.print("DHT22 sensor: ");
 lcd.setCursor(0, 0);
 DHT22sensor.attach(2); // DHT11 met -, + en data
}
void loop() {
 DHT11_Meting();
}
void DHT22_Meting() {
 if ((millis() - time_to_Measure) > Measure_Period) {
 meetwaarde = (meetwaarde + 1) % 3;
 if (meetwaarde == 0) {
 int chk = DHT22sensor.read();
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Humidity: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT22sensor.humidity, 1);
 lcd.print(" %");
 }
 if (meetwaarde == 1) {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Temperatuur: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT22sensor.temperature, 1);
 lcd.print(" ");
 lcd.print(char(223));
 lcd.print("C");
 }
 if (meetwaarde == 2) {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("Dauwpunt: ");
 lcd.setCursor(0, 1);
 lcd.print(DHT22sensor.dewPoint(), 2);
 lcd.print(" ");
 lcd.print(char(223));
 lcd.print("C");
 }
 time_to_Measure = millis();
 }
}

Berichten: 3135
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: dht 22 code

Berichtdoor shooter » 15 Jan 2020, 10:19

een dergelijke fout kun je vinden met het uit elkaar halen van zo een lange instructie dus lcd.print een variabele die je gemaakt hebt in een andere regel.
paul deelen
shooter@home.nl

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast