ESP 8266 soll Wasserkühlung überwachen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • hallo an alle,

    angestachelt von den letzten Experimenten mit dem ESP8266 möchte ich nun eine sehr lange Wasserkühlung eines meiner Systeme auslesen und in eine Datenbank wegschreiben.

    Hierzu sind in der WAKÜ nachfolgende Sensoren verbaut. Temperatursensor Ich weiß das es ein NTC ist und dieser mit einem Wiederstand von 10 k Ohm betrieben werden muss.

    Hier nun schon die erste Frage, kann ich für diesen NTC auch die 3 V des ESP verwenden? Ich hatte diesen damals an einem Pi mit 5V und einen MCP 3008 (wegen Analogumwandlung).

    Zweite Frage, ich habe den Port D4 zum Wiederstandswert auslesen genommen. Ist das so richtig ? Oder kann ich mir irgendetwas damit kaputt machen?

    kurz zum technischen Aufbau: die 3V gebe ich direkt auf eine Seite des NTC´s. Ground gebe ich in einen 10 k Ohm Wiederstand und danach in die andere Seite des NTC´s. Nach dem Wiederstand greife ich noch den Wiederstandswert über Port D4 ab.

    So richtig, oder ist meine Hardware gefährdet?

  • Hallo an alle manchmal hat man einfach auch mal Glück.

    Durch Zufall bin ich über diesen Post gestoßen.

    Link zum Post

    Somit habe ich auch herausgefunden das ich den Port D4 vergessen kann und nur den Port A0 nutzen kann.

    Also schnell alles umgebaut und los geht es.

    Einziges Problem was ich habe ist, das mein NTC sich genau "andersherum" verhält wie im Post. Das heißt, wird mein NTC wärmer sinkt der Wiederstand.

    Jetzt bräuchte ich eure Hilfe, könnte mir irgendjemand erklären was ich an der Berechnung ändern muss?

    Ich habe mir zwar Steinhart Hart Equation durchgelesen aber ich verstehe nur Bahnhof. Das ist nicht mein Fachgebiet.

  • Moin tutter,

    Einziges Problem was ich habe ist, das mein NTC sich genau "andersherum" verhält wie im Post. Das heißt, wird mein NTC wärmer sinkt der Wiederstand.

    Wie kommst du auf die Idee das es in der Anleitung anders ist?

    18KOhm bei 10°C und 4KOhm bei 50°C lese ich aus dem Diagramm. Du nicht?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Deiner Beschreibung nach sind bei dir der Widerstand R1 und der NTC genau vertauscht. Das führt dazu, dass die Berechnungen sich alle undrehen. Tausch die mal um, dann könnte es gehen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Hallo an alle,

    wahrscheinlich ist es schon die Uhrzeit aber ja jetzt geht es. Jetzt möchte ich aber meinen BMP280 der hier im Versuchsaufbau noch mit installiert ist.

    Die Bibliotheken von Adafruit habe ich hinzugefügt nur die serial.print´s weiß ich nicht wo ich es einfügen soll ;-).

    Kann mir jemand auf die Sprünge helfen?

  • Nein das ist noch nicht.

    Ich der ESP blinkt lustig vor sich hin und ich erhalte in etwas nachfolgende Meldungen über den Seriellen Monitor.

  • Moin tutter,

    ist der Code auf deinem Mist gewachsen? Entschuldige meine Ausdrucksweise.

    Er ist zwar übersetzbar, aber einige "Funktionen" werden nicht aufgerufen und damit wird das Ergebnis nicht so sein wie du denkst.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Offensichtlich stürzt dein Programm beim Auslesen des BMP280 ab.

    Sieh Dir mal das Beispiel an, damit Du verstehst welche Befehle benötigt werden und wozu diese gut sind.

    Ich denke die Ursache könnte sein, dass Du der Library nie "gesagt" hast, welche Pins sie verwenden soll.

    Im Beispiel wird dies bei der Instanzierung der Klasse gemacht. Deine Zeile 14 müsste somit lauten:

    Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);

    Dein Befehl verwendet nur die "Standardpins"

    Außerdem solltest im Setup noch den Sensor initialisieren:

    Code
      if (!bmp.begin()) {      
        Serial.println("Could not find a valid BMP280 sensor, check wiring!");    
        while (1);  
      }

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Du hast da wahrscheinlich auch einen Kopierfehler drinnen:

    Das sollte wohl beides in den Setup-Bereich rein, durch den Fipptehler wird das bmp.setSampling jetzt gar nicht aufgerufen, damit wird der BMP dann die Einstelungen nicht kennen. Das könnte die Fehler auslösen.

  • Hallo an alle,

    ich hoffe ich habe alle Vorschläge richtig verstanden und eingebunden.

    Nun habe ich aber das Problem das der BMP 280 die Werte "Tempreature" und "Presure" nicht mehr liefert. Der NTC arbeitet wie gewünscht.

    nutze ich das BMP280 Test Skript funktioniert alles super und der BMP 280 liefert alle gewünschten Werte.


  • Außerdem solltest im Setup noch den Sensor initialisieren:

    Code
      if (!bmp.begin()) {      
        Serial.println("Could not find a valid BMP280 sensor, check wiring!");    
        while (1);  
      }

    In Deinem Quellcode ist dieser Befehl noch nicht drinnen. Wenn das Beispiel funktioniert, kannst Du natürlich auch die Codeteile des Beispieles übernehmen.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Wow Dein Programm ist genauso ein zusammenkopiertes Chaos wie meine Eigenen. :lol:

    In dem von Dir zitierten Beispiel ist die I2C-Zeile aktiviert:

    Code
    ...
    
    Adafruit_BMP280 bmp; // I2C
    //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
    //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);
    ...

    diesen Aufruf hattest Du auch in #5, in Deinem Programm nutzt Du jetzt aber:

    Code
    ...
    
    //Adafruit_BMP280 bmp; // I2C
    
    Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
    
    ...

    Wie ist es denn verdrahtet???

    Außerdem nutzt Du einmal die Funktion printValue bevor die serielle Schnittstelle initialisiert wird, da wird nichts rauskommen.

  • Matsch1 ja ich glaub so geht man vor wenn man etwas neues lernt ;)

    Mein BMP280 ist so verkabelt das es dem I2C entspricht. Ich lese den BMP280 mit dem D1 und D2 Anschluss aus. In den Testbeispiel klappt es auf I2C auch super.

    Kannst du mir auf die Sprünge helfen? Wo müsste denn printValue hin und warum? das verstehe ich noch nicht.

  • ...

    Mein BMP280 ist so verkabelt das es dem I2C entspricht. Ich lese den BMP280 mit dem D1 und D2 Anschluss aus. In den Testbeispiel klappt es auf I2C auch super.

    ...

    dann ändere doch mal

    Code
    ...
    
    //Adafruit_BMP280 bmp; // I2C
    
    Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
    
    ...

    in

    Code
    ...
    
    Adafruit_BMP280 bmp; // I2C
    
    //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
    
    ...
    ...

    Kannst du mir auf die Sprünge helfen? Wo müsste denn printValue hin und warum? das verstehe ich noch nicht.

    Pack mal die Zeile 29 aus deinem Programm hinter die Zeile 35, dort wird erst die serielle Ausgabe initialisiert.

  • Oje, ich glaube Ihr seid auf dem Holzweg. Der Code in Zeile 29 void printValue(String text, float value, String text2=""); ist "nur" ein Prototyp und ermöglicht es, dass eine Funktion unter dem Aufruf stehen kann. Die serielle Schnittstelle wird beim ersten Aufruf in Zeile 35 mit Serial.begin(9600); initialisiert. Erst danach folgt das restliche Programm. Schade finde ich es, wenn meine Hinweise ignoriert (#12) bzw. nur zur Hälfte (#9) umgesetzt werden. Der T.E. scheint an der Lösungsfindung nicht sehr interessiert zu sein, wenn er nur einmal täglich antwortet und da nur auf die letzte Antwort eingeht... So ist mir das zu anstrengend. Schade, ich hätte gerne geholfen...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • VeryPrivat Nein das ist ganz und gar nicht der Fall. Ich bin an einer Lösung sehr interessiert und versuche so viele Ratschläge wie möglich zu beachten und umzusetzen. Das mit dem einmal täglich hast du richtig wahrgenommen. Manchmal kommen private Dinge einen in der Tagesplanung in die Quere und das hat für mich zur Folge das ich nur Nachts mich mit diesen Thema weiter beschäftigen kann.

    Es bitte nicht böse sein. Ich freue mich über jeden Post, da ich immer der Meinung bin es bringt mich weiter.

    Ich habe nun die Lösungsansätze von VeryPrivate einfließen lassen.

    Ich glaube was ich nicht richtig verstanden habe ist, das wenn ich

    Code
    Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);

    setze auch die passenden Ports weiter oben im Skript setzen muss.

    Ich nehme an das nachfolgende Ports die richtigen sind (5 und 4) ich habe den BMP280 noch immer an D1 = SCL und D2 = SDA.

    Code
    #define BMP_SCK  (5)  //Empfehlung VeryPrivate 5  vorher 13   #define BMP_MISO (12)  #define BMP_MOSI (11)
    #define BMP_CS   (4)  //Empfehlung VeryPrivate 4  vorher 10   

    Jetzt funktioniert nur garnichts mehr ;)

    Ich erhalte lediglich die Zeile "BMP280 Test".


  • Ich kann ja leider nicht wissen, wie Du den BMP280 angeschlossen hast. Meine Codevorschläge sind aus dem Beispiel übernommen, das ja gut erklärt ist und bei dem auch erklärt wird warum die Befehle so sind und worauf man achten muss.

    Mir war die Zeile 37 bis 41 wichtig. Lass die Instanzierung ruhig wie sie ist, wenn es klappt bzw. geklappt hat.

    Soweit ich sehe hat die Instanziierung ohne Parameter geklappt: Adafruit_BMP280 bmp - wenn das so ist, sind die 4 #define auch unnötig und du kannst sie weg lassen/auskommentieren.

    PS: Ich habe auch keine #define vorgeschlagen, die sind wohl aus dem Beispiel.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

    2 Mal editiert, zuletzt von VeryPrivat (4. Oktober 2021 um 22:47)

  • Moin!

    mein Vorschlag. Nimm das Beispiel. Sorge dafür das es funktioniert und baue dann dein NTC ein.

    Aber ein Moderator reicht. Ich lese wieder mit...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Guten Abend bzw. es geht schon auf guten Morgen zu ;) .

    Nach dem ich das ganze Skript verworfen habe und neu gestartet habe ist nun dies die finale Fassung.

    Nun will ich am ESP noch weitere analoge Anschlüsse nutzen jedoch habe ich ja nur einen. Deswegen bin ich auf den "ads1115". Würdet ihr mir den auch empfehlen? ich brauch insgesamt 4 max. 8 analoge Anschlüsse.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!