Day 14: Long-term temperature measurement

Behind today’s door is an NTC sensor (negative temperature coefficient thermistor). Its conductivity changes depending on the temperature. You’ll use the sensor today to undertake a long-term measurement of the temperature. As a small bonus, you can select a time at which you get a summary by email.

For today’s layout, in addition to the NTC, you’ll also need the potentiometer and a 1-kohm resistor. You can make a fine adjustment of the temperature with the potentiometer.

Der NTC mit Poti zum jusiteren

The NTC with potentiometer for adjustment


You can load the interface in your Blynk app with the QR code. In the programme you download from the website, besides the current token and your WLAN data, today you have to enter an email address again to which the summary should be sent.

day_1414

The Blynk interface contains the history graph as the central element. It shows the current temperature as well as maximum and minimum values. In the line below, you can select the time frame of the data to be visualised. You can delete the stored data by swiping on the widget toward the left while the interface is active. You’ll also find the current temperature in the display under the graph. With the elements at the bottom left, you can make adjustments for the automatic sending of a summary. However, with the button on the right side, you can also have a summary sent at any time.

Eine Langzeitmessung mit Blynk

Long term measurement

52 Comments

  1. jodebrezel

    Tag 14 Langzeit Temperaturmessung

    1.Frage: muß oder sollten die Messlinien automatisch beim Handy laufen?
    Bei mir nur wenn ich beim Handy kurz aus und ein schalte rückt es weiter?

    2.Frage: sollte in der E-Mailnachricht bei Auto-Send eine Temperaturlinie dargestellt sein?
    Kommen nur für mich unleserliche Zeichen
    Mit dem Briefsymbol ist es okay.
    Wie sieht es bei Euch aus?

    Grüsse von jodebrezel

    Reply
  2. Deuring Josef

    Tag 14 Langzeit Temperaturmessung:

    1. QR Scaner funktioniert nicht ?

    Andere QR Scaner funktionieren!
    Wie kann ich die Temperaturmessung manuel einrichten?

    2. History Graph im Blynk App nicht vorhanden.
    wer kann mir da weiter helfen od. Tipp´s geben.
    Vielen Dank im voraus Josef

    Reply
    1. Deuring Josef

      Habe den QR-Code vergrößert ausgedruckt – funktioniert

      Reply
  3. 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?

    Reply
  4. 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.

    Reply
    1. Aceor

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

      Reply
  5. 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…

    Reply
  6. 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.

    Reply
    1. Deuring Josef

      habe den QR- Code vergrößert ausgedruckt – funktioniert

      Reply
  7. fk (Post author)

    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.

    Reply
    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

      Reply
      1. fk (Post author)

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

        Reply
        1. Larry

          Hab es ins Forum gesetzt Danke

          Reply
    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();

      Reply
      1. Larry

        Super. Jetzt hat es geklappt.
        Vielen Dank

        Reply
  8. 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

    Reply
    1. fk (Post author)

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

      Reply
      1. Larry

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

        Reply
  9. 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?

    Reply
  10. Larry

    ich bekomme beim Kompilieren immer diese Fehelermeldung.

    was kann ich tun??

    ‘getTemp’ was not declared in this scope

    Danke

    Larry

    Reply
  11. 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.

    Reply
    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

      Reply
  12. Valentin

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

    Reply
    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.

      Reply
    2. Jes

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

      Reply
      1. Valentin

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

        Reply
  13. 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.

    Reply
    1. Michel1962

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

      Reply
  14. 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???

    Reply
    1. fk (Post author)

      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

      Reply
    2. Jo

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

      Reply
    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.

      Reply
  15. 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?

    Reply
    1. holzmann

      siehe mein Kommentar unten…

      Reply
  16. 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?

    Reply
    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

      Reply
      1. Daniel

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

        Reply
        1. DS2072

          Danke, das hat mein Problem ebenfalls behoben.

          Reply
    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!

      Reply
      1. El_Barto

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

        Reply
  17. 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 ?

    Reply
    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.

      Reply
  18. 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?

    Reply
    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.

      Reply
      1. Frank444

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

        Reply
    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…

      Reply
  19. 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.

    Reply
  20. 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

    Reply
    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…

      Reply
      1. holzmann

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

        Reply
        1. basti

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

          Reply
          1. holzmann

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

Leave a Comment

Your email address will not be published. Required fields are marked *