• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

BBQ Thermometer Nodemcu (ESP8266) Blynk und Raspberry Server

Cju

Militanter Veganer
Hallo

Ich habe mir einen El Fuego Portland zugelegt und habe bisher immer mein Maverick zum Smoken genutzt. Da ich noch einen Nodemcu als Ersatz für meine Sprenklersteuerung herumliegen hatte, dachte ich mir baue doch mal ein WiFi BBQ Thermometer.
Also habe ich noch ein OLED Display und zwei Max6675 geordert und los ging es.

Was braucht man ?

1 x NodeMCU Lolin mit ESP8266 12E oder NodeMCU Amica (5 Euro hier in DE)
2 x MAX6675 (mit Sensoren Typ K 9,98 Euro für 2 Stück hier in DE)
1 X OLED 0,96 Zoll (könnte man auch weglassen, 4,99 Euro hier in DE)

1 x 5Volt Versorgungsspannung in Form von zBspl. vorhandener Powerbank, Smartphone Netzteil ....

Natürlich wird es beim freundlichen ChinaMann preisgünstiger ;)

Als erstes installiert man erstmal Arduino incl. Bibliotheken auf seinem PC, sofern man das nicht hat.
Als nächstes installiert man die APP Blynk auf dem Smartphone.
Dort erstellt man ein neues Projekt und bekommt dann einen Authentic Token an seine hinterlegte e-mail gesendet.
Da ich nicht über die Blynk Cloud kommunzieren möchte habe ich Blynk Server auf meinem Raspberry laufen.

Zum Programmieren des Nodemcu benötigt man auf seinem PC Arduino.
Mag jetzt alles kompliziert klingen ist aber kein Hexenwerk und es gibt viele Videos zum Thema.

Wie alles "verkabelt" wird seht ihr im "Anhang,Upload"
Was kann man mit dem BBQ Thermometer anstellen ?

Man kann bis zu 4 Thermosensoren Typ K anschließen. Ausgabe für die Hitze im Smoker und eine Kerntemperatur erfolgt am OLED Display. Vollständige Anzeige aller Daten macht man über die Blynk App!

- bis zu 4 Thermometer anzeigen
- min und max Temperatur für die Hitze im Smoker einstellen
- bis zu 3 x die Kerntemperatur anzeigen lassen
- bei erreichen oder unterschreiten der Temperatur im Smoker eine Push Nachricht (sowie Sound) & oder e-mail senden (Eventor in der Blynk App)
- bei erreichen der Kerntemperatur(en) eine Push Nachricht & oder e-mail senden (Eventor in der Blynk App)
- anzeigen von graphischen Verlaufskurven in der Blynk App

- jetzt könnte das ganze noch erweitert werden -> Servormotor zur Klappensteuerung am Smoker,Piezo Beeper direkt am Nodemcu, Servomotor zur automatischen Gasregelung und und und .....

Die Sensoren sind jetzt nix besonderes (einen oder auch zwei kann man fest im Smoker installieren (Loch bohren, festschrauben, man kann ja auch zwei oder drei Hitze Sensoren im Smoker benutzen)
Für das Messen der Kerntemperatur sollte man sich einen anderen (besser geeigneten) zulegen.

Im Code für den NodeMCU ESP8266 müsst ihr folgendes anpassen :

SSID für euer WLAN
Passwort für euer WLAN
Server Adresse für euren Raspberry oder halt die Blynk Cloud
und ganz wichtig der auth Token vom Blynk

So das waren auf die schnelle mal ein paar Anregungen meinerseits ;)
Ich bin mir im klaren das es hier auch sehr schöne andere (teurere) Projete gibt ;)
Meinem "BBQ Thermometer" muß jetzt nur noch ein Gehäuse bekommen.


Kleiner Hinweis für die die es evt. Nachbauen wollen ... die max6675.cpp im Windows Ordner ->
Arduino/libraries/MAX6675-library-master muß editiert werden sonst gibt es eine Fehlermeldung beim kompilieren.
siehe dazu -> https://www.az-delivery.de/blogs/az...erry-pi/esp8266-mit-max6675?ls=de&cache=false

oder hier im Beispiel :

---------------------------------------------------------------------------------
max6675.cpp

// this library is public domain. enjoy!
// www.ladyada.net/learn/sensors/thermocouple

#define _delay_ms(ms) delayMicroseconds((ms) * 2000)
//#include <avr/pgmspace.h>
//#include <util/delay.h>
#include <stdlib.h>
#include "max6675.h"

---------------------------------------------------------------------------------

Schaltplan Nodemcu MAX6675 OLED 0,96Zoll



PIN OUT Nodemcu



Screenshot Blynk App



Screenshot Blynk App



OLED Anzeige





Code für Arduino Nodemcu ESP8266 als zip File ....
Um den Code direkt in Ardurino zu öffnen bitte nach dem Entpacken die Endung .txt von "eBBQ_Therm_mit_OLED.ino) entfernen.

BBQ_Therm_mit_OLED.ino.txt.zip





Hier der Code für Aduino -> Nodemcu ESP8266


Code:
#define BLYNK_PRINT Serial

#include <max6675.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <ESP_Adafruit_SSD1306.h>
 
#define OLED_RESET 4

int ktcSO = 12;
int ktcCS = 13;
int ktcCLK = 14;
int foodCSO = 15;
int foodCSM = 02;
int foodCSU = 16;


MAX6675 ktc(ktcCLK, ktcCS, ktcSO);
MAX6675 foodO(ktcCLK, foodCSO, ktcSO);
MAX6675 foodM(ktcCLK, foodCSM, ktcSO);
MAX6675 foodU(ktcCLK, foodCSU, ktcSO);

Adafruit_SSD1306 display(OLED_RESET);

// You should get Auth Token in the Blynk App.
char auth[] = "5xxxxxxxxxxxxxxxxxxxxxxd8563";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "deine SSID WLAN";
char pass[] = "dein Passwort";
char server[] = "deine Server IP oder Blynk Cloud";

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.

void readSensorTimerEvent()
{
 
float t = ktc.readCelsius();
float mtO = foodO.readCelsius();
float mtM = foodM.readCelsius();
float mtU = foodU.readCelsius();

 Blynk.virtualWrite(V5, t);
 Blynk.virtualWrite(V6, mtO);
 Blynk.virtualWrite(V7, mtM);
 Blynk.virtualWrite(V8, mtU);
 
}

void setup()
{
  // Debug console
  Serial.begin(9600);
  //delay(500);
  display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1);
  display.display();
  delay(2000);
  display.clearDisplay();
 
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
  Blynk.begin(auth, ssid, pass, server, 8080);
 
  timer.setInterval(1000L, readSensorTimerEvent);
 
}

void displayData(){
  display.setTextSize(1);
  display.setCursor(5,1);
  display.println("Heat Temp");
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(18,14);
  display.print((char)248);
  display.print("C:");
  display.print(ktc.readCelsius());
 
  display.setTextSize(1);
  display.setCursor(5,36);
  display.println("Core Temp");
  display.setTextSize(2);
  display.setCursor(18,50);
  display.print((char)248);
  display.print("C:");
  display.println(foodO.readCelsius());
  
  display.display();
  display.clearDisplay();
}

void loop()
{
  Serial.print("\ BBQ C = ");
  Serial.print(ktc.readCelsius());
  Serial.print("\ Heat C = ");
  Serial.print(foodO.readCelsius());
  Serial.print("\ Heat C = ");
  Serial.print(foodM.readCelsius());
  Serial.print("\ Heat C = ");
  Serial.println(foodU.readCelsius());
 
  delay(1000);
  displayData();

  Blynk.run();
  timer.run(); // Initiates BlynkTimer
}

Nodemcu_max6675_oled_Schaltplan.jpg


nodemcu_pins.gif


Screenshot_20181011-013518.png


Screenshot_20181011-001406.png


Temp_OLED-0.96-Zoll.jpg
 

Anhänge

  • Nodemcu_max6675_oled_Schaltplan.jpg
    Nodemcu_max6675_oled_Schaltplan.jpg
    209,5 KB · Aufrufe: 8.991
  • nodemcu_pins.gif
    nodemcu_pins.gif
    83,9 KB · Aufrufe: 6.364
  • Screenshot_20181011-013518.png
    Screenshot_20181011-013518.png
    126 KB · Aufrufe: 6.287
  • Screenshot_20181011-001406.png
    Screenshot_20181011-001406.png
    107,8 KB · Aufrufe: 5.644
  • Temp_OLED-0.96-Zoll.jpg
    Temp_OLED-0.96-Zoll.jpg
    27,4 KB · Aufrufe: 6.085
  • BBQ_Therm_mit_OLED.ino.txt.zip
    1,2 KB · Aufrufe: 738
Hallo,

Gratulation zum Eigenbau deines Thermos. Da wir ja ein „ähnliches“ System entwickelt haben (https://www.grillsportverein.de/forum/threads/wlan-thermometer-nano-hardware-v1.280479/) wissen wir nur zugut wieviel Arbeit in so einem Projekt steckt und welche Freude es macht wenn man damit die erste vergrillung startet.
Und selbstgebaut ist nunmal selbstgebaut :-)

Vl kannst du dir ja das ein oder andere von uns abschauen - man muss ja nicht immer das Rad neu erfinden
Spontan fällt mir der WLAN Einwahlprozess ein. Wir machen einen AP auf wenn das Thermo keine WLAN Verbindung hat. Dort kannst du dann nach WLAN Netzwerken suchen und dich direkt verbinden. Somit wäre dein Thermo flexibler Einsetzbar und die Leute (welche dein Thermo nachbauen) müssen im Sourcecode nichts ändern. Nur eine kleine Idee welche mir Spontan eingefallen ist.

Bezüglich Gehäuse - Du kannst hier auch im 3D Druck Thread mal nachschauen (falls du keinen eigenen 3D Drucker besitzt)
Wenn du dir ein Gehäuse zeichnest dann findest du sicherlich einen Freundlichen User der dir das ausdruckt.
Bezüglich Akku (Falls du einen verbauen willst) kommen wir mit 1500mAh ca. 24-50h rum (je nach Signalstärke - Daten werden alle 30Sekunden in die Cloud gepushd)

Vl Spaß noch mit deinem neuen Spielzeug und halte uns unbedingt am laufenden wie die Reise weiter geht.

BG
Florian
 
Schönes Einsteigerprojekt!

- jetzt könnte das ganze noch erweitert werden -> Servormotor zur Klappensteuerung am Smoker,Piezo Beeper direkt am Nodemcu, Servomotor zur automatischen Gasregelung und und und .....
Wenn ich richtig mitgezählt habe, wird es mit freien GPIOs bei dir schon eng, aufgrund der CS-Lines der 4 MAX. Du könntest zwei IOs sparen, wenn du die MAX statt über den SPI-Bus über den I²C-Bus laufen lässt. Der Umbau ist nicht schwierig, den Code dazu findest du im Nano-Projekt, ich habe die Standard-Lib für die Verwendung von MAX31855 am I²C umgeschrieben, lässt sich aber auch für MAX6675 nutze/anpassen. Die CS werden zwar weiterhin gebraucht, aber die beiden IO vom SPI werden damit frei. Außerdem würde ich den I²C-Bus auf die IO0 und IO2 legen. Die beiden sind wegen der Bootlogik eh nicht ganz frei nutzbar, passen aber super zu I²C.

2 x MAX6675 (mit Sensoren Typ K 9,98 Euro für 2 Stück hier in DE)
Die Sensoren sind jetzt nix besonderes
Ich wäre bei den günstigen Typ K Thermoelementen vorsichtig, die können, müssen aber nicht gut sein. Teilweise fehlt denen die Schirmung, sodass sie sich gegenseitig stören, wenn mehrere im Einsatz sind. Da greif ich lieber auf Thermoelemente von z.B. Sensorshop24 zurück, da weiß man was man bekommt. Und der Typ K Standard ist zwar bis 1250 °C ausgelegt, teilweise sind es die Thermoelemente aber nicht, die machen schon bei 400 °C schlapp. Für richtig hohe Temperaturen eignen sich nur Mantelthermoelemente. Zudem find ich Typ K als Kerntemperaturfühler nicht so prickelnd, da gibt es besser Technologien, ist aber Geschmackssache. Für Garraumtemperaturen ist Typ K natürlich top.
 
Hallo zusammen,
ich beschäftige mich nun auch mit dem Thema.
Doch bevor ich zur Elektronik komme, überlege ich, wie ich ein solches Thermoelement im Holzbackofen überhaupt befestige bzw. anbringe.
Wie habt ihr es gelöst? So eine Sonde muss ja austauschbar sein und im Moment habe ich überhaupt keine Idee, wie ich Stahl im Einklang mit Schamotte bringen kann, ohne dass es reißt oder sich lockert.
Man braucht ja zumindest eine Metallhülse für das Thermoelement, wenn man es später von aussen austauschen muss oder eine Leitungsdurchführung, bei einer innenliegenden Sonde.
Könnt ihr mir mit Euren Lösungen auf die Sprünge helfen?

Vielen Dank schonmal und
viele Grüße,
Chris
 
Einfach eine hinten offene Messing-/Kupfer-/Edelstahl-hülse ins Mauerwerk einbringen. Entweder beim Mauern schon mit einmauern oder später eben Loch bohren. Die Metallhülse dehnt sich zwar etwas anders als das Mauerwerk unter Hitze, aber sie ist ja nicht tragend. Kann also von Anfang an mit etwas Spiel eingebaut werden. Als Fühler nimmt man am besten ein Stab- oder Mantelthermoelement. Schau Mal bei sensorshop24, die gibt es auch in 20mm und mehr und diversen Durchmesser, sodass man sie gut in die Hülse einsetzen kann. Hab ich bei mir auch so gebaut.
 
Hi,
danke Dir für Deine Antwort.
Doch was meinst Du mit "hinten offen"? Also die Seite, welche aus dem Backraum nach draussen mit Kabel herausragt?
Als Hülsenmaterial könnte man ja theoretisch eine Kupfer-Wasserleitung nehmen und mit Ofen Dichtband umwickelt einmauern ...oder?
Würde es halten?
 
@chriskodat am Besten machst du zu deinem Projekt einen eigenen Fred auf, wo du auch mal ein Foto von deinem Aufbau zeigen kannst, sonst weichen wir hier zu sehr vom Thema ab.
Kupferleitung funktioniert. Ofendichtband ist kein muss. Wie gesagt, das Rohr muss ja außer sein Eigengewicht nichts halten, und wo soll das Rohr hin, bei waagerechtem Einbau. Ich habe nichts umwickelt, würde ich nur machen, wenn ich das Rohr thermisch vom Mauerwerk entkoppeln will. Kommt halt drauf an, ob es ein Durchgangsrohr für ein Luft-Fühler oder ein Tauchrohr für einen Schamottfühler sein soll.

So am Rande: es gibt vom WLANThermo Nano auch eine Hardwareversion mit 1x Typ K Anschluss (Garraum) + 4x NTC Anschlüsse (Kerntemperatur)
 
Ja, ok. ich mache dann einen eigenen Thread dafür auf
Das Umwickeln hätte ja den Sinn das Röhrchen thermisch zu entkoppeln, denn die thermische Ausdehnung ist doch eine andere als die des Mauerwerks.
Ich würde nur vermeiden wollen, dass dieses Röhrchen entweder den Schamottstein reissen läßt oder sich lockert und somit undicht wird.
Oder sind meine Bedenken grundlos?
--> Thread für eine weitere Diskussion
 
@s.ochs

Außerdem würde ich den I²C-Bus auf die IO0 und IO2 legen.

Den I²C von Standard SDA=GPIO4 (default) und SCL=GPIO5 (default) auf D3=GPIO0 und D4=GPIO2 zu legen, mache ich wie folgt .?
Entweder mit :


#include <Wire.h>
#include <Adafruit_GFX.h>
#include <ESP_Adafruit_SSD1306.h>
#define OLED_RESET 3
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
Serial.begin(9600);
Wire.pins(0,2);
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(3000);

}
void loop() {
}

oder mit :

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <ESP_Adafruit_SSD1306.h>
#define OLED_RESET 3
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
Serial.begin(9600);
Wire.begin(0,2);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(3000);
}
void loop() {
}


Allerdings geht das OLED nur dann wenn ich die default Adresse des OLED von 7C auf 3C ändere .
Warum ist das so ? hat das was mit Master Slave zu tun ?

ich habe die Standard-Lib für die Verwendung von MAX31855 am I²C umgeschrieben ... den Code dazu findest du im Nano-Projekt

Sorry da suche ich mir schon nen Wolf ... ich kann dazu nichts finden !
Vielleicht kannst du mir etwas "genauer" auf die Sprünge helfen ... würde mich freuen .
Also wie gebe ich dem MAX31855 (MAX6675) eine eindeutige I²C Adresse ? und wozu brauche ich danach immer noch CS ?
 
Wire.begin(0,2);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
richtig.

Allerdings geht das OLED nur dann wenn ich die default Adresse des OLED von 7C auf 3C ändere .
Warum ist das so ? hat das was mit Master Slave zu tun ?
Der ESP sollte immer Master sein. 0x3C ist aber richtig. Hast du vorher mal einen I²C-Scan gemacht?

Sorry da suche ich mir schon nen Wolf ... ich kann dazu nichts finden !
Vielleicht kannst du mir etwas "genauer" auf die Sprünge helfen ... würde mich freuen .
Also wie gebe ich dem MAX31855 (MAX6675) eine eindeutige I²C Adresse ? und wozu brauche ich danach immer noch CS ?
Keine Adresse, deshalb auch der CS Pin. Du nutzt den I²C-Bus also wie den SPI, sparst dir aber einmal CLK (SCL) und MISO (SDA). Der CS-Pin vom MAX muss auf HIGH, damit er misst. Zum Auslesen muss er dann auch LOW.

Hier mal der Code für den MAX31855:

Code:
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Reading Temperature KTYPE
double get_thermocouple(bool internal) {

  long dd = 0;
 
  // Communication per I2C Pins but with CS
  digitalWrite(THERMOCOUPLE_CS, LOW);                    // START
  for (uint8_t i=32; i; i--){
    dd = dd <<1;
    if (twi_read_bit())  dd |= 0x01;
  }
  digitalWrite(THERMOCOUPLE_CS, HIGH);                   // END

  // Invalid Measurement
  if (dd & 0x7) {             // Abfrage von D0/D1/D2 (Fault)
    return INACTIVEVALUE;
  }

  if (internal) {
    // Internal Reference
    double ii = (dd >> 4) & 0x7FF;     // Abfrage D4-D14
    ii *= 0.0625;
    if ((dd >> 4) & 0x800) ii *= -1;  // Abfrage D15 (Vorzeichen)
    return ii;
  }
 
  // Temperatur
  if (dd & 0x80000000) {    // Abfrage D31 (Vorzeichen)
    // Negative value, drop the lower 18 bits and explicitly extend sign bits.
    dd = 0xFFFFC000 | ((dd >> 18) & 0x00003FFFF);
  }
  else {
    // Positive value, just drop the lower 18 bits.
    dd >>= 18;
  }

  // Temperature in Celsius
  double vv = dd;
  vv *= 0.25;
  return vv;
}

Der erste Absatz ist die Kommunikation über den Bus. Der MAX31855 hat ein 32er Register, der MAX6675 glaub nur ein 16er. Muss man also anpassen. Auch das Auslesen der Temperatur aus der IC-Antwort. Beim 31855 stecken zwei Temperaturen drin, einmal die der Messspitze (extern) und einmal die der Referenz im Chip (internal). Beim 6675 ist das einfacher. Müsste in etwa so aussehen:

Code:
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Reading Temperature KTYPE
double get_thermocouple() {

  uint16_t  dd = 0;
 
  // Communication per I2C Pins but with CS
  digitalWrite(THERMOCOUPLE_CS, LOW);                    // START
  for (uint8_t i=16; i; i--){
    dd = dd <<1;
    if (twi_read_bit())  dd |= 0x01;
  }
  digitalWrite(THERMOCOUPLE_CS, HIGH);                   // END

  if (v & 0x4) {
  // no thermocouple attached!
    return NAN;
   //return -100;
  }

  v >>= 3;
  return v*0.25;

Ist aber ungetestet, habe nur mal schnell aus einer "normalen" SPI-Lib für den MAX6675 mir das Auslesen kopiert.

Beim Systemstart (setup()) den CS-Pin als OUTPUT definieren und direkt auf HIGH setzen. Er muss auf HIGH bleiben, wenn nicht am IC gelesen werden soll, ansonsten blockt der IC den I²C Bus und es funktioniert nichts mehr anderes am Bus. Die get_thermocouple() einfach jede Sekunde einmal aufrufen. Wenn man den IC zu oft liest, gibt er nur noch Müll aus. Die genaue Grenze steht im Datenblatt.
 
@sochs

danke für deine schnelle und genaue Antwort.

muß ich mal schauen ob ich das hinbekomme, stecke da nicht so in der Materie drin ;)
Nein, ich hatte den I²C vorher nicht gescannt, hatte einfach 7c eingetragen weil es glaube auf dem
OLED so steht ....

Die MAX6675 die ich habe zeigen übrigens "Mist" an (im Netz findet man dazu einige Beiträge mit gleichen / ähnlichen Problemen).
Mit steigender Temperatur steigt deren Abweichung ... zBspl. bei tatsächlichen 100C bekomme ich knapp 140C angezeigt.
 
Ich habe die gleichen Module (also zumindest optisch) an meinem Grill verbaut (da noch mit SPI Anbindung), aber mit ordentlichen Thermoelementen. Da funktionieren sie gut. Ich hatte beim Nano aber auch schon fehlerhafte ICs, ist bei chinesischen Händlerquellen so eine Sache.
 
auf die schnelle ... kurze Antwort ;)

-beide MAX6675 zeigen schon bei Zimmertemperatur eine Abweichung nach oben (+2 und +2-3)
-wenn ich die Thermoelemente tausche, bleibt die höhere Abweichung am MAX der vorher schon höher war
-die Abweichungen werden wie schon gesagt mit steigender Temperatur immer krasser

-ich habe wie erwähnt, mehrere "Artikel" zu diesem Verhalten gefunden, einer schrieb (müsste suchen wo ich dies fand)
das er im zusammenhang mit dem Nodemcu und dem MAX6675 auf keinen grünen Zweig käme (sinngemäß gesprochen) während
die selben MAX6675 mit dem selben Sketch an einem Arduino UNO tadellos funktionieren
-bei "dessen" MAX6675 handelt es sich rein optisch um genau die gleichen wie bei meinen (der 100 Nano ist von mir draufgelötet)


Ich hatte mir (weil ich schon mal Fühler dort gekauft hatte und auf deinen Rat hin), zwei Stück bei Sensorshop24
bestellt...die können aber einen seit über einer Woche nicht liefern und haben mich vertröstet.
Da ist also warten angesagt. Die MAX31855 die ich zu Beginn meines "Project's" bei FT bestellt habe sind ebenfalls noch nicht eingetroffen.
Da ist also ebenfalls warten angesagt ;)

Nun könnte ich die MAX6675 noch am Raspberry testen oder mir nen Arduino R3 Clone für ein Appel und Ei zulegen ;)
Oder Alternativ die Dinger in die Tonne kloppen ;)

MAX6675_real.jpg
 

Anhänge

  • MAX6675_real.jpg
    MAX6675_real.jpg
    31,1 KB · Aufrufe: 4.416
-beide MAX6675 zeigen schon bei Zimmertemperatur eine Abweichung nach oben (+2 und +2-3)
Würde ich nicht unbedingt auf einen defekten IC oder Fühler zurückführen. Die Genauigkeit ist zwar mit 0,25 K angegeben, aber die gemessene Temperatur wird ja aus einer Differenz zu einer "Referenztemperatur" bestimmt und gerade bei niedrigen Temperaturen kann der Fehler da recht groß werden. Die Genauigkeit von Typ K Thermoelementen würde ich also eher bei +-2 K sehen. Wenn man 500 °C messen will, ist es aber auch egal, ob 500 °C oder 502 °C angezeigt werden. Als Fleischfühler bevorzuge ich deshalb aber NTC, die im Bereich von 0 - 100 °C eben genauer sind.

-ich habe wie erwähnt, mehrere "Artikel" zu diesem Verhalten gefunden, einer schrieb (müsste suchen wo ich dies fand)
das er im zusammenhang mit dem Nodemcu und dem MAX6675 auf keinen grünen Zweig käme (sinngemäß gesprochen) während
die selben MAX6675 mit dem selben Sketch an einem Arduino UNO tadellos funktionieren
Kann dann ja nur was mit dem Bus und dessen Geschwindigkeit zu tun haben. Wie gesagt, der IC darf nicht zu oft (nach einander) ausgelesen werden und der CS ist wichtig, weil er nur dann sauber messen kann. Steht alles im Datenblatt.

-bei "dessen" MAX6675 handelt es sich rein optisch um genau die gleichen wie bei meinen (der 100 Nano ist von mir draufgelötet)
ok, deine Module sehen etwas anders aus als meine (Position des MAX). Im Grunde braucht der MAX aber nur einen 100nF an VCC und einen 10nF zwischen den Thermoelementkontakten, das scheint gegeben zu sein.
Was mir an den Boards nicht so gefällt ist der weite Abstand zwischen IC und Thermoelement-Anschluss und das bei recht dünnen Leiterbahnen, das fördert eine Fehlmessung zur Referenz.

Die MAX31855 die ich zu Beginn meines "Project's" bei FT bestellt habe sind ebenfalls noch nicht eingetroffen.
Da ist also ebenfalls warten angesagt ;)
Ansonsten die MAX31855 als reinen IC von einer "guten" Quelle, wie mouser.com beziehen und die MAX6675 auf den Breakout-Boards dadurch ersetzen. Mit Heißluft ist das ja in einer Minute gemacht. Die beiden MAX haben identisches Pinout meine ich.
 
@ s.ochs

ich werde jetzt erstmal warten bis sensorhop24 die Fühler liefern kann, damit ich das ganze besser eingrenzen kann.
danke für den Hinweis mit mouser, kannte ich nicht ;) da habe ich aber gleich das nächste Problem ... welcher MAX31855 darfs denn sein !?
es gibt da unter anderem KASA+, KASA+T, TASA+T, JASA+ und und und ....
wo sind die unterschiede ?
 
Auch das steht im Datenblatt ;)
Du brauchst KASA+. Die T.., J.. sind keine Typ K ICs. Es gibt von den Thermoelementen verschiedene Typen (K, J, T, ...), sie unterscheiden sich in den verwendeten Materialien im Fühler (Datenblatt S.8). Bei sensorshop24 gibt es die verschiedenen Typen auch zu kaufen, deshalb immer drauf achten, dass der Fühler und der IC "Typ K" sind. Der Zusatz +T bedeutet nur, wie die Teile verpackt sind (S. 12). Bei mouser kaufen auch Großkunden Bauteile auf Rollen etc. in Millionenstückzahl. Mouser liefert innerhalb von 3-4 Tagen aus den USA, allerdings erst ab 50 € Versandkostenfrei und man muss auf die Preise noch 19% Mehrwertsteuer rechnen. Ich bestelle da öfter, kann dir also auch mal was mitbestellen, wenn du alleine nicht auf 50 € (Netto) kommst.
 
What agreat project! I love it an have build it now with 2 max6675 sensors. Found a nice instructtion how to add a calculation in the arduino code to display a good calculated and steady average temperature. Can you share the QR code for the blynk app? Thanks!
 
Zurück
Oben Unten