Go Down

Topic: Projekt zur Ermittlung der Dauerbetriebseigenschaften unterschiedlicher Sensoren (Read 4467 times) previous topic - next topic

Hayley_Hay

Danke für die vielen Kommentare! Ich versuche mal, auf einige zu antworten.

Moin,

ich würde die unterschiedlichen Sensoren nicht testen. Ich glaube nicht, das da in angemessener Zeit irgendeine Erkenntnis bei rumkommt.
Wenn du auf Nummer sicher gehen willst, dann bau einfach ein paar Sensoren redundant ein.
Dann wirst du die Ergebnisse im Live-Test irgendwann auch haben.
Du kannst dir ja eine email schicken lassen, wenn ein Sensor was anderes anzeigt als die anderen :-)

Lieben Gruß,
Chris
Um auf die Zuverlässigkeit schliessen muß man das Ganzes mal 3-4 Jahren unter realen Bedingungen (Frost, Hitze, UV Strahlung, Gewitter, Marderbisse, Korrosion usw...) testen. Da dürfte von dem Arduino-China-Schund nicht mehr viel übrig bleiben.
Da ich mir die Aufgabe nicht selber gesucht sondern sie zugewiesen bekommen habe, ist das leider keine Alternative ;-) Außerdem gehe ich schon davon aus, dass auch nach z.B. zwei Wochen erhöhter Belastung eine Erkenntnis entsteht - und sei es, dass die einfachen Schwimmerschalter immer noch am besten funktionieren wenn man sie vielleicht auch nach zwei Jahren wechseln muss. Vielleicht noch in Kombination mit einigen Temperatursensoren. Natürlich sind die Aussagen immer einzuschränken in Hinblick auf die Testbedingungen, aber das sind Grundlagen wissenschaftlichen Arbeitens.

Tu Dir ein Gefallen und nutze keine Sensoren der Arduino-Welt.
Ein Klärwerk ist eine raue Umgebung und da gehört Industrietechnik hin.
Wenn die Bearbeitung im Raspi erfolgen soll, dann nimmt man ein Feldbus interface.
Aber da draußen gehört keine improvisierte Sensorik.
Feldinstrumente sind teuer, aber Noteinsätze und Nachbesserunge sind VIEL teurer. Wenn es nacher nicht klappt, zeigen sie allen auf Dich.
Die Sensoren sind (bis auf einen US-Sensor, den ich aber selber nicht gewählt hätte, s.o.) keine Arduino-Technik. Lediglich dieser zeitlich begrenzte Versuch soll auf Arduino/Raspberry basieren, das ist ohne weiteres zu rechtfertigen.

Du hast mein volles Mitgefühl....

Wenn du dann irgendwann mit jammern fertig bist, und etwas Gehirnschmalz für eine Lösung frei wird...
Dann könntest du den Mist ja mal zeigen, den du da verzapft hast.


Übrigens, zum optimieren, haben wir hier im Forum schon mal gemacht....
Also alles auf deutlich unter 10% eingedampft.
Danke für den Link. Was Du allerdings mir 'Jammern' meinst, verstehe ich nicht. Ich habe hier mein geplantes Projekt vorgestellt und um Gedanken dazu gebeten. Mitgefühl ist auch nur insofern notwendig wie eben für jeden Verfasser einer für einen staatlich anerkannten Ausbildungsabschluss notwendigen Arbeit. Aber auch dafür: Danke!

combie

Quote
Was Du allerdings mir 'Jammern' meinst, verstehe ich nicht.
Dann lese dein Posting #39 nochmal durch!

Aus meiner Sicht ist ein Forenposter, wenn er eine Frage beantwortet haben möchte, verpflichtet die notwendigen Angaben zu machen, damit die Helfer eine Chance haben.

Bei dem 40% Problem wäre es nötig/unabdingbar den Code zu sehen, damit man ihn auf Größe optimieren kann, oder zumindest Vorschläge in die Richtung geben kann.

Tut dieser Forenposter das nicht, so wie du in dem Beitrag, dann jammert er nur.
Und ich wende mich ab....

Dem Link, könntest du entnehmen, dass sich aus einem "Ressourcen Mangel Problem" durchaus eine interessante Diskussion, incl. Lösung, entwickeln kann.

Das "jammern" war als "Wink mit dem Zaunpfahl" gedacht, an dem noch ein ganzer Garten mit dran hängt. Den darfst du natürlich auch gerne falsch verstehen und beleidigt sein. Aber ob dir das dann weiterhilft ist eher fraglich.



Zusammengefasst:
Da du mit den nötigen Fakten hinter dem Berg hältst, kann ich dir bei deinem konkreten 40% Problem nicht helfen, sehe aber die misslichen Lage in der du dich befindest.
Das einzige was ich dir in der Situation geben kann, ist Mitgefühl!



Nobody is perfect!
(und selbst der nicht zu 100%)

Hayley_Hay

Zusammengefasst:
Da du mit den nötigen Fakten hinter dem Berg hältst, kann ich dir bei deinem konkreten 40% Problem nicht helfen, sehe aber die misslichen Lage in der du dich befindest.
Das einzige was ich dir in der Situation geben kann, ist Mitgefühl!
Dann gab es da wohl ein Missverständnis. Die 40% sind kein konkretes Problem, denn der Code ist nicht annähernd im Bereich der Vollständigkeit. Daher habe ich es als überflüssig erachtet ihn zu posten, sondern der Umstand war nur Anlass für mich, mal über die Kapazität nachzudenken und hier die Frage zu stellen. Ansonsten stimme ich Dir natürlich zu, dass konkrete Hilfe nur am konkreten Fall funktioniert. Aber da es eine allgemeine Frage war hat mir wie gesagt Dein Link zu dem allgemeinen Einsparen für's erste schon weitergeholfen.

noiasca

Neben dem Zwischenmenschlichen Geplänkel: BTT

Gibts jetzt noch einen offenen Punkt der geklärt werden muss?
Wenn ja - Welchen?
Wenn nein, könntest ja mal zum Abschluss ein paar Bilder von deinem Projekt als Dankeschön posten.
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Hayley_Hay

Neben dem Zwischenmenschlichen Geplänkel: BTT

Gibts jetzt noch einen offenen Punkt der geklärt werden muss?
Wenn ja - Welchen?
Wenn nein, könntest ja mal zum Abschluss ein paar Bilder von deinem Projekt als Dankeschön posten.
Danke für die Nachfrage!

Also der Stand ist, dass ich gerade auf die zweite Bestellung der Hardware (weitere Sensoren, Relais, Displays, Raspberry, Platinen, Gehäuse, etc.) warte und dann hoffentlich nächste Woche mit dem Aufbau der Steuerung anfangen kann. So lange setze ich mich daran, die bisherigen Sensoren in einen einzigen Sketch zu bekommen. Da wird es sicherlich noch einige Fragen geben. Bilder poste ich sehr gerne, wenn es so weit ist, ebenso natürlich wie Ergebnisse etc.

Hayley_Hay

Da ich immer noch auf die Bestellung warte ist vielleicht Zeit für noch ein paar kleine Fragen zum Code:

Ich habe nach Lektüre einiger Seiten und vorläufiger Überlegung folgenden Plan:

Steuerung
-> Arduino_1
write
--> USB (timestamp, quasi-kontinuierliche Werte der Durchflussmessung, Änderung der Relaiszustände)
--> mySQL(RasPi)

Sensoren
-> Arduino_2
write
--> USB (timestamp, Sensorwerte quasi-kontinuierlich, bzw. bei Schaltern nur bei Zustandsänderung)
--> mySQL(RasPi)

Welche Frequenz ist für die Lese-/Schreibvorgänge sinnvoll, so dass ich ohne große Kniffe die Datenbank nicht überlaste?
Sollte der Arduino_2 jeweils einen Sensor lesen und das Ergebnis seriell an die Datenbank schicken, oder erst einen Durchlauf durch alle Sensoren machen und die Ergebnisse dann in einem Zug schreiben? Ist es einfacher, die Arduinos in die Datenbank schreiben zu lassen oder den RasPi sich die Daten holen zu lassen?

noiasca

der Vorteil von einem Pull-System wäre, du kannst einfach an einer zentralen Stelle (nämlich am Raspberry) den Intervall der Abfragen bestimmen auch wenn mal mehrere Sensor-Arduinos hinzukommen hast du trotzdem noch zentral die volle Kontrolle wer wann was Antworten soll.
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Tommy56

Welche Frequenz ist für die Lese-/Schreibvorgänge sinnvoll, so dass ich ohne große Kniffe die Datenbank nicht überlaste?
Sollte der Arduino_2 jeweils einen Sensor lesen und das Ergebnis seriell an die Datenbank schicken, oder erst einen Durchlauf durch alle Sensoren machen und die Ergebnisse dann in einem Zug schreiben? Ist es einfacher, die Arduinos in die Datenbank schreiben zu lassen oder den RasPi sich die Daten holen zu lassen?
Die hHäufigkeit richtet sich nach der realen Änderung der Werte, z.B. bei einer Raumtemperatur ist 1 min ausreichend, bei einer Wassertemperatur in einem großen Volumen genügen auch 15 min.

Die Belastung der DB ist am geringsten, wenn Du die Werte aller Sensoren eines Arduino zu einem Insert-Statement bündelst.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Hayley_Hay

Hallo mal wieder!

Da ich leider immer noch auf die Bestellungen warten muss, hier mal eine in der Zwischenzeit aufgetauchte Frage:

Ich möchte die Steuerung ungefähr folgendermaßen realisieren:
Phase 1 (Pumpen von Behälter A nach B): Magnetventil 1 auf - Magnetventil 2 zu - Verdichter an - Wartezeit lang - Verdichter aus - Wartezeit kurz
Phase 2 (von B nach A): entsprechend umgekehrt
Belüftungsphase: Beide Ventile zu - Verdichter an - Wartezeit - Verdichter aus

Da ich den Durchfluss nicht als Referenz messen kann benötige ich ja in der Auswertung den eindeutigen Zustand der Steuerung in jedem Moment. Dafür müsste es doch reichen, jeden Beginn einer neuen Phase mit timestamp in die Datenbank zu schreiben, oder?
Außerdem möchte ich die Restzeit der aktuellen Phase gerne auf ein Display geben, das würde dann mittels eines am Anfang der Phase gestarteten Countdowns funktionieren, weil die Phasen immer die einmal festgelegte Dauer haben, richtig?
Und zuletzt möchte ich die wichtigen Funktionen gerne auch manuell auslösen können, was aber auch protokolliert werden muss. Das wäre dann wahrscheinlich nur per Interrupt möglich?

Vielen Dank schon einmal!

postmaster-ino

Hi

Was denkst Du, wird dort dann der Interrupt machen sollen?
Ernst gemeinte Frage!!

Dem Arduino ist es vollkommen wurscht, ob die 'Phase' durch einen Tastendruck, oder Ablauf einer zuvor eingestellten Zeit gestartet wird.

MALE Dir doch einfach ein Ablauf-Diagramm, Wo Du angibst, von welchem Zustand Du zu Welchem wechseln kannst und unter welchen Umständen dort hin gewechselt wird.

Und bitte bringe mir bei, was Du laufend mit den Interrupts vor hast - oder verinnerliche, was Die eigentlich in den Tiefen des µC machen sollen.

MfG

PS: Wofür wird der Verdichter gestartet beim Belüften?
PPS: Wenn Du eh gerade einen Stift in der Hand hast - ein Bild, wie das Ganze zusammen aussehen könnte, schadet hier ganz bestimmt auch nicht!!

MfG²
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Hayley_Hay

Hey!

Was denkst Du, wird dort dann der Interrupt machen sollen?
Also wenn ich zehn Minuten lang in eine Richtung pumpe und während dessen z.B. pausieren, belüften oder in die andere Richtung pumpen lassen möchte, dann muss ich - wenn ich es nicht unter Umgehung der Elektronik sozusagen hard-wired erledigen möchte (wobei ich dann nicht wüsste, wie ich diese Unterbrechung aufzeichnen sollte) - das doch als Unterbrechung der laufenden Funktion machen. Aber vielleicht habe ich da auch etwas falsch verstanden.

Quote
MALE Dir doch einfach ein Ablauf-Diagramm, Wo Du angibst, von welchem Zustand Du zu Welchem wechseln kannst und unter welchen Umständen dort hin gewechselt wird.
Das ist eine sehr gute Idee, die ich zeitnah umsetzen werde!

Quote
PS: Wofür wird der Verdichter gestartet beim Belüften?
Der Verdichter IST sozusagen die Belüftung, bzw. in Kombination mit einem Belüftungsmodul auf dem Boden des Tanks. Wenn beide Ventile zu sind kann die Luft nur noch durch das Modul. Wenn eines geöffnet ist ist der Widerstand des Moduls zu groß als das dadurch belüftet würde.

Quote
PPS: Wenn Du eh gerade einen Stift in der Hand hast - ein Bild, wie das Ganze zusammen aussehen könnte, schadet hier ganz bestimmt auch nicht!!
Stimmt. Ungefähr so:

Theseus

Also wenn ich zehn Minuten lang in eine Richtung pumpe und während dessen z.B. pausieren, belüften oder in die andere Richtung pumpen lassen möchte, dann muss ich - wenn ich es nicht unter Umgehung der Elektronik sozusagen hard-wired erledigen möchte (wobei ich dann nicht wüsste, wie ich diese Unterbrechung aufzeichnen sollte) - das doch als Unterbrechung der laufenden Funktion machen. Aber vielleicht habe ich da auch etwas falsch verstanden.
Beschäftige dich bitte mit Zustands-Maschine und Ablaufsteuerungen mit millis(). Du nimmst eine Zustandsvariable, die bei jedem Schritt weitergezählt wird. Dann baust deine loop, wo du mit Hilfe von millis() und deiner Zustandsvariable deinen Ablauf mit Hilfe von If-Abfragen ablaufen lässt. Deine loop() sollte mindestens einige Zig-mal in der Sekunde durchlaufen werden. Dann ist auch gar kein Problem auf Tastendrücke zu reagieren und diese zu Protokollieren. Das geht alles super ohne Interrupt.

GuntherB - BlinkwithoutDelay - Die Nachtwächtererklärung
http://forum.arduino.cc/index.php?topic=423688.0
Ich erkläre millis()
http://forum.arduino.cc/index.php?topic=400102.msg2752141#msg2752141




Rentner

Hallo,

tut mir leid , mit Deinem Schema kann ich nicht viel anfangen,

was ist das blaue Ding ? Ausgleichsleitung ?

wo ist der Verdichter
wo ist die Saugseite der Pumpe angeschlossen. 
warum ist die Druckseite der Pumpe unten nur an nur einem Behälter angeschlossen, warum unten ?.
was schalten die beiden Ventile.

Ich denke Du bist kurz vor Ende Deines Studium , da solltest Du im Stande sein  ein Schema zu zeichnen in dem zwei Behälter eine Pumpe, einige Ventile und ein Verdichter enthalten sind. Zudem sollte man erkennen können das man damit aus einem Beghälter in den anderen und umgekehrt Pumpen kann, und wo wie ein Verdichter in dem System enthalten ist. Und das Ganze mit  normgerechten Symbolen. Zudem solltest Du im Stande sein eine Aufgabenstellung Gedanklich durchzugehen und daraus eine Lösung zu realisieren, das ist schliesslich Deine Aufgabe , das Projekt ist nur das nötige Beiwerk.

Das was Du messtechnisch und steuerungstechnisch so vorhast ist für einen Anfänger eh schon viel, fang einfach mal an wenn Du den Arduino hast. Die Ventile und Pumpen,Verdichter kannst Du erst mal mittels LED simulieren. Die Bedienelemente Taster usw. gibts als mini Taster für wenige Cent. alles baust Du auf ein Steckbrett auf und kannst es so simulieren. Und dann gaaanz langsam Schritt für Schritt und nich alles auf einmal.

Mir ist auch noch nicht klar warum Du zwei UP einsetzen willst , das schafft zusätzliche Schnittstellen mit denen Du dich beschäftigen must. Aber es ist Dein Projekt. 

Gruß Heinz


Hayley_Hay

Nach längerer Auszeit wegen Krankheit, Urlaub und Warten auf Bauteile melde ich mich jetzt endlich wieder. Inzwischen bin ich was den Aufbau betrifft schon deutlich weiter, hier ein Mal ein paar Bilder. Zuerst eine Übersicht mit beiden Behältern, den Pumpen und der Steuer- und Auswerteelektronik. Dann einige der Sensoren, und noch ein Einblick in den Steuerkasten mit Arduino1.

edit: Außerdem habe ich inzwischen zumindest die vom Arduino2 erfassten Daten seriell zum RasPi und dort in eine SQlite3 DB geschrieben bekommen (mittels dieser Anleitung: http://combustory.com/wiki/index.php/Arduino_Communications_-_SQLite).
Probleme habe ich immer noch mit der komplexen Version der Steuerung (s.o.). Ich habe zwar je ein Programm zum manuellen Pumpen/Belüften mittels dreier Schalter und eines zum kontinuierlichen Hin- und Herpumpen für jeweils 5 Minuten, aber die Verbindung der beiden Programme schaffe ich leider noch nicht, später mehr dazu.

postmaster-ino




Der Upload-Script bietet zwar auch ein Thumbnail, Das wird aber genau so groß angezeigt und mit deutlich weniger Inhalt wird das Bild verwaschen.
*Edit*
Im IMG-Tag werden width und height mit angegeben - liegt daran, daß der 'Daumennagel' dann verwaschen rüber kommt.
*/Edit*
Also die hier gezeigten Bilder sind bereits 'in volle Kanne schön'!
Wenn man die Adresse der Bilder kopiert und die Nummer um 1 erhöht, hat man den 'Daumennagel':
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Go Up