Unlösbare Auflagen Meisterprojekt

Hallo zusammen,

durch den Prüfungsausschuss meiner Meisterschule sind mir Auflagen für mein Meisterprojekt auferlegt worden.

Da ich keinerlei Kenntnisse in C++ habe und wir das auch nur schlecht als recht (die ersten Steps) im Unterricht hatten, bin ich nun verzweifelt...

Gibt es jemanden, der mich dabei unterstützen würde, einen finanziellen Background würde ich jetzt erstmal offen lassen, vielleicht gibt es ja jemanden der einfach gerne hilft :).

Die Aufgabenstellung lautet wie folgt :

Mit Hilfe eines Mikrocontrollers, welcher mit C++ zu programmieren ist, soll die die Demonstrationsfunktion automatisiert ausführt werden. Hierzu ist die Temperatur der Heizplatte über Sensoren zu erfassen und 3 frei definierbare Temperaturstufen einzustellen. Diese werden zeitverzögert mit Haltezeit angefahren. Über einen Taster wird das Programm gestartet und aus Sicherheitsgründen auch abgebrochen. Ein Display zeigt die aktuelle Soll- und Ist-Temperatur, sowie die Laufzeit des aktuellen Zyklus an. Die Auslösetemperatur und Auslosezeit muss am Ende des Zyklus angezeigt werden.

Bei wirklichem Interesse würde ich auch meinen Projektvoeschlag teilen. (privat)

Habe bisher folgendes aus ChatGPT gequetscht (ja ich bin verzweifelt)

Klar, hier ist der aktualisierte Code, der die I2C-Schnittstelle für das Display verwendet:

```C++
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_MAX31865.h>

// Pin-Belegung
#define HEATING_PIN 3      // Pin für Relaiskarte, die die Heizplatte steuert
#define BUTTON_PIN 4       // Pin für Taster
#define CS_PIN 5           // Pin für Chip-Select-Leitung des MAX31865
#define CLK_PIN 6          // Pin für Clock-Leitung des MAX31865
#define DO_PIN 7           // Pin für Data-Out-Leitung des MAX31865

// Konstanten
#define DELAY_TIME 500     // Verzögerung zwischen den Schleifendurchläufen
#define RELAY_ON LOW       // Relais aktiviert bei niedrigem Signal
#define RELAY_OFF HIGH     // Relais deaktiviert bei hohem Signal
#define TARGET_TEMP_1 50   // Temperaturstufe 1 in Grad Celsius
#define TARGET_TEMP_2 60   // Temperaturstufe 2 in Grad Celsius
#define TARGET_TEMP_3 70   // Temperaturstufe 3 in Grad Celsius
#define TRIGGER_TEMP 100   // Auslösetemperatur in Grad Celsius
#define TRIGGER_TIME 10    // Auslösezeit in Minuten
#define HEATING_TIME 5     // Heizzeit in Minuten

// Globale Variablen
Adafruit_MAX31865 thermocouple(CLK_PIN, CS_PIN, DO_PIN);
int targetTemps[3] = {TARGET_TEMP_1, TARGET_TEMP_2, TARGET_TEMP_3};   // Temperaturstufen in Grad Celsius
int targetIndex = 0;                 // Aktuelle Temperaturstufe
int triggerTemp = TRIGGER_TEMP;      // Auslösetemperatur in Grad Celsius
int triggerTime = TRIGGER_TIME;      // Auslösezeit in Minuten
int heatingTime = HEATING_TIME;      // Heizzeit in Minuten
unsigned long cycleStartTime = 0;    // Startzeit des aktuellen Zyklus
int cycleRunTime = 0;                // Laufzeit des aktuellen Zyklus
bool heatingActive = false;          // Heizung aktiv/inaktiv
bool cycleComplete = false;          // Zyklus abgeschlossen
bool buttonPressed = false;          // Taster gedrückt/nicht gedrückt

// LCD-Display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  // Initialisierung des Temperatursensors
  thermocouple.begin(MAX31865_2WIRE);
  
  // Initialisierung des Relais-Pins
  pinMode(HEATING_PIN, OUTPUT);
  digitalWrite(HEATING_PIN, RELAY_OFF);
  
  // Initialisierung des Taster-Pins
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  
  // Initialisierung des LCD-Displays
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Soll:    Ist:");
}

void loop() {
  // Temperatur auslesen
  float temp = thermocouple.temperature(100, 430);   // PT100 Temperaturbereich: -200 bis 850 Grad Celsius
  
  // Taster auslesen
  if (digitalRead(BUTTON_PIN) == LOW) {
    buttonPressed = true;
  }
  
  // Zyklusstatus aktualisieren
  if

Ich verstehe die Aufgabe so:
Ein Elektroherd soll zu einer (irgendwie) vorgegebenen Zeit eingeschaltet werden, auf eine (irgendwie) vorgegebene Temperatur gebracht werden und nach einer (irgendwie) vorgegebenen Zeit wieder abschalten.
Display und Ein-/Aus Schalter sollte klar sein.

Ich würde damit anfangen, eine Uhr, ein Display und Schalter für die diversen Vorgaben zu suchen und ihre Einstellungen abzufragen und anzuzeigen.

Es wäre einfacher, Dir von ChatGPT einen Meisterbrief erstellen zu lassen. Der muß nicht funktionieren, nur schönes Deutsch enthalten und kein zusammengeratenes C.

Wieviel Zeit hast Du denn, um wenigstens die Grundlagen von C und der Programmierung für Schalter, Sensoren, Displays und Relais zu lernen?

Womit hast Du denn bislang schon welche Mikrocontroller programmiert? Schalter etc. mit Drähten angeschlossen?

ChatGPT? Dachte, das heißt für CheatGPT ...

Es geht um eine Brandfrüherkennung über eine Thermalkamera mit verschiedenen Ansteuerungen, 2 unabhängigen Sensoren mit Algorithmen, über eine VMS und dafür soll diese Vorführschaltung+Programm sein

Ich finde verurteilen kann man immer recht schnell, wenn man die Hintergründe des jenigen nicht kennt, der sich nicht ohne Grund an dieses Forum wendet.

Es ist null mein Fachgebiet, ich bin in einer leitenden Position und arbeite für 3...

Der Entwurf muss bis zum 12.05.23 Vorort sein und ich bezweifle, dass ich bis dahin soviel Knowhow zu sammeln, um das komplett zu machen.

Ich habe das Material was man dafür braucht bereits zuhause und grundlegend zusammengelötet, in der Hoffnung, dass das korrekt ist.

Habe bisher keinerlei Erfahrung mit Programmierung von Mikrocontrollern

mal sehen wie viel Glück du hast

Poste mal den Schaltplan.

Was qualifiziert Dich denn für die Erlangung eines Meistertitels, für welchen Beruf? Und warum möchtest Du Dir so eine Prüfung aufbürden, zusätzlich zu Deiner sonstigen Auslastung?

Ich bin gelernter Elektroniker IT-Technik, habe aber seit jeher nur in der Daten-und Gefahrenmeldetechnik gearbeitet.

Der Meistertitel wäre dann Informationstechnikmeister.

Ich habe den Meister angefangen, um einen Schritt weiter zu kommen im Leben und mir für die Zukunft alle Türen offen zu halten. Habe mir nun 2 Jahre jedes Wochenende den Arsch aufgerissen und wenig Lust wegen der Auflagen, diesen Aufwand ins Skat zu drücken.

Werde morgen einen Schaltplan vom Ist-Zustand zeichnen, bisher ist das Freihand entstanden.

Gibt es dafür auch Aufgaben ohne Programmierung?

Nein, diese Aufgabe möchte der Prüfungsausschuss unbedingt haben, weil sie sehr auf Mikrocontroller stehen.

Die Prüfung kann jeder Prüfungsausschuss in Deutschland mehr oder weniger frei wählen, je nachdem was die mögen.

Ich empfinde mein Projekt nicht als sonderlich leicht, mit den ganzen Schnittstellen in der VMS(Regeln schrieben und Softwareschnittstellen programmieren), aber es fehlte der Mikrocontroller ala Arduino oder Raspberry. Ich wollte halt ein Adam-Modul für die ganzen Ansteuerung nutzen, das war wohl zu wenig.

ich würde zunächst mit einem System-/Blockbild beginnen und dann einen Programmablaufplan bzw einem Diagramm für eine Finite State Machine beginnen.
Vernünftiger Schaltplan könnte auch helfen.

Dann eine Beschreibung / Aufbau der LCD Ausgaben / Menüführung. So einfach wie möglich - nur nicht über das notwendigste hinausschießen. Wenns schön werden muss wie in einer Bedienungsanleitung, dann kann man z.B. das verwenden: LCD/LED Screenshot Generator

das geht alles ganz ohne C++ bis zum 12.5.

Parallel dazu für alle Komponenten die verwendet werden sollten, einzelne Beispiele zusammensuchen. Arduino IDE, Internet Seiten, aber nicht chatGPT ... irgendwas augenscheinlich funktionierendes.

Als Entwicklungsleitplanke kann ich nur empfehlen das EVA-Prinzip anzuwenden, wenn noch nicht bekannt.

Warum? Wenn die Frage erlaubt ist?

ich schau mir den gezeigten Code an, lese die Erkenntnis des TO und stelle fest - nicht tauglich für diese Aufgabe.

ChatGPT ist keine zitierfähige Quelle. Es garantiert nicht, dass du mit derselben Frage beim nächsten Mal dieselbe Antwort bekommst.
Damit kannst du also nicht nachweisen, dass du es von ChatGPT hast.
Dass du es dir selber ausgedacht hättest, kannst du aber auch nicht. Das wäre erstens gelogen, und zweitens kann dir das jede KI nachweisen :wink:

Ein Meistertitel im IT-Gewerbe ist recht seltsam, denke ich. Außer du willst Azubis ausbilden.
Dann solltest du aber schon mit Arduino C++ vertraut sein.

:slight_smile:
Frag drei Spezialisten und Du bekommst vier Antworten.
Frag einen Juristen und Du bekommst als Antwort "kommt darauf an".
Die Wahrscheinlichkeit von ChatGPT bei 2 gleichen Anfragen die gleiche Antwort zu bekommen, halte ich da schon für ausreichend...

Nix für ungut aber da spielt es keine Rolle ob Mensch oder KI. Bei C++ und der Arduino Welt führen meist viele Wege nach Rom und selbst ich programmiere nicht immer gleich bzw. Heute nenne ich die Variable x, Morgen vielleicht y und dann kannste 10 Leute nach einer Problemlösung Fragen und jeder wird dir einen anderen Lösungsweg aufzeigen.
Mit einer KI ists da nicht anders, heute so, morgen so.
Und wenn der code mal aufm Microkontroller ist kannste eh nicht mehr feststellen was eigentlich der Ursprungscode war.

Der Weg zum Programm ist das Ziel und das is das, was geprüft wird.

Das grundlegende Problem mit ChatGPT und Konsorten ist, dass da ein Mittelwert aller Codes zu dem Thema generiert wird, ohne Sinn und Verstand. Bei einigermaßen häufig gelösten Problemen mag das angehen, bei exotischeren ist die Versagenswahrscheinlichkeit immens.

Verlockend, weil's toll aussieht und schnell geht, aber gefährlich, sich darauf zu verlassen.

und üblicherweise auch geprüft und kontrolliert... :wink:

@evil17 : an dem Code oben verwirren mich schon die ganzen #define