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

HBO WLAN Thermometer

Moin,
@s.ochs

Verdrahtet habe ich das ganze so:

MAX31855- NodeMCU
VCC- 3.3V
GND- GND
SO- D6/GPIO12
CS- D0/GPIO16
SCK- D5/GPIO14

das mit den 999.9 ohne TYP-K stimmt.
Leider kommt mit angeschlossenem, richtig gepoltem TYP-K das hier:
Temp = 999.90
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00

ändere ich die Polung, kommt das :

Temp = -1658.50
Temp = -230.50
Temp = -1076.50
Temp = -1954.50

Hab das ganze mit 2 NodeMCU, 3 MAX31855 und 5 TYP-K versucht.

Gruß mattes
 
Hi,

Code hatte ich den von Seite 3 von s.ochs.
Code:
#include <SPI.h>
#define THERMOCOUPLE_CS 16

double get_thermocouple(void) {
  // Reading Temperature KTYPE

  int32_t dd = 0;

  digitalWrite(THERMOCOUPLE_CS, LOW);
  delay(1);

  SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));

  dd = SPI.transfer(0);
  dd <<= 8;
  dd |= SPI.transfer(0);
  dd <<= 8;
  dd |= SPI.transfer(0);
  dd <<= 8;
  dd |= SPI.transfer(0);

  SPI.endTransaction();

  digitalWrite(THERMOCOUPLE_CS, HIGH);

  if (dd & 0x7) {
    return 999.9;
  }

  if (dd & 0x80000000) {
    // 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;
  }
 
  double vv = dd;

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

void setup() {
  // put your setup code here, to run once:

  Serial.begin(115200);
  Serial.println();
  Serial.println();

  delay(1000);
 
  pinMode(THERMOCOUPLE_CS, OUTPUT);
  digitalWrite(THERMOCOUPLE_CS, HIGH);
  SPI.begin();

}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.print("Temp = ");
  Serial.println(get_thermocouple());
  delay(5000);

}

Momentan versuche ich mich noch mit Arduino.
Hab den ganzen morgen damit verbracht. Eine Firmware auf den NodeMCU zu bekommen. Das hab ich jetzt geschafft und werde mich mal an die Lua Geschichte machen. Gar nicht so ohne,die ganze Sache :-(

Gruß Mattes
 
Moin,
@s.ochs

Verdrahtet habe ich das ganze so:

MAX31855- NodeMCU
VCC- 3.3V
GND- GND
SO- D6/GPIO12
CS- D0/GPIO16
SCK- D5/GPIO14

das mit den 999.9 ohne TYP-K stimmt.
Leider kommt mit angeschlossenem, richtig gepoltem TYP-K das hier:
Temp = 999.90
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00
Temp = -2048.00

ändere ich die Polung, kommt das :

Temp = -1658.50
Temp = -230.50
Temp = -1076.50
Temp = -1954.50

Hab das ganze mit 2 NodeMCU, 3 MAX31855 und 5 TYP-K versucht.

Gruß mattes

Verdrahtung passt. Der selbe Code liefert bei mir passende Werte, nur dass ich keinen Nodemcu sondern den ESP8266 direkt habe. Ich verwende aber die selben GPIO. Bist du sicher das es sich um K-Typ Thermoelemente handelt? Und die auch keine Materialbrücke zwischen Thermoelement und MAX hast, die die Referenz verfälscht? Da man eine Reaktion auf dein Umpolen an der Seriellen Ausgabe sehen kann, würde ich einen Software-Fehler ausschließen.
 
Auf dem Nodemcu sitzt ja ein ESP, sollte also passen. Nur das beim Nodemcu eben Supply und Sonstiges schon mit auf dem Board ist. @grilllmattes, hast du mal einen anderen SPI-Client an die Schnittstelle gehängt, zum Testen dieser? Ich vermute aber mal, dass es daran nicht liegt, denn man sieht ja, dass etwas aus dem MAX ausgelesen wird. Kannst du die K-Type Elemente an einer anderen Referenz testen?
 
Ich habe noch einen Nodemcu in meiner Bastelkiste gefunden. Ich kann dein Problem aber leider nicht nachbilden.

P2084895.JPG


Verkabelung entspricht der von dir. Ich habe lediglich statt des Max31855 das Vorgangermodul mit dem Max6675 angeschlossen, weil ich vom 31588 nur die ICs aber ohne das Modulboard hier hab. Ist aber auch egal, weil das Pinout identisch ist und der 6675 lediglich einen kleinern Wertbereich hat (siehe SPI.transfer):

Unbenannt3.png


Wie gesagt, mit dem 31855 habe ich auf meinen eigenen Boards (also kein Nodemcu) aber auch keine Probleme. Entweder sind deine Boards alle im Eimer, oder irgendwas stimmt mit den Thermoelementen nicht.
 

Anhänge

  • P2084895.JPG
    P2084895.JPG
    863,5 KB · Aufrufe: 1.237
  • Unbenannt3.png
    Unbenannt3.png
    68,2 KB · Aufrufe: 1.191
Moin,

schon mal vielen Dank für den Support.
Habe mich gestern den ganzen Abend mit der Lua Geschichte abgequält.
Habe 2 NodeMCU Dev. Kits 0.9. Die spinnen wohl auch rum.
Mal hab ich eine Verbindung im Esplorer, mal nicht. Bekomme auch keinen Code zum laufen.

Noch nicht mal das Blink Test lua. Geschweige denn eine Wlan Verbindung :-(

Also alles in die Kiste gekloppt und meinen Raspi rausgekramt.

Code:
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F
Thermocouple Temperature: -2048.000*C / -3654.400*F
    Internal Temperature: 127.938*C / 262.288*F

Würde sagen 3x MAX31855 -> China Schrott !!

Fühler sind definitiv TYP-K. Laufen ja auf meinem ersten WLANThermo mit einem AD595 perfekt.

Hatte hier auch noch was schönes zum spielen gefunden http://community.blynk.cc/t/my-bbq-...-dual-k-probe-via-max31855-oled-display/11347

Gruß mattes
 
Hab mir jetzt 2 MAX6675 mit K-Type Fühler geholt und siehe da, schon klappt es.... auch mit meinen eigenen K-Type Fühlern.

Also wirklich 3 mal in´s Klo gegriffen mit meinen MAX31855 ....man kann halt nicht immer Glück mit China Ware haben....
 
Hallo erst mal an alle.... ich bin neu hier und hätte eine frage bezügl. eines arduinos und einem passenden thermometer ! könnte mir da jemand weiter helfen ?? grüße Heiko
 
danke für die schnelle antwort! ;-)

ich experementiere mit einem 220 kohm thermometer und einem arduino... aber mit dem thermometer hab ich bei 50grad ca. 5 gard unterschied zu meinem messgerät... was könnte ich denn benutzen um das genauer hin zu bekommen?
 
@HighCo kannst du mal Bilder von deinem Aufbau posten? Wie hast du das Thermometer angeschlossen? Referenz des analogen Kanals? Welche Auflösung benutzt du? Eventuell auch mal deinen Programmcode posten. Vll am besten in einem eigenen Post, dann kann man sich das mal genauer ansehen. Typ K brauchst du nur, wenn du hoch Temperaturen messen willst.

Edit: Als Fleischthermometer würde ich Typ K nicht zwingend verwenden, da ist ein NTC schon nicht schlecht. Als Garraum-Thermometer schon eher, je nachdem welche Temperaturen du da fahren willst. Eine Fühlerauswahl findest du auf sensorshop24.de
 
ich habe bisher nur alles auf einem steckbrett aufgebaut... das thermometer habe ich an einem analogen port des arduinos angeschlossen... und hier ist der test code dazu.... mit der ET73.h




#include <ET73.h> // First we must include the ET73 Library found here

#define MEAT_PROBE_PIN 4 //Now we define which analog pin we're going to read our probe from

ET73 meatProbe(MEAT_PROBE_PIN);


void setup() {
Serial.begin(57600); //Start the Serial for testing purposes
}

void loop() {
//When we call the meat probe getTemp_F method, by default the library takes 24 readings at a 10ms interval
float myTemp = meatProbe.getTemp_F();
float myTemp1 = meatProbe.getTemp_C();

Serial.print("Temp: ");
Serial.print(myTemp1);
Serial.print(" C\n");


meatProbe.setNumOfSamples(20); //Here we've set the probe to take the average of 20 samples each reading

meatProbe.setSampleInterval(50); //Here we've set it to take a sample every 200 ms

myTemp = meatProbe.getTemp_F();

Serial.print("Temp: ");
Serial.print(myTemp1);
Serial.print(" C\n");

}
 
Zurück
Oben Unten