Arduino Pro Mini DHT11 gibt keine Werte zurück

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
    • Offizieller Beitrag

    Moin, Moin,

    ich habe einen DHT11 Sensor an meinen Arduino Pro Mini Angeschlossen, leider gibt der Sensor mir keine Werte zurück.

    Angeschlossen habe ich den DHT11 an Digital Pin 2 sowie natürlich VCC/GND.
    Bei selber Konfiguration und selbem Script bekomme ich am UNO bzw. am Leonardo gültige Werte zurück.

    Mit diesem Beispielscript habe ich das ganze getestet:

    Muss ich beim Pro Mini noch etwas besonderes beachten?

    //trek_star

  • Ja hey ... Bastelstunde?

    also ich wüsste jetzt nicht, warum das nicht funktionieren sollte.
    Verdrahtung noch mal gechecked? Vielleicht nen falschen Pin erwischt?
    Versuch vielleicht mal einen anderen Pin ...

    Hast Du zusätzlich was mit externen Interrupts auf dem Arduino am Laufen? Pin D2 und D3 sind bevorzugt für externes Interrupt-Handling gedacht. Also dass evtl. eine andere Lib reinspuckt?

    Wackelkontakt? Mir fällt da jetzt auch sonst nix dazu ein ... :s

    cu,
    -ds-

    • Offizieller Beitrag

    Bastelstunde! :D

    Einen anderen Pin habe ich bereits Probiert, einen wackelkontakt kann man auch ausschließen da das ganze mit 1:1 dem selben Aufbau mit dem UNO läuft.

    Wenn der Sensor nicht erkannt wird gibt es die Meldung "Failed to read from DHT sensor!" zurück.

    Ich bekomme aber eine gültige Meldung zurück, bloß keine passenden Werte.
    !Humidity: 0.00 % Temperature: 0.00 *C 32.00 *F Heat index: 16.19 *F"

    Daraus schließe ich das er korrekt erkannt wird, eine andere Lib die irgendwas stören könnte hab ich nicht.

  • Tjaaa ...


    ...
    Wenn der Sensor nicht erkannt wird gibt es die Meldung "Failed to read from DHT sensor!" zurück.
    ...
    Daraus schließe ich das er korrekt erkannt wird, eine andere Lib die irgendwas stören könnte hab ich nicht.


    das ist ein Trugschluss ;) ...
    Die Meldung kommt,

    Code
    if (isnan(h) || isnan(t) || isnan(f)) {

    wenn bei einem der Werte isnan (is not a number) zutrifft ;) ...

    Das hier:


    ist ein Ausschnitt aus einem lauffähigen sketch von einem meiner Pro Mini. Das sieht doch identisch aus ...
    Also irgendwie schon schräg ...
    Ich geh' mal meine halbfertigen/halb abgebauten Aufbauten durch ... vielleicht hab ich irgendwo einen mit nem DHT rumliegen ....


    Ach ja: evtl. doch Pin kaputt?
    Häng doch mal ne LED dran und probier das mal aus ...

    //EDIT:
    Da scheint tatsächlich Dein Pro Mini einen Schlag weg zu haben:

    Hat auf Anhieb geklappt ...

    cu,
    -ds-

  • Hallo,

    gibt es hierzu einen aktuellen Stand, ich habe das gleiche Problem.

    Ich lese an einem Arduino Pro Mini über einen DHT11 die Temperatur aus und schicke das Ergebnis über einen nrf24 radio transmitter
    dht.getTemperature liefert dann aber immer nur 0.00 als Wert.

    Über den dht.getStatusString() kriege ich allerdings schon den Status (Timeout, Cheksum oder OK), das auslesen des DHT 11 geht also, nur die temp Werte werden als 0.00 gesendet.
    An einem Arduino Uno läuft das ohne Probleme.

    Gibt es auf dem Pro Mini ggfls. etwas mit float zu berücksichtigen, oder kann es an den China Importen liegen die das nicht können ?

    Hier der Code:


    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
    #include <RF24_config.h>
    #include <DHT.h>
    /*
    This sketch sends a string to a corresponding Arduino
    with nrf24 attached. It appends a specific value
    (2 in this case) to the end to signify the end of the
    message.
    */

    //Setup for DHT 11 temp and hum sensor
    #define HUMIDITY_SENSOR_DIGITAL_PIN 2
    DHT dht;
    float lastTemp;
    float lastHum;
    boolean metric = true;
    int x = 0;

    int msg[1];
    RF24 radio(9,10);
    const uint64_t pipe = 0xE8E8F0F0E1LL;
    void setup(void){
    dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);
    Serial.begin(9600);
    radio.begin();
    radio.openWritingPipe(pipe);}

    void loop(void){
    String theMessage;
    delay(dht.getMinimumSamplingPeriod());
    //dht temp auslesen und sofern number Wert den Wert an Arduino Uno senden via nrf24 radio transmitter, wenn nan dann den Status Wert des dht senden
    float temperature = dht.getTemperature();
    if (isnan(temperature)) {
    theMessage = dht.getStatusString();
    } else {
    lastTemp = temperature;
    theMessage = lastTemp;
    }
      

    int messageSize = theMessage.length();
    for (int i = 0; i < messageSize; i++) {
    int charToSend[1];
    charToSend[0] = theMessage.charAt(i);
    radio.write(charToSend,1);
    }
    //send the 'terminate string' value...
    msg[0] = 2;
    radio.write(msg,1);

    radio.powerDown();
    delay(1000);
    radio.powerUp();
    }

  • witzig wollte ich auch mal, nur keine Zeit

    DHT sind 5 Stück angekommen, minis328p in 8 und 16 MHz liegen auch noch rum......

    hat nicht einer ne Tüte Zeit über?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Servus,


    ...
    //Setup for DHT 11 temp and hum sensor
    #define HUMIDITY_SENSOR_DIGITAL_PIN 2
    DHT dht;
    ...


    bist Du sicher, dass das stimmt? Wenn ich versuche das in der IDE zu übersetzen,bekomme ich einen Fehler ...

    Code
    sketch_mar01a.ino: In function 'void setup()':
    sketch_mar01a.ino:20:7: error: 'class DHT' has no member named 'setup'
    sketch_mar01a.ino:23:16: error: a function-definition is not allowed here before '{' token
    sketch_mar01a.ino:44:1: error: expected '}' at end of input
    no matching function for call to 'DHT::DHT()'

    Ich hatte die DHT11/DHT22-Unterstützung gerade auf ESP-Boards implementiert. Da sieht das so aus:

    cu,
    -ds-

  • Habe den Fehler gefunden, eigene Dummheit !

    Für das Kompilieren war 5V@16MHz Prozessor ausgewählt, ich habe aber 3,3V@8MHz .

    Nach der korrekten Prozessorauswahl funktioniert die Übergabe ohne Probleme.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!