expected primary-expression before '.' token

Hallo ik werk aan een broedmachine met een Arduino Nano en een dht 11. Deze fout komt bij het uploaden:

Arduino:1.8.12 (Windows Store 1.8.33.0) (Windows 10), Board:“Arduino Nano, ATmega328P (Old Bootloader)”

C:\Users\famvanGarderen\Documents\Arduino\nano_egg_incubator\nano_egg_incubator.ino: In function ‘void loop()’:

nano_egg_incubator:31:16: error: expected primary-expression before ‘.’ token

float h = dht.readHumidity();

^

nano_egg_incubator:33:16: error: expected primary-expression before ‘.’ token

float t = dht.readTemperature();

^

nano_egg_incubator:35:16: error: expected primary-expression before ‘.’ token

float f = dht.readTemperature(true);

^

exit status 1
expected primary-expression before ‘.’ token

Dit rapport zou meer informatie bevatten met
“Uitgebreide uitvoer weergeven tijden compilatie”
optie aan in Bestand → Voorkeuren.

Ik snap niet hoe ik dit kan oplossen. Heeft iemand een idee
dit is de volledige code:

 /********************************
  name: 5V relay module and DHT 11/22/21 humidity and temperature sensor module
  function: This program shows how the temperature and humidity sensor turns on
            devices or power sockets connected to 5V relay module
  email: info.acoptex@gmail.com
  web: http://acoptex.com
********************************/
#include <dht.h> // include library

const int relayPin = 8;
const int led = 7;
const int DHTPIN = A0;

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)


/********************************/
void setup() {
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  // 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;
  }
  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("Temperature = ");
  Serial.print(f);
  Serial.print(" *F ");
  Serial.print("Humidity = ");
  Serial.print(h);
  Serial.print(" %\t ");
  Serial.println();
  if (h >= 70) { // you can change humidity value here - h>=66 to your preffered number
    digitalWrite(relayPin, LOW);
    digitalWrite(led, LOW);
  }
  else {
    digitalWrite(relayPin, LOW);
    digitalWrite(led, HIGH);
  }
  if (t <= 36) {// you can change temperature value here - t>= 30 to your preferred number or change from Celsius to Fahrenheit readings
    digitalWrite(relayPin, HIGH);
    digitalWrite(led, LOW);
  }
  else if (t>= 38) {
    digitalWrite(relayPin, LOW);
    digitalWrite(led, LOW);
  }
}

You have defined nothing called “dht”.

Bedoel je:

define dht?

Heb ik geprobeerd maar hetzelfde resultaat :

expected primary-expression before '.' token

Ik heb ook dit: geprobeerd

DHT dht (DHTPIN, DHTTYPE); // Initialiseer DHT-sensor

Maar dan krijg ik deze foutmelding:

Arduino:1.8.12 (Windows Store 1.8.33.0) (Windows 10), Board:“Arduino Nano, ATmega328P (Old Bootloader)”

nano_egg_incubator:19:9: error: expected constructor, destructor, or type conversion before ‘(’ token

DHT dht (DHTPIN, DHTTYPE); // Initialiseer DHT-sensor

^

C:\Users\famvanGarderen\Documents\Arduino\nano_egg_incubator\nano_egg_incubator.ino: In function ‘void loop()’:

nano_egg_incubator:31:16: error: expected primary-expression before ‘.’ token

float h = dht.readHumidity();

^

nano_egg_incubator:33:16: error: expected primary-expression before ‘.’ token

float t = dht.readTemperature();

^

nano_egg_incubator:35:16: error: expected primary-expression before ‘.’ token

float f = dht.readTemperature(true);

^

exit status 1
expected constructor, destructor, or type conversion before ‘(’ token

Dit rapport zou meer informatie bevatten met
“Uitgebreide uitvoer weergeven tijden compilatie”
optie aan in Bestand → Voorkeuren.

#include <DHT.h> // include library DHT in hoofdletters

en

DHT dht (DHTPIN, DHTTYPE); // toevoegen voor void setup()

Bedankt heb ik geprobeerd maar dit is het resultaat:

Arduino:1.8.12 (Windows Store 1.8.33.0) (Windows 10), Board:“Arduino Nano, ATmega328P (Old Bootloader)”

nano_egg_incubator:9:9: error: macro names must be identifiers

#define <DHT.h>//include library

^

exit status 1
macro names must be identifiers

Dit rapport zou meer informatie bevatten met
“Uitgebreide uitvoer weergeven tijden compilatie”
optie aan in Bestand → Voorkeuren.

:frowning:

Hoi Aartjan, welkom.

Zie jij ook de verschillen tussen het advies en jouw uitwerking ?

Zorg er voor dat je zegt (typt) wat je bedoelt. Want een persoon zou wel kunnen begrijpen wat je bedoelt in plaats van wat je precies zegt, maar de IDE vergeeft je niets en zal elke fout afstraffen.

include is niet hetzelfde als define

je gebruikt een library genaamd DHT, kijk in het voorbeeld van de library hoe dat moet. die dht moet je dus includen want dat is een stuk software (kijkmaar naar het voorbeeld want daar komt jouw tekst vandaan. zorg wel dat dht in de documenten staat onder arduino librarys. de fout die je beschrijft is hoe de compiler de fout vindt, maar de fout is vaak op de vorige regel of zo. hou het eerst simpel

Lezen blijft een kunst heh :) :)