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.

Das Programm: A16_P14_Blynk10_NTCSensor.ino
/*
Blnky10: NTC-Sensor
Change ssid, password, token and email
*/
char ssid[] = "YourSSID";
char password[] = "YourPassword";
char token[] = "YourToken";
char email[] = "YourEmail";
char subject[] = "Temperatur Summary";
#define BLYNK_DEBUG
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>
#include <SimpleTimer.h>
#include <TimeLib.h>
// Set ESP8266 Serial object
#include <SoftwareSerial.h>
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;
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 getTemp() { //get temp, convert to C and send
double currValue = Thermistor(analogRead(A0)) ; //Convert to C !!! Pot: round((x*10)/10)
if (currValue < tempMin) {
tempMin = currValue;
}
if (currValue > tempMax) {
tempMax = currValue;
}
Blynk.virtualWrite(V0, currValue);
Blynk.virtualWrite(V1, currValue);
Blynk.virtualWrite(V3, tempMin);
Blynk.virtualWrite(V2, tempMax);
}
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 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();
}
(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)
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.
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.



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