Tag 14: Langzeit Temperatur Messung

Hinter dem heutigen Türchen befindet sich ein NTC-Sensor (Heißleiter, Negative Temperature Coefficient). Dieser verändert seinen Widerstand in Abhängigkeit von der Temperatur. Sie nutzen den Sensor heute, um eine Langzeitmessung der Temperatur vorzunehmen. Als kleinen Bonus können Sie einen Zeitpunkt auswählen, an dem Sie eine Zusammenfassung per Mail geschickt bekommen.

Für den Aufbau des heutigen Tages benötigen Sie neben dem NTC auch das Poti und einen 1 kOhm Widerstand. Mit dem Poti können Sie einen Feinabgleich der Temperatur vornehmen.

Der NTC mit Poti zum jusiteren

Der NTC mit Poti zum jusiteren


Mit dem QR Code können Sie die Oberfläche in Ihre Blnyk-App laden. In dem Programm, welches Sie von der Webseite herunterladen, müssen Sie heute neben dem aktuellen Token und Ihren WLAN-Daten auch wieder eine E-Mail Adresse angeben, an die die Zusammenfassung geschickt werden soll.

day_1414

Die Blynkoberfläche enthält als zentrales Element den History Graph. Über Ihn werden die aktuelle Temperatur sowie Maximal- und Minimal-Werte angezeigt. Sie können unten am Graph auch den Zeitraum der zu visualisierenden Daten auswählen. Sie können die aufgezeichneten Daten löschen, indem Sie, während die Oberfläche aktiviert ist, auf dem Widget nach Links wischen. Die aktuelle Temperatur finden Sie auch in der Anzeige unter dem Graphen. Mit den Elementen unten links machen Sie die Einstellungen zum automatischen Senden einer Zusammenfassung. Sie können sich mit dem Button auf der rechten Seite aber auch jederzeit eine Zusammenfassung schicken lassen.

Eine Langzeitmessung mit Blynk

Eine Langzeitmessung mit Blynk

48 Kommentare

  1. Juergen2

    Ich möchte Daten einer Heizungssteuerung ausgeben. Diese sollen seriell eingelesen und dann analog zu diesem Beispiel an Blynk übergeben werden. Anschlüsse für eine serielle Schnittstelle sind herausgeführt, wie wird bitte diese Schnittstelle Von der Bibliothek unterstützt?

  2. Aceor

    Kurze Frage: Muss NanoESP an einem PC hängen oer reicht es wenn er mit Strom vesorgt wird? Ich möchte nämlich die Temperatur unterwegs lesen können ohne das zu hause ein PC dafür laufen muss.

    1. Aceor

      Problem gelöst und Frage beantwortet. Ja, Strom alleine reicht. Es braucht bloß kurz um sich zu verbinden so wie es scheint.

  3. Enno Klatt

    Ich arbeite mit dem Raspberry PI.
    Arduino IDE 2:1.0.5+dfsg2-4

    Hat bisher alles funktioniert.
    Hier kommt der Compiler nicht mit der Konvertierung von double in String klar.

    Abhilfe: alle double in int32_t geändert.
    Thermistor-Funktion:
    int32_t Thermistor(int …){
    double Temp;

    return int(Temp);
    }

    So erhalte ich vernünftige Werte.

    Schade, das der RPI keine aktuelle IDE hat…

  4. Philipp

    Hallo.

    Ich habe mir gedacht man könnte das Experiment dieses Tages doch mit den Bauteilen die jetzt neu dazugekommen sind erwitern. Also den versuchsaufbau des Tages 18 verwenden, und diese Daten an die Blynk-App übertragen.

    Leider bin ich nicht gut im Programmieren, und würde mich ddeswegen freuen wenn mir jemand helfen
    könnte.

    Danke schon mal im vorraus.

  5. fk (Beitrag Autor)

    Scheinbar findet der Compiler die beiden definieren Funktionen nicht. Das passiert häufig wenn im Programm z.b. ein Semikolon vergessen wurde. Da du das Programm neu heruntergeladen hast und vermutlich nur token, ssid und Passwort verändert hast, würde ich an dieser Stelle mal gucken ob ein Semikolon oder auch Anführungszeichen fehlen.

    1. Larry

      ich hab die 3 Sachen überprüft und kann nichts feststellen.
      Kann ich dir mal das Programm per Email senden und du könnest mal drüber schauen, ob da ein Fehler ist??

      Danke

      1. fk (Beitrag Autor)

        Ja kein Problem. Oder ins Forum damit auch andere gucken können. Welche Arduino Version und welches Betriebssystem nutzt du?

        1. Larry

          Hab es ins Forum gesetzt Danke

    2. Yogi

      Ich habe das Problem durch Ändern der Reihenfolge gelöst (das Programm ist sonst unverändert)
      /*
      Blnky10: NTC-Sensor
      Change ssid, password, token and email
      */

      char ssid[] = „xxx“;
      char password[] = „xxx“;
      char token[] = „xxx“;

      char email[] = „xxx“;
      char subject[] = „Temperatur Summary“;

      #define BLYNK_DEBUG
      #define BLYNK_PRINT Serial // Comment this out to disable prints and save space
      #include
      #include
      #include

      #include

      // Set ESP8266 Serial object
      #include
      SoftwareSerial EspSerial(11, 12); // RX, TX

      ESP8266 wifi(EspSerial);
      SimpleTimer timer;

      //init max min value (0 makes no sense)
      double tempMax = – 273;
      double tempMin = +200;
      bool autoSend;

      double Thermistor(int RawADC) {
      //Source: http://playground.arduino.cc/ComponentLib/Thermistor2
      double Temp;
      Temp = log(10000.0 * ((1024.0 / RawADC – 1)));
      // =log(10000.0/(1024.0/RawADC-1)) // for pull-up configuration
      Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
      Temp = Temp – 273.15; // Convert Kelvin to Celcius
      // Temp = (Temp * 9.0)/ 4.7 + 32.0; // Convert Celcius to Fahrenheit
      return Temp;
      }

      void getTemp() { //get temp, convert to C and send
      double currValue = Thermistor(analogRead(A0)) ; //Convert to C !!! Pot: round((x*10)/10)

      if (currValue tempMax) {
      tempMax = currValue;
      }

      Blynk.virtualWrite(V0, currValue);
      Blynk.virtualWrite(V1, currValue);
      Blynk.virtualWrite(V3, tempMin);
      Blynk.virtualWrite(V2, tempMax);
      }

      void setup()
      {
      // Set console baud rate
      Serial.begin(19200);
      EspSerial.begin(19200);

      Blynk.begin(token, wifi, ssid, password);
      //timer for temp measure
      timer.setInterval(500L, getTemp);
      }

      void loop()
      {
      Blynk.run();
      timer.run(); //Call timer (other than normal timers)
      }

      BLYNK_CONNECTED() {
      Blynk.syncVirtual(V5); //sync email auto send state
      }

      void sendSummary() { //send email summary
      String msg = „Tempertur Summary:\nCurrent Temperatur: “ + String(Thermistor(analogRead(A0))) + “ C\n\nMax. Temp: “ + String(tempMax) + „C \n\nMin. Temp: “ + String(tempMin) + „C \n“;
      Blynk.email(email, subject, msg);
      }

      BLYNK_WRITE(V6) { //Timer Send
      if (autoSend) {
      sendSummary();
      }
      }

      BLYNK_WRITE(V4) { //Button Send
      sendSummary();
      }

      BLYNK_WRITE(V5) { //config email send
      autoSend = param.asInt();

      1. Larry

        Super. Jetzt hat es geklappt.
        Vielen Dank

  6. Larry

    Hallo zusammen,

    irgendwie hänge ich noch am Tag 14 fest.
    ich bekomme immer beim Hochladen die Fehlermeldung:

    ‚getTemp‘ was not declared in this scope
    ‚Thermistor‘ was not declared in this scope

    Ich habe alles mehrere male überprüft, aber irgendwie
    ändert sich da nichts.
    Kann mir da jemand weiterhelfen??

    Danke
    Gruss Larry

    1. fk (Beitrag Autor)

      Hi, hast du versucht das Programm nochmal komplett neu von der Webseite hier herunterzuladen?

      1. Larry

        ja hab ich schon mehrere male. Aber immer das Gleiche. Woran kann das denn liegen??

  7. Bernd

    Die Blink Oberfläche ist leider zu groß gestaltet. Auf einem IPhone4 fehlen die unteren Widgets. Gibt es einen Weg, wie ich die ‚hochschieben‘ kann?

  8. Larry

    ich bekomme beim Kompilieren immer diese Fehelermeldung.

    was kann ich tun??

    ‚getTemp‘ was not declared in this scope

    Danke

    Larry

  9. Hudde

    Hallo,

    die Temparatureinstellung mit dem Poti geht. Dafür kann ich mir keine E-Mail senden. Leider ist der Ping zum Blynk Server auch sehr schlecht (500 ms +- 100 ms). Hat jemand ein ähnliches Problem mit dem Mail Empfang? Die Tage zuvor ging es auch schon nicht.

    1. Marco

      Hi,
      ich denke die Problematik liegt da eher beim Blynk Server, bei mir war das teilweise mit dem Zusenden der Tokens auch so, dass das schon mal eine halbe Stunde dauert. Die Blynk Community (deren Forum) ist voll von derlei Beschwerden.

      Aber ich denke auch die haben nicht umsonst allerlei Beschränkungen, was die Anzahl der Schreibvorgänge pro Minute auf den Server etc. angeht. Da kommt die Infrastruktur scheinbar nicht schnell genug hinterher ;)

      Wenn du einen Raspberry oder Ähnliches rumfliegen hast, würde ich empfehlen der Anleitung in den Blynk Docs zu folgen und deinen eigenen lokalen Blynk-Server aufzusetzen. Das ist nicht allzu kompliziert und hat bei mir alle Probleme behoben.

      Gruß,
      Marco

  10. Valentin

    Bei mir war heute das Teil nicht im Kalender…es ist einfach ein leeres Fach! :o Was soll ich tun?

    1. rsoldie

      Bei Conrad anrufen und um Abhilfe bitten. Bei mir hat es super geklappt. Bedingt durch weihnachtszeit kommt es bei der Zustellung zu Verzögerungen.

    2. Jes

      Hast du mal ein bisschen unter die Pappe geschaut?
      Bei mir war das ding unter der Pappe eingeklemmt.

      1. Valentin

        Ja, da war nichts. :/ Ich werde wohl mal bei Conrad anrufen.

  11. DS2072

    Das Board und die App liefen mehrere Stunden. Nun wird mit in der App angezeigt, mein Board sei Offline und im seriellen Monitor bekomme ich die Meldung „[4702] <msg 20,8,11 [4713] Cmd skipped" durchgehend. Was bedeutet das?

    Laut seriellen Monitor ist das Board mit dem W-Lan verbunden.

    1. Michel1962

      Ich habe das gleiche Problem. Wie hast Du es gelöst?

  12. Michel2016

    Ich versuche es heute wieder mal aber die LED blinkt immer noch hektisch und wenn ich versuche ein Programm hoch zu laden kommt immer folgende Fehlermeldung,

    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

    und das ganze 10 mal.

    Wo ist denn der fkainka… liest der hier nicht mit? Hat der keine Idee???

    1. fk (Beitrag Autor)

      Hallo,
      Am besten wäre im Forum einen Beitrag aufzumachen, sodass man der Diskussion besser folgen kann.

      Mögliche Probleme/Lösungen:
      – falsches Board/Port eingestellt
      – ein Programm hochladen und den Reset-Button solange gedrückt halten, bis die Meldung Upload erscheint
      – im worst case muss der bootloader neu eingespielt werden

    2. Jo

      Ich hatte mal das gleiche Problem da war dann ein Kurzschluss auf dem Steckbrett.

    3. tommiport5

      Ich würde mal im Arduino-Menü unter Werkzeuge / Programmer nachschauen. Dort muss AVRISP mkII angehakt sein. Die Fehlermeldungen lesen sich so, als wäre der Programmer auf das Atmel STK 500 board eingestellt.

  13. Philipp

    Kann mir eventuell jemand einen Tipp geben? Sobald in einem Projekt Analoge werte ausgelesen werden etc. disconnectet sich mein Nano nach ein paar Sekunden verbindet sich wieder und das die ganze zeit. Sind es hingegen Digitale Werte funktioniert alles super.
    Außerdem bekomme ich komischer weise nur eine E-Mail mit dem Betreff ohne sonstigen Inhalt beim heutigen Projekt?

    1. holzmann

      siehe mein Kommentar unten…

  14. DS2072

    Die Current Temperature stimmt bei mir definitv nicht überein, mit der Raumtemperatur, die mir mein normales Thermometer anzeigt. Der Unterschied beträgt ca. 3 Grad. Wenn ich den Poti hin- und her drehe, verändert sich die Temperatur, wie gewollt und zeigt mir Werte von -28,74 bis 16,x Grad (bei realen 19 Grad im Arbeitszimmer). Soll ich den 1KOhm rausnehmen oder einen anderen Poti benutzen?

    1. Daniel

      hatte das selbe mit der Temperaturabweichung, hab die anderen 2 1kOhm Widerstände vor dem Poti in reihe geschaltet, dann wurde mir die richtige Temperatur angezeigt, scheint pro Widerstand 1°C

      1. Daniel

        also zusätzlich davor in reihe so das 3 kOhm davor sind

        1. DS2072

          Danke, das hat mein Problem ebenfalls behoben.

    2. El_Barto

      Nabend!
      Bei mir mussten auch (mehr) Widerstände dazwischen (dann ging es)!!!
      Liegt der Problem wohl bei den Widerständen oder beim Arduino?
      Bisher hatte ich keine Probleme!

      1. El_Barto

        …liegt DAS Problem…Sorry!
        Sollte erst der Fehler heißen…

  15. rsoldie

    Funktioniert bei mir soweit auch alles, nur der Wertebereich ist so groß, dass auf dem Graphen keine Veränderungen unter 20 Grad erkennbar sind. von 15 bis 350 Grad. Bei 20 Grad Raumtemperatur ist da nichts zu erkennen. kann man den Bereich verändern, wenn ja wie ?

    1. rsoldie

      Das problem ist behoben. Da ich mit dem poti die temperatur schon agepasst hatte, habe ich die Daten gelöscht und das programm neu gestartet. Alles ist ok.mails kommen auch korrekt.

  16. bernd

    Irgendwie begreife ich das diesmal nicht.
    Ich kann zwar den Wert in „current temperature“ mit dem Poti ändern, aber das hat keinen Einfluss auf den grafen,auch nicht wenn ich den NTC anwärme (finger). current temp ändert sich aber nicht der graf.Und was wird da eigentlich angezeigt wenn man mit dem Poti die temperatur „regeln“ kann?

    1. Anonym

      Mit dem Poti kannst du die Temperatur nicht regeln sondern nur die Messung auf die aktuelle Raumtemperatur kalibrieren. Danach stellt man da nix mehr rum, sondern zeichnet nur den aktuellen wert auf. Das Thema mit dem Grafen der nix anzeigt habe ich auch.

      1. Frank444

        Unter den Graphen ist auch ein Zeitbereich angegeben. Am besten den 1h Stundenbereich anwählen, dann erscheinen alle Werte.

    2. Tom Janssen

      Ich habe da auch etwas rumbasteln müssen (siehe Erfahrungen in meinem Web-Blog – Link unten). Bei mir waren es einfach Kontaktprobleme…

  17. Anonym

    Nachdem ich zweimal das Diagramm gelöscht habe, hat er es nicht mehr automatisch aktualisiert. Erst nach Stop/Start des Projekts waren die Daten sichtbar.

  18. holzmann

    Der blynk.email msg String ist wahrscheinlich zu lang und funktioniert bei mir so nicht! Abhilfe: Kürzen.

    ` String msg = „Current Temperatur: “ + String(Thermistor(analogRead(A0))) + “ C Max. Temp: “ + String(tempMax) + “ C Min. Temp: “ + String(tempMin) + “ C „;`
    dann steht alles in einer Zeile

    1. SilentGuy

      Funktioniert bei mir problemlos und sieht auch in der Email nett aus weil ja Zeilenumbrüche drin sind.

      Aber naja, haben ja schon häufiger festgestellt, das da scheinbar irgendwie unterschiedliche Bedingungen bei unterschiedlichen Leuten vorliegen…

      1. holzmann

        Hallo, gerade nochmal getestet – mit dem original bekomme ich nur die Betreffzeile “ Temperatur Summary“.
        Hast du die Bibliotheken im Anrduino-Programm geupdatet??

        1. basti

          Genau das Problem habe ich auch! Schon eine Lösung gefunden?

          1. holzmann

            ersetze Zeile 84 durch obige Zeile aus meinem Post, dann geht es
            string msg …..

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.