Forum: Mikrocontroller und Digitale Elektronik DHT22 (AM2302) an TM1637 (4-Digit)


von Bernd Z. (carlo1309)


Angehängte Dateien:

Lesenswert?

Hallo,
für ein Terrarium will ich die Temperatur und die Humidity auf einem 4 
Digit Display anzeigen.
DHT und TM1637 funktionieren einzeln für sich.
Nun habe ich zwar etwas im Netz gefunden, wo beide miteinander verknüpft 
sind, da sind paar Sachen nicht zu verwenden. Einige Fehlermeldungen 
konnte ich beseitigen, aber jetzt stolpere ich über: (im unteren Bereich 
nach void loop 5. Zeile)
==================
cannot convert 'DHT::readTemperature' from type 'float (DHT::)(bool)' to 
type 'int'
==================
Im Anhang die Lib die ich verwendet habe und der sketch.

Hier ein Link zur ursprünglichen Quelle:
https://www.brainy-bits.com/4-bits-7-segment-led-display-with-arduino/

==================

#include "DHT.h"

#include "TM1637Display.h"

//{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
//0~9,A,b,C,d,E,F


#define DHTPIN 2 // Pin sensor is connected to
#define DHTTYPE DHT22    // Das ist der DHT22 (AM2302) Sensor

#define CLK 3 //Pins for TM1637
#define DIO 4

TM1637Display display(CLK, DIO);

DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dth“ 
angesprochen


 void setup(){
 Serial.begin(9600);
      // display.init();
      // Den Befehl gibt es beim Modul nicht
 dht.begin();
      // TM1637Display.set(BRIGHT_TYPICAL);
      // Den Befehl gibt es beim Modul nicht
 display.setBrightness(0x0f);
      //BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
      //Den Befehl gibt es beim Modul nicht

  delay(1500);  //Delay to let system boot


}//end "setup()"


void loop(){

//Start of Program

      //  DHT.read11(dht_pin);

  delay(2000); // Wait a few seconds between measurements.

 int temp = dht.readTemperature;
 int humidity = dht.readHumidity();

 int digitoneT = temp / 10;
 int digittwoT = temp % 10;

 int digitoneH = humidity / 10;
 int digittwoH = humidity % 10;


    tm1637.display(1,digitoneT);
    tm1637.display(2,digittwoT);
    tm1637.display(3,12);  // put a C at the end

    delay (3000);

    tm1637.display(1,23);
    tm1637.display(2,digitoneH);
    tm1637.display(3,digittwoH);


  //Wait 3 seconds before accessing sensor again.

  //Fastest should be once every two seconds.
    delay(3000);

}// end loop()

==================

: Bearbeitet durch User
von Bernd Z. (carlo1309)


Lesenswert?

Kann gerade nicht hochladen...

von (Gast) (Gast)


Lesenswert?

Bernd Z. schrieb:
> cannot convert 'DHT::readTemperature' from type 'float (DHT::)(bool)' to
> type 'int'

Bernd Z. schrieb:
> int temp = dht.readTemperature;
>  int humidity = dht.readHumidity();

Vergleich' mal die beiden Zeilen...bei der Temperatur fehlt der 
Funktionsaufruf.

von Bernd Z. (carlo1309)


Lesenswert?

Du meinst die Klammer?
Ich bin absoluter Neuling, ich arbeite mehr mit drag und drop :-(

Hab ich nicht gesehen

von Bernd Z. (carlo1309)


Angehängte Dateien:

Lesenswert?

Jetzt ist hier noch ein Fehler
============
ab Zeile 11 von unten musste ich "tm1637" gegen "TM1637Display" ersetzen

Hier der nochmal geänderte Teil:

    TM1637Display.display(1,digitoneT); // TM1637Display statt tm1637
    TM1637Display.display(2,digittwoT);
      //  TM1637Display.display(3,12);  // put a C at the end

    delay (3000);

      //  tm1637.display(1,23); // vermutlich ein H darstellen
    TM1637Display.display(2,digitoneH);
    TM1637Display.display(3,digittwoH);


      //Wait 3 seconds before accessing sensor again.

      //Fastest should be once every two seconds.
    delay(3000);

}     // end loop()

=============

Fehlermeldung: expected unqualified-id before '.' token

von Karl M. (Gast)


Lesenswert?

Bernd Z. schrieb:
> Ich bin absoluter Neuling, ich arbeite mehr mit drag und drop :-(

Das ist ja lustig, programmieren per Drag & Drop.

Das kann ja nur in die Hose gehen und hat nichts mit einem 
ingenieurhaften Vorgehen zu tun.

von Forist (Gast)


Lesenswert?

Bernd Z. schrieb:
> für ein Terrarium will ich die Temperatur und die Humidity auf einem 4
> Digit Display anzeigen.

Du solltest dich entscheiden, ...
  "Temperature and Humidity" oder "Temperatur und (Luft-)Feuchte"

von carlo1309 (Gast)


Lesenswert?

Dann: "Temperature and Humidity"
Worin besteht der Unterschied?

von Mein Senf (Gast)


Lesenswert?

carlo1309 schrieb:
> Dann: "Temperature and Humidity"
> Worin besteht der Unterschied?

Dann wärst du aber in einem englische Forum besser aufgehoben. :-)

von Mein Senf (Gast)


Lesenswert?

BTW, die LED-Displays gibts für ein Euro nochwas in der Bucht. Warum 
nimmst du nicht gleich zwei. Damit hättest du beide Werte sofort im 
Blick.

von schlubbidu (Gast)


Lesenswert?

> nicht gleich zwei

Ja, Antuino macht dann doppelt dumm.

von Mein Senf (Gast)


Lesenswert?

schlubbidu schrieb:
> nicht gleich zwei
>
> Ja, Antuino macht dann doppelt dumm.

Was ist dein Problem damit?

von Bernd Z. (carlo1309)


Lesenswert?

Mein Senf schrieb:

>
> Dann wärst du aber in einem englische Forum besser aufgehoben. :-)

Ich dachte hier gibt es konstruktive Schreiber

von Mein Senf (Gast)


Lesenswert?

Bernd Z. schrieb:
> Mein Senf schrieb:
>
> Dann wärst du aber in einem englische Forum besser aufgehoben. :-)
>
> Ich dachte hier gibt es konstruktive Schreiber

Mir sind schon Leute begegnet, die wissen, wozu Smilies verwendet 
werden.

von Bernd Z. (carlo1309)


Lesenswert?

Mein Senf schrieb:

> Mir sind schon Leute begegnet, die wissen, wozu Smilies verwendet
> werden.

Ok, dann war ich gerade taub auf dem Auge...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.