Guten Tag zusammen, ich bin dualer Student des Wirtschaftsingenieurwesens und bereite mich auf mein Projekt in Mechatronik vor. Bevor es zur Projektbeschreibung und den Einzelheiten geht, muss ich erwähnen, dass dieses Projekt zwar definitiv umgesetzt wird, aber in diesem Semester lediglich die Recherche und die Projektplanung durchgeführt, sowie die Machbarkeit ermittelt werden soll. Insofern geht es mir hier vorerst nicht um die genaue Umsetzung sondern erst einmal um die Planung und die generelle Machbarkeit, unabhängig von den dazu notwendigen Fähigkeiten. Dazu lässt sich sagen, dass ich im vorherigen Semester das Modul Elektrotechnik hatte, die praktische Umsetzung jedoch Neuland für mich ist und ich zwar dabei bin mich in die Materie einzuarbeiten, auch mit Hilfe dieses Forums, allerdings einige Begriffe und Abkürzungen noch etwas schwer zu verdauen sind. Projekt Kühlschrankwächter Grundidee Der Gedanke hinter dem Kühlschrankwächter entsteht aus der Aufbewahrung von Medikamenten bei einer bestimmten Temperatur. Als Beispiel ein Medikament, das konstant bei 10°C (+- 3°C) gehalten werden muss. Ich habe die Aufgabe ein Gerät zu entwickeln, welches ein optisches, akustisches und digitales Warnsignal (Mail/SMS) abgibt, bei einer Unter- oder Überschreitung des kritischen Temperaturwertes. Zusätzlich sollte das Gerät per Akku/Batterie betrieben werden, mit möglichst langer Haltezeit und einer Warnung, sollte die Stromversorgung langsam zur Neige gehen. Optional soll ich mir zusätzliche Features überlegen, die ich je nach erfülltem Workload noch umsetzen kann und natürlich positiv in die Benotung einfließen. Zusätzliche Features, bzw. meine Interpretation des Gerätes: Ein Gerät mit Magnetfüßen wird an der Kühlschranktür befestigt und ein oder mehrere Temperatursensoren werden per Kabel in den Kühlschrank geführt (durch die Gummidichtung). Die zu haltende Temperatur wird per Display angezeigt. Per Poti o.ä. kann die zu haltende Temperatur verändert werden, allerdings ohne die +- 3°C o.ä. zu ändern. Die Temperatur wird im Sekundentakt o.ä. gemessen und überprüft. Bei kritischen Temperaturen wird ein akustisches Signal, wie bei einem Feuermelder ausgelöst und eine LED oder eine Warnleuchte fängt an zu blinken. Zusätzlich wird eine E-Mail an den Empfänger gesendet. Bevor der Alarm ausgelöst wird, läuft ein Timer ab, damit nicht bei jeder Öffnung des Medikamentenkühlschrankes der Alarm ausgelöst wird (möglw. 30 sek. o.ä.). Gut wäre wenn man per Internetabfrage noch die aktuelle Temperatur abfragen kann, es wäre ja möglich, dass es sich um einen kurzfristigen Temperaturabfall handelt. Ein zusätzliches Warnsignal müsste erscheinen, wenn der Akku oder die Batterie bald keinen Strom mehr zur Verfügung stellen kann. Genial wäre, wenn der Ladezustand zusätzlich auf dem Display zu sehen wäre. Daraus resultierende Anforderungen - möglichst energiesparend - W-LAN fähig - möglichst genaue Temperaturmessung - regelmäßige Temperaturmessung - Einhaltung des Budgets von 50€ (für Hauptbestandteile) Mögliche Hauptkomponenten nach eigener Recherche Temperatursensor - DS18B20 (digitales Signal, günstig, 1-wire, mit 12bit sehr genau, bei Bedarf erweiterbar auf mehrere Sensoren mit IP-Bezug ohne großen Aufwand) Microcontroller mit W-LAN-Modul - ESP8266 geflasht (aufwendig (flashen etc.), stromsparend, günstig, fähig??) - Arduino Nano mit ESP8266 als W-LAN-Modul (teuer, mehr Strom, USB-Port inklusive, fähiger??, einfacher zu programmieren??) Display - OLED 128x64 Display (einiges darstellbar (Temp. und Akkustand)) - Einfacheres Display? Akku oder Batterie - 9V Blockbatterie o.ä. käuflich gut erwerbbare Akku’s/Batterien (günstig, schnell zu besorgen, Spannung muss umgewandelt werden) - 5V LiPo (teurer, nicht so gut zu besorgen, ideale Spannung) Volt Regulator - AMS1117 Regulator 5V auf 3,3V (für ESP8266) Zusätzlich benötigte Bauteile - Widerstände, Kabel, Layout etc. je nach Bedarf Soweit erst einmal zu der bisherigen Idee. Es wäre jetzt sehr gut zu wissen, ob ich da schon auf der ansatzweise richtigen Spur bin oder ob ich gravierende Fehler in der Idee habe. Deshalb würde ich es erstmal gerne auf den Grundaufbau mit MicroController, Temperatursensor und Stromversorgung beschränken und besprechen. Stück für Stück kann man dann die zusätzlichen Teile wie das Display etc. und die technische Umsetzung der Ideen besprechen. In vorderster Linie natürlich, ob die Sachen wie das versenden einer Mail oder das Einstellen per Poti mit so einer Konfiguration o.ä. überhaupt vorstellbar bzw. möglich ist. Dass dieses Projekt gerade für den Anfang wahrscheinlich sehr schwer zu verdauen ist, kann ich mir gut vorstellen, allerdings muss es irgendwann, in welcher Form auch immer, umgesetzt werden und ich hoffe ihr habt Lust mich ein wenig zu unterstützen.
Hauke B. schrieb: > Zusätzlich sollte das Gerät per Akku/Batterie betrieben werden, Schon mal drüber nachgedacht, daß am Aufstellungsort von Kühlschränken mit sehr hoher Wahrscheinlichkeit davon ausgegangen werden kann, daß Steckdosen mit Netzspannung vorhanden sind? Der Kühlschrank selbst wird ja schließlich auch irgendwie betrieben. Verwendet man als Kabel einen Folienleiter, lässt dieser sich auch problemlos durch die Türdichtung führen, so daß auch die Dichtung kein Argument für aufwendige Akku- oder Batteriestromversorgung ist. Obendrein können dann --bis auf den Innenraumtemperaturfühler-- alle Teile der Schaltung außerhalb des Kühlschranks untergebracht werden, was insbesondere dem WLAN-Modul gut tun dürfte (Kühlschrankgehäuse bestehen oft aus Metall und haben daher abschirmende Eigenschaften). Wenn man die Medikamente innerhalb des Kühlschrankes in einer isolierten Verpackung mit ausreichender Wärmekapazität unterbringt, stellt auch nicht jedes Türöffnen sofort ein Problem dar.
DS18b20 sollte genau genug sein. Hab mal 10 Stk. durch nen Kalibrator geschickt, hatte weniger Abweichung als im Datenblatt angegeben. Die Programmierung von nem Arduino oder nem ESP kann die selbe sein. Für deinen Fall auf jeden! Nimm den ESP. Muss ein Display wirklich sein? Ein ESP kann einen WLAN AP aufmachen, da kann sich jedes Handy einwählen und auf einer Webseite Daten einsehen und Konfigurationen vornehmen. Als Stromversorgung sind Lithium-Ionen-Akkus evtl. nicht glücklich, da die Kapazität mit der Temperatur sinkt. Habe ich aber zu wenig Ahnung von... Wenn du den 1117 nimmst, kannst du gleich ein NodeMCU nehmen. Effizient sind die (glaube ich) nicht wirklich. Die Hardware geht schon klar, deine große Aufgabe wird die Software sein. Dein Vorhaben ist aber gut zu stemmen, auch für einen blutigen Anfänger. Und hey, es gibt CredidPoints ;-) Mein Vorschlag, kaufe eine NodeMCU (die hat nen USB Anschluss), einen DS18b20 und einen 4,7kOhm Widerstand. Lade dir die ArduinoIDE runter und suche nach Beispeilskripten. Viel Spaß, ist auf jeden Fall interessanter, als für Klausuren zu lernen.
Hauke B. schrieb: > - ESP8266 geflasht (aufwendig (flashen etc.), stromsparend, günstig, > fähig??) Es gibt im esp8266-Forum eine ausführliche Anleitung, wie man unter Windows (wenn das dein favorisiertes OS ist) Eclipse zusammen mit dem SDK von Espressif zum laufen bekommt. Damit kannst du den Controller (in Verbindung mit einem USB / UART Konverter) in C programmieren und die von dir gewünschten Sachen sind nicht allzu schwer umzusetzen. Alternativ auch in Lua oder mit der Arduino IDE. Der ESP8266 hat einen ADC-Pin, mit dem du die Spannung des Akkus überwachen könntest, der digitale Temperatursensor kann mit entsprechenden Protokollen angesprochen werden. I2C ist z.B. möglich. SPI ist, soweit ich richtig informiert bin, schon vom externen Flash belegt. SPI lässt sich aber in Software relativ 'einfach' umsetzen. Dann liest du mit einem Timer in bestimmen Zeitabständen den Temperatursensor aus und überträgst die Temperatur an eine Website via HTTP. Diese wiederum kann z.B. via Ajax eine PHP Funktion auf dem Webserver aufrufen, der eine E-Mail sendet, wenn die Temperatur nicht mehr im gewünschten Bereich liegt. Als weiteres Feature könnte ich mir eine Art 'Datalogging' vorstellen. Die PHP Funktion kann die Werte in einer Datenbank ablegen, diese stellt die Website wiederum in einem schicken Diagramm dar. Eine Website muss nichts kosten, es gibt Anbieter, die liefern einen kostenlosen Webspace mit (veraltetem) PHP & MySQL. Wenn du Strom sparen musst: Der ESP8266 hat auch einen Sleep Modus. Ein stromsparender Spannungswandler wäre z.B. der HT7333, der hat auch eine geringere Dropout Voltage als der AMS1117.
:
Bearbeitet durch User
Du scheinst Dir ja schon Gedanken gemacht zu haben. Das ist gut! Was die 50 Euro Budgetgrenze sollen, weiß ich aber nicht, das finde ich doch sehr einschränkend. Ohne nun zuviel Kritik an der Sache üben zu wollen, aber der Clou heutiger Miniaturisierung ist doch, dass man dan ganzen Kram mit Displayeinheit uswusf. gar nicht mehr braucht. Da könnte man sicher deutlich coolere Features einbauen, wenn man etwas um die Ecke denkt. Falls Du Inspiration suchst, frag nach. Dein größtes Problem wird die Sache mit der Energie. Du solltest also darauf achten, möglichst energiesparende Komponenten zu verwenden. Hierfür wäre erstmal eines wichtig: Die Temperaturüberprüfung deutlich seltener laufen lassen. Finde heraus, gegebenenfalls durch Messungen, wie lange so ein Medikament überhaupt braucht, um sich so stark aufzuwärmen, dass die Lagertemperatur überschritten wird. Das sind hoffentlich nicht die 3 K, die du als Grenzwert angegeben hast, sondern etwas mehr. Sobald du das weißt, kannst du dein Messintervall entsprechend anpassen. Ich gehe nicht davon aus, dass du häufiger als alle 10-30 Sekunden messen musst. Zwischen den Messungen schickst du dein Gerät in den Schlaf, dann braucht es kaum Energie. Die Funkverbindung wird erst dann angeschaltet, wenn sie wirklich benötigt wird, also zum Alarm bzw. für periodische "ich lebe noch"-Nachrichten. Gegebenenfalls wird verlangt, die Temperatur aus Gründen der Nachvollziehbarkeit mitzuloggen, die letzten Logdaten kannst du dann in dieser Nachricht versenden. WLAN braucht UNGLAUBLICH viel Strom. Vergiss also alles, das dein Gerät die ganze Zeit im Netz lässt. Die Sache mit dem Display ist halt auch so eine Sache. Die brauchen auch Strom, den Du nicht hast. Deine ganze Projektidee ist meines Erachtens nach etwas zu konservativ, du hängst noch zu sehr an der riesigen an der Türe montierten Einheit. Ein Problem dabei ist auch, das System gegen Fehlbedienung der Benutzer zu sichern--ein Kühlschrank hat verschiedene Temperaturzonen. Wenn Sensor und Medikament nicht in der selben Zone liegen, bringt die Überwachung nicht so viel. Die Komponentenauswahl ist durchaus okay, gegebenenfalls reicht aber auch ein entsprechend spezifizierter Thermistor zur Messung. Dafür brauchst du den ADC, das sollte aber passen.
Hab vor Jahren einen Kühlschrankwächter gebaut, da meine Schildkröten damals im Kühler überwintert wurden. Daher ein paar Praxisdinge: Das Temperaturgefälle im Kühler ist nicht zu unterschätzten, da unten meist Wärmer wegen Motor. Bei mir waren‘s ca. 4 Grad Gefälle. Daher ehr mehr Sensoren nehmen. Zusätzlich volle Wasserflaschen im Kühler unterbringen oder PC-Lüfter hat etwas Abhilfe geschaffen. Hatte damals ein paar DS???? im 8pol DIL-Gehäuse im Schrumpfschlauch untergebracht. Im Kühler standen Kisten mit Erde in welchem die Sensoren eingebuddelt waren. Temperatur schwankte bei mir um ca. 1 Grad. Mein Wächter war eigentlich eine 2. Steuerung für den Kühler…. Kühler wurde auf ca. 2 Grad gestellt und der Wächter schaltete einfach den Kühler ab, wenn 5 Grad unterschritten wurden und wieder ein bei 6 Grad. Kabel für Sensor wurde einfach durch die Tür gelegt… Der Kühlergummi hat genug gedichtet. Jede Sekunde die Temperatur zu messen halte ich für Überflüssig, da feste Stoffe die im Kühler untergebracht sind doch was träger sind beim erwärmen/abkühlen ebenso der Sensor.
Hallo zusammen, ersteinmal schonmal vielen Dank an Alle, die fleißig geantwortet haben, ihr bringt echt super Ideen und Lösungen mit und viele Aspekte, an die ich so nicht gedacht habe, aber mit denen ich noch zu kämpfen gehabt hätte. @Rufus T. Firefly Mit der Stromversorgung übers Netz ist eigentlich eine sehr gute Sache, da der Kühlschrank ja auch übers Netz versorgt werden sollte. Einziges Problem ist die Möglichkeit des Stromausfalls, da müsste dann ein Akku o.ä. einspringen und noch ein Signal absetzen. Allerdings ist bei einem Stromausfall auch nicht mehr viel mit Internet, was die Sache dann natürlich nicht leichter macht. Aber generell wäre es machbar das Gerät per Netz zu versorgen und einen Akku als Reserve vorzusehen? Ich werde versuchen meinen Prof. von dem Netzbetrieb zu überzeugen. - Vielleicht habe ich mich ein wenig unpräzise ausgedrückt, aber der Plan sah vor, das Gerät von draußen an der Kühlschranktür zu befestigen mit Magneten o.ä. und dann den Temperatursensor durch die Dichtung in den Kühlschrank zu führen. Laut Thomas G. sollte es ja mit normaler Verkabelung klappen, falls nicht ist ein Folienleiter eine interessante Alternative. @Kolja Damit steht der DS18B20 also schonmal fest! ;) Auf einem ESP mit ArduinoIDE zu programmieren klingt schonmal sehr gut, da dieses ja weit verbreitet zu sein scheint und vieles im Web zu finden ist. Das Display ist halt so eine Sache, ja es ist irgendwie Spielkram, aber auf der anderen Seite wäre es halt in Verbinung mit einem Poti zum Steuern eine gute Lösung, um "normalen Mitarbeitern" vor Ort die Handhabung zu vereinfachen, sodass nicht für jede Einstellung ein PC-Anschluss oder Zugriff übers Netz notwendig ist. Also im Kühlschrank wäre der Akku oder die Batterie ja nicht, also wäre das Problem mit der Kapazitätsänderung ja nicht da. Dein Vorschlag mit der NodeMCU klingt echt gut, das Teil würde es definitiv einfacher und günstiger machen. Ich werde mir, wie von dir empfohlen, im Vorfeld schonmal eine NodeMCU, den DS18B20 und einen 4,7kOhm Widerstand zulegen und ein wenig Erfahrung sammeln. @_Gast Haha, man gut es ist ein irrealer Kunde und den Rest der Beteiligten beläuft sich auf meine Person.. ;) @Max MMM Ich werde es wohl erstmal mit der ArduinoIDE versuchen, wegen der oben genannten Gründe. Das mit der Akkuladestand-Überprüfung per ADC-Pin werde ich im Auge behalten, sofern es möglich ist den Akku inkl. Netzversorgung zu betreiben bzw. es auf eine reine Akkuversorgung hinauslaufen sollte. Der Weg mit dem HTTP ins Web und per Ajax eine Mail-Steuerung klingt bestens, das ist genau das was ich brauche. Die Option mit dem Datalogging finde ich richtig gut, das werde ich, sofern ich die Zeit habe als zusätzliches Feature definitiv versuchen umzusetzen. Den Sleep-Modus müsste ich verwenden, sollte ich eine reine Akkuversion machen, dafür gut zu wissen, für den Netzbetrieb aber nicht zwingend nötig. @someone Die 50€ wurden leider vom Prof. gesetzt und geben unser Budget an, wir können natürlich alles verwenden was wir durch unsere Unternehmen oder durch Sponsoring in die Finger bekommen. Kleinere Bauteile wie einige Widerstände, Verkabelung, Layouts etc. werden aber auch von der Uni teilweise gestellt. Es muss also nur für die groben Hauptbestandteile reichen. Ziel ist natürlich auch mit dem Budget hinzukommen, eine Kernaufgabe angehender Wirtschaftsingenieure. Also generell ist es ja kein Gerät was eine Tatsächliche Verwendung finden soll, deswegen sind Sachen wie die Temperatur und die Differenz nach oben und unten "quasi" frei bestimmbar, sollten aber natürlich schon ansatzweise realistisch sein. Insofern ist auch die Temperaturempfindlichkeit von Medikamenten, die ja eh enorm unterschiedlich ist, nicht der ausschlaggebenste Faktor. Zur Umsetzung tendiere ich dank eurer wunderbaren Beiträge mitlerweile zwischen zwei Varianten, einer kleinen schlanken per Akku betriebenen Version ohne viel Schnickschnack, die sehr effizient nur das sendet, was es soll. Auf der anderen Seite der wie von dir beschriebene konservative fette Kasten mit allem Möglichen an Spielkram, wie Display etc.. Weiteres werde ich aber in Kürze mit meinem Prof besprechen. Für erstere Variante wäre die Energiesparbauteile natürlich gut. Genauso die Anpassung der Messungshäufigkeit. Es ist ja so oder so totaler Quatsch jede Sekunde eine Messung vorzunehmen, alle 20-30 sek reicht theoretisch völlig. Evtl. sogar noch größere Intervalle, ja nach Empfindlichkeit des 'theoretischen Medikamentes'.. ;) Sich zusätzlich mit den Zonen zu beschäftigen ist wahrscheinlich keine so schlechte Idee, da finde ich die Praxis-Tipps von Thomas G. sehr hilfreich. @Thomas G. Wie gerade schon genannt ist deine Praxiserfahrung sehr hilfreich, dass das Gefälle mit bedacht werden muss und deine einfache Umsetzung mit dem trägen Wärmeverlust mancher Stoffe ist sehr gut. Theoretisch ja sowohl für den Sensor als auch für die Medikamente umsetzbar, das würde auch nicht nur bei der Messung die Öffnung des Kühlschrankes egalisieren. Also nochmals Vielen Dank an Alle, das war schon äußerst hilfreich!!! Ich werde jetzt erstmal mit meinem Prof. die weitere Vorgehensweise besprechen, sprich reiner Akkubetrieb und eher downsizing oder Netz+Akku und 'konservativer Klotz'. Zusätzlich werde ich mir schonal den Tipp von Kolja zu Herzen nehmen und mit den oben genannten Bauteilen schonmal fleißig programmieren üben! :) Wenn es weitere Ideen, Tipps, Kritik oder Meinungen gibt, lasst es raus, ich bin für jeden Beitrag der meinen Horizont erweitert, verfestigt oder auch vernebelt dankbar, um tiefer in das Projekt einzusteigen. Wahnsinnig gut wäre eine Meinung, wie am besten der Netzbetrieb +Reserveakku für Stromausfälle o.ä. umzusetzen wäre. Vielen Dank und freundliche Grüße, Hauke
Ich weiß ja nicht, wie es heute ist....aber zu meiner Zeit haben wir uns nicht vom "Internet" helfen lassen, sondern diese Arbeiten als Gruppenarbeit SELBSTSTÄNDIG bearbeitet und das Resultat war dann reine EIGENLEISTUNG...ist das heute nicht mehr gewünscht? Btw: "zu meiner Zeit" war vor 6 Jahren....ist also noch kein Generationenwandel...
zu meiner zeit schrieb: > aber zu meiner Zeit haben wir uns > nicht vom "Internet" helfen lassen, Habt ihr zu eurer Zeit keine Bücher gelesen, ich mein, da stehen ja auch Informationen drinnen? Irgendwoher muss man die Infos doch bekommen.
Bücher über Projektmanagement und Elektronik zu lesen ist das eine. Seine Ideen mit hunderten Forenusern im Internet zu diskutieren etwas anderes. Anstatt, dass ihr in eurer Projektgruppe besprecht, wie Sinnvoll oder dämlich bestimmte Ideen sind, besprecht ihr das mit "vielen, vielen Leuten" Das ist dann keine Eigenleistung mehr
>>Irgendwoher muss man die Infos doch bekommen.
JA, SELBST ERARBEITEN.
Seid ihr von Copy&Paste schon so verwöhnt, dass ihr das nicht mehr auf
die Reihe bekommt?
Hauke B. schrieb: > Wenn es weitere Ideen, Tipps, Kritik oder > Meinungen gibt, lasst es raus, ich bin für jeden Beitrag der meinen > Horizont erweitert, verfestigt oder auch vernebelt dankbar, um tiefer in > das Projekt einzusteigen. Hast du dir schon überlegt, ob du eine Platine designen & fertigen lassen willst? Benutzt du den reinen ESP8266 oder eine Trägerplatine wie das NodeMCU?
zu meiner zeit schrieb: > Ich weiß ja nicht, wie es heute ist....aber zu meiner Zeit haben wir uns > nicht vom "Internet" helfen lassen, sondern diese Arbeiten als > Gruppenarbeit SELBSTSTÄNDIG bearbeitet und das Resultat war dann reine > EIGENLEISTUNG...ist das heute nicht mehr gewünscht? > > Btw: "zu meiner Zeit" war vor 6 Jahren....ist also noch kein > Generationenwandel... Die Idee hinter der Sache ist eine ganz Spezielle. Wir sollen mit einer groben Elektrotechnikausbildung (1 Modul: Elektrotechnik) in der man natürlich in die Materie eingeführt wird, aber nicht mal im Ansatz so tief wie hierfür notwenidig, ein Projekt "alleine" bearbeiten. Die Aufgabe ist, dass wir ein Semester erstmal recherchieren, die Produktidee entwickeln, die technische Umsetzung theoretisch oder teilweise experimentell umsetzen und uns in die Materie einarbeiten. Dazu ist es ausdrücklich erwünscht uns Hilfe, Ideen und Tipps bei Experten zu holen oder bei Leuten die etwas von der Materie verstehen. Viele meiner Komilitonen haben in ihren Firmen eine eigene Elektronik- oder IT-Abteilung die i.d.R. sehr hilfsbereit sind, mein Unternehmen beschäftigt sich ausschließlich mit dem Metallbau und hat nichtmal ein bisschen mit diesem Themenbereich zu tun. Daher hab ich erstmal versucht durch die Recherche einen Ansatzpunkt zu finden und will die Idee mit eurer Hilfe und der von Bekannten, sowie der des Professors entwickeln und umsetzen. Wir werden Wirtschaftsingenieure, d.h. wir haben nur bedingt später im Beruf mit solchen Sachen kontakt, daher steht die Projektarbeit an sich, wie Zeitrahmen, Budget, Zeitplanung, Recherche, technische Planung, evtl. weitere Finanzierung und die Präsentation eher im Fokus als die eigentliche Umsetzung. Wichtig ist vor allem wie man sich verhält, mit einer herausfordernden Aufgabe, von deren Materie man nicht wirkich eine Ahnung hat. Dazu ist also zwingend notwendig in kurzer Zeit möglichst breit gefächerte und gute Optionen zu haben, aus denen man sich heraussucht, was man seiner Ansicht nach am ehesten benötigt. - Natürlich soll ich kein fertiges Produkt kaufen, es nur nach einer Anleitung zusammenbauen oder es von Anderen fertigen lassen. Aber die Ideenfindung und theoretische Umsetzung mit Leuten, die was von der Materie verstehen, zu besprechen und sich helfen zu lassen ist erstens auf jeden Fall legitim und zweitens meiner Ansicht nach auch sehr fruchtbar. Und wie gesagt, ich werde Wirtschaftsingenieur und kein Elektroingenieur o.ä.! Mit freundlichen Grüßen, Hauke Nachtrag: Es wird auch ein Projekt geben in der mehrere Leute sich ein größeres Projekt vornehmen und bearbeiten, aber auch da ist eine vernünftige Ausarbeitung mit fremder Hilfe gern gesehen. In diesem Projekt arbeite ich alleine und kann mir selbstverständlich Hilfe suchen, wo ich möchte. Der Bau und die Programmierung wird von mir ausgeführt. Bei der Umsetzung kann man sich natürlich auch helfen lassen, solange man keine Fertiglösung nimmt oder nur Copy and Paste benutzt.
:
Bearbeitet durch User
Max M. schrieb: > Hast du dir schon überlegt, ob du eine Platine designen & fertigen > lassen willst? Benutzt du den reinen ESP8266 oder eine Trägerplatine wie > das NodeMCU? NodeMCU ist der momentane Plan. Platine designen und fertigen zu lassen ist mal abgesehen von den zusätzlichen Kosten eher keine Option, da das Projekt ja nur funktionieren soll. Es muss keine bestimmte Größe haben, es hat keine Vorgabe für die Optik oder die technische Eleganz. Ich muss es halt umsetzen können, das ist das primäre Ziel. Je nachdem wie groß es ist, kann ich es dann noch schick verpacken, aber wie es dann drinnen aussieht ist nicht relevant. Vielen Dank und mit freundlichen Grüßen, Hauke
Auch wenn es dich vielleicht jetzt ein wenig stört, dass ich wieder so herumnörgle: Du vergisst etwas Wesentliches. Gerade, weil du vielleicht im Laufe deines Studiums nicht so zu dieser Einsicht kommen wirst, weil ihr nie in eine Situation gebracht werdet, in der das klar wird, will ich dir einen Tip geben. Zur Entwicklung gehört erstmal extrem viel Planung. Einen Teil dieser Planung beherrschst du, ein anderer ist aber noch viel wichtiger (jaja, sorry!): Die Anforderungsanalyse. Ohne Anforderungsanalyse kein Projekt, das was wird. Anforderungsanalysen sind teuer und aufwändig, weshalb du natürlich aktuell auch keine Lust darauf hast. Das ist verständlich, aber beachte es in Zukunft, wenn es mal wieder nicht schnell genug geht. Wie kommst du nun zu deiner Anforderungsanalyse? Wenngleich es sich um ein hypothetisches Projekt handelt, rate ich dir, zumindest eine oberflächliche Anforderungsanalyse durchzuführen. Dazu musst du erstmal wissen, was die Konzepte aus der Anwendungsdomäne sind. Hier geht es um Medikamente, die gekühlt werden müssen. Also gehst du in die nächstbeste Apotheke, erklärst dein Projekt und fragst die Leute dort, welche Medikamente denn gekühlt werden müssen, wie warm und wie kalt die werden dürfen, wie groß die Packungen sind, ob es Flüssigkeiten, Tabletten oder sonstwas ist, gegen was die eingesetzt werden und welche Leute üblicherweise damit zu tun haben (Endanwender, medizinisch geschultes Personal, Ärzte), etc. Schreib das alles auf, ist auch für die Projektdokumentation wichtig. Mit diesen Informationen kannst du dann einige Parameter deines Systems ermitteln, auch was absolute Temperaturgenauigkeit (ist ja immer vom Sensor abhängig!) anbelangt. Das beeindruckt auch deinen Professor, weil es eine strukturierte, ingenieurhafte Herangehensweise an das Problem zeigt. Du wirst sicher auch feststellen, dass es einige Medikamente gibt, die gekühlt werden müssen und die Endanwender selbst einnehmen dürfen. Hierbei stellt sich dann sofort die Frage nach der Bedienbarkeit des Systems. Insbesondere muss man sich die Frage stellen, ob die Zieltemperatur bzw. die Warnintervalle einfach so umgestellt werden sollen. Wenn ja, wie kann man das System gegen versehentliches Verstellen schützen? Wie kann man es gegen absichtliches Verstellen durch unbefugte Personen schützen? Die Alternative wäre eine feste Temperatur. Wie wird diese eingestellt? Ich will dir nur Anregungen geben und nicht schon alle Fragen beantworten, letztendlich ist es ja dein Projekt. Aber es ist wichtig, dass du dich zuerst mal mit den Medikamenten beschäftigst, bevor du hier Hardware spezifizierst und dir großartige Gedanken machst. Das Projekt ist ja nichtmal ein Prototyp, insofern spielt die Hardwareauswahl kaum eine Rolle--die Sache ist auf den ersten Blick "einfach" genug, damit man da mit relativ kostengünstiger Hardware zurechtkommt.
@someone Vielen Dank für deinen Rat mit einer vernünftigen und ordentlichen Anforderungsanalyse. Ich werde deinen Tipp auf jeden Fall beherzigen und Infos 'vor Ort' einholen, die mir helfen, meine Anforderungen und Parameter genauer zu bestimmen. Schließlich ist eine gute Dokumentation und Argumentation meiner Entscheidungen ein wesentlicher Bestandteil des Projektes. Parallel werde ich auch mit meinem Prof. nochmal genau über das Thema sprechen, inwieweit er sich das vorstellt, da die Projektidee von ihm kommt und ich daher natürlich auch seinen Vorstellungen ein wenig Platz geben möchte. Nichtsdestotrotz werde ich mir schonmal einen Teil der Hardware (NodeMCU, DS18B20 und 4,7kOhm Widerstand) zulegen, um einfach schonmal mit kleinen Programmen anzufangen. Dann kann man noch mit LED's, akkustischen Signalen etc. erweitern und weiter ausprobieren. Vor der Programmierung habe ich mit am meisten Respekt und will da lieber schnell eine gute Grundlage schaffen, sodass wenn ich in ca. 6-7 Monaten, wenn ich mit der Umsetzung beschäftigt bin, die wesentlichsten Sachen gut beherrsche. Zusätzlich muss ich natürlich in Erfahrung bringen ob die mir vorschwebenden Ideen technisch umsetzbar sind, sodass ich nicht am Ende merke, dass da was nicht funktionieren kann. Vielen Dank und mit freundlichen Grüßen, Hauke
> Projekt an der Uni - Kühlschrankwächter
Seit wann haben Studenten denn einen Kühlschrank?
du hier: http://www.pearl.de/a-NC3912-3043.shtml?query=k%C3%BChlschrank only 19,90! Web-cam vor das Display und ab mit den Daten ins WLAN
Sobald du mit der Programmierung anfängst, wirst du feststellen, dass es eher "zu einfach" geht. ;) NodeMCU ist für solche "Spielereien" wirklich gut geeignet, da die beliebten Funktionen gut nutzbar sind. In der tatsächlichen Anwendung würde man das natürlich anders machen, nicht zuletzt aus Gründen der Zuverlässigkeit und aus Kostengründen. Aber für einen Ideen-Demonstrator, wie du ihn baust, spielt das alles keine Rolle. Da ist das schon eine sehr gute Lösung.
Hauke B. schrieb: > *Daraus resultierende Anforderungen* > - möglichst energiesparend > - W-LAN fähig > - möglichst genaue Temperaturmessung > - regelmäßige Temperaturmessung > - Einhaltung des Budgets von 50€ (für Hauptbestandteile) WLAN und stromsparend passt nicht zusammen. Das kannst Du recht einfach selber überprüfen: Smartfon mit ausgeschaltetem Mobilfunk, aber aktivem WLAN in eine Ecke mit WLAN-Empfang packen und liegen lassen. Die Laufzeit wird sich eher in Tagen messen als in Wochen oder Monaten. Für eine Studie ok, für eine echte Produktentwicklung (und das ist ja wohl der Lernzweck) völlig daneben. Die üblichen Heimautomatisierungslösungen arbeiten entweder im 433/868 MHz ISM-Bereich oder mit einer 2.4 GHz Kurzsteckenfunklösung wie IEEE 802.15.4 oder darauf aufbauenden Standards wie Zigbee oder 6LoWpan etc. > *Temperatursensor* > - DS18B20 (digitales Signal, günstig, 1-wire, mit 12bit sehr genau, bei > Bedarf erweiterbar auf mehrere Sensoren mit IP-Bezug ohne großen > Aufwand) für ein Produkt im 50€-Bereich viel zu teuer. In der Industrie würdest Du dafür gevierteilt werden. Hier würde man eher einen Thermistor oder einen PTC/NTC einsetzen. Dieses Zeugs liegt im Centbereich. > *Microcontroller mit W-LAN-Modul* > - ESP8266 geflasht (aufwendig (flashen etc.), stromsparend, günstig, > fähig??) > - Arduino Nano mit ESP8266 als W-LAN-Modul (teuer, mehr Strom, USB-Port > inklusive, fähiger??, einfacher zu programmieren??) > *Display* Ein kleiner Tip: schau mal, was in diesen steuerbaren LED-Lampen von Philips oder Osram oder so drin ist. Was hier verbaut wird, ist günstig und in Massen zu haben. Wireless MCUs von TI werden sehr gerne genommen, und ab und an werden auch Atmel 128/256RF... Chips gefunden. Auf YouTube gibt es Teardowns von diesem Zeugs. Dabei kannst Du was lernen. https://www.youtube.com/watch?v=4L1ZqvQ2qVU https://www.youtube.com/watch?v=q-hLMCeCnj0 > - OLED 128x64 Display (einiges darstellbar (Temp. und Akkustand)) > - Einfacheres Display? Zu teuer und zu batteriefressend. In der Industrie werden sehr gerne segmentierte LCD_Gläser verwendet, wenn die Anforderungen es zulassen. Beispiel: http://www.ebay.de/itm/GLS-Neu-customized-LCD-88-88-icons-LCD-AV-CBS106B00-HKW-R-with-TP-heating-/391491642141 Das wurde wohl für einen Hersteller von Heizungen/Warmwassererzeuger/... gefertigt, und da sind jetzt wohl Restposten über. Im Einkauf in großen Stückzahlen kosten die nur einige 10 Cent, und vom Stromverbrauchsgesichtspunkt gibt es nichts sparsameres. Da fließen nur µA, wenn überhaupt. Ab 1000 Stück bekommst Du ein LCD-Glas kundenspezifisch nach Deinem Design. Außerdem haben OLEDs eine beschränkte Lebensdauer. Auch hier gilt: für ein Uni-Projekt ok, im echten Leben unbrauchbar. > *Akku oder Batterie* > - 9V Blockbatterie o.ä. käuflich gut erwerbbare Akku’s/Batterien > (günstig, schnell zu besorgen, Spannung muss umgewandelt werden) > - 5V LiPo (teurer, nicht so gut zu besorgen, ideale Spannung) > *Volt Regulator* Im echten Leben wird es auf 2-4 AAA-Zellen hinauslaufen. Das sollte Dir klar sein. Du willst keine 5V-Komponenten, weil die zu viel Leistung ziehen. Ein kleiner Schaltregler kostet nichts. Schau Dir mal das hier an: https://www.amazon.de/OSRAM-LIGHTIFY-Starter-Gateway-Remote-Schnittstelle/dp/B00JDJC4GM/ref=sr_1_6? Zwischen Lampe und Gateway wird wohl 802.15.4 eingesetzt werden, erst das Gateway macht daraus WLAN. Da das Gateway an/in der Steckdose sitzt, ist das auch ok so. Dieses Produkt liegt in etwa in dem gleichen Preisrahmen, der für Dein Projekt vorgegeben ist. Was Du Dir merken kannst: Bei einem Endverbraucherpreis von x € wird der Herstellungspreis maximal (x/3)€ sein. Bei diesem Osram-Zeug sind das 20€. Unter diesem Gesichtspunkt werden meine Kommentare zu Deiner Bauteileauswahl wohl eher verständlich. Zum Lernen: Kauf Dir einfach mal so ein Set zum Zerlegen und Aufsägen, und schau nach, was darin verbaut ist. Sei aber vorsichtig. Es könnte nämlich sein, dass das gesamte WLAN-Gateway auf Netzpotential liegt, weil man sich aus Kostengründen die galvanische Trennung gespart hat. Die ist ja auch nicht notwendig, solange die Einheit komplett isolierend gekapselt ist. fchk
Meine Meinung zum Thema Display ja/nein und der Meinung: "Display ist doch Oldschool, geh mit der Zeit nutze die App!" Völliger Schwachsinn! Als reine Sichtkontrolle, und wenn es unbewusst im Vorbeilaufen ist, ist eine optische Anzeige am Kühlschrank unentbehrlich. Es sind zwei Punkte: die Sicherheit die es einem gibt etwas "mit einem Blick" zu sehen ist tausendmal zufriedenstellender als der Schleichende Gedanke "Läuft es noch? Wie hoch wird wohl die Temperatur sein?" Und der zweite Punkt: jedesmal ein Handy rauszuholen wenn ich vor dem Kühlschrank stehe, es zu entsperren, die Webseite/App zu öffnen um die aktuelle Temperatur zu sehen (und um die Nerven zu beruhigen) würde mir ja sowas von auf die Nüsse gehen mit der Zeit! Ich habe zwei 7seg LED Anzeigen an meinem Gerät, eine für den Kühlschrank und eine für den Gefrierschrank und ich möchte diese nicht missen wollen, auch wenn ich bequem vom Sessel darauf zugreifen kann / könnte. Man muss daran auch nichts umstellen können, warum auch, dazu kann man dann die App / Webseite nutzen. Es dient lediglich zur Anzeige. Sollte der Strombedarf wirklich auf Batteriebasis bleiben, würde ich allerdings auch zu LCD oder COG Displays greifen. Bei Netzbetrieb definitiv zu 7seg Anzeige, alleine schon wegen der Leuchtkraft, die einfache Ablesung und kein unnötiger Schnitzel. Das Ding soll in ein Labor und nicht auf den Laufsteg!
Hauke B. schrieb: > Einziges > Problem ist die Möglichkeit des Stromausfalls, da müsste dann ein Akku > o.ä. einspringen und noch ein Signal absetzen. Allerdings ist bei einem > Stromausfall auch nicht mehr viel mit Internet, was die Sache dann > natürlich nicht leichter macht. Aber generell wäre es machbar das Gerät > per Netz zu versorgen und einen Akku als Reserve vorzusehen? Auf den Bildern ist auch eine Temperaturüberwachung und -regelung zu sehen. Die Led zeigt an, dass Spannung vorhanden ist und sollte der Lüfter ausfallen oder die Temperatur aus anderem Grunde zu hoch sein, ist da noch der Piepser. Natürlich über einen DS18B20 überwacht. Hintergrund des "gestrickten Aufbaus": Die FB wurde mal einen Sommer zu heiß und sie hatte noch Garantie, sodass ich sie nicht verbasteln wollte. Programm war im Grunde, bis auf kleine Änderungen schon so fertig und das war dann eben in einer Stunde so zusammen gebaut. Läuft schon so seit einigen Jahren. Klar! Um diese eine Nachricht abzusetzen, reicht ein Goldcap dicke aus. Display? Tut es nicht eine rot/grün Led? Temperatur in Ordnung, grün, wenn nicht, dann rot. @Moderator Leider wurde der Upload nicht korrekt angezeigt. Bitte überflüssige Bilder löschen. Danke!
:
Bearbeitet durch User
Ach noch eine Idee zum WLAN, wenn man ganz auf Pufferbatterie verzichten will. Du sendest in einem regelmäßigen Abstand ein "OK Signal" an deine App. Bleibt dieses länger aus, reagiert deine App mit einem Alarm.
Guten Tag zusammen, vielen Dank nochmal für die reichlichen Tipps und Ideen die ihr mir gegeben habt, die haben mir sehr geholfen. Mittlerweile bin ich mitten in dem Projekt und bin auch schon relativ weit gekommen. Verwendet habe ich einen ESP-8266 in Form eines NodeMCU's und drei DS18B20 Temperatursensoren sowie ein standart SD-Modul, OLED-Display, Pieper und LED. Fast alles funktioniert nun auch so, wie es funktionieren soll. Die Temperatur wird auf dem Display angezeigt. Es kommt eine Fehlermeldung, wenn ein Sensor zu heiß oder zu kalt wird. Wenn eine bestimmte Temperatur über- oder unterschritten wird, dann wird ein Alarm ausgelöst über Piepser und LED. Alle Werte werden mit Zeitstempel auf einer SD-Karte gespeichert. Die Zeit wird aus dem Internet von einem NTP-Server bezogen. Ein paar Probleme sind allerdings noch zu lösen: 1. Die Zeit wird aus der NTP-Zeit errechnet. Diese wird auf der SD-Karte mit gespeichert (s.Anhang und Code). Das ist natürlich unnötig und nicht so schön anzusehen, bzw. stört auch die Auswertung und erhöht den Speicherbedarf. Da ich leider noch sehr wenig Programmierkenntnisse besitze, erkenne ich meinen Fehler nicht. 2. Im Falle eines Stromausfalls könnte natürlich auch die Internetverbindung betroffen sein, insofern wäre es gut, wenn man die letzte zur Verfügung stehende Zeit aufgreifen könnte und in etwa manuell weiterführt, bis das Internet wieder da ist. 3. Versenden einer Warnnachricht bei Temperaturüber-/-unterschreitung wird bei mir per Telegram nachricht und entsprechendem Bot ausgeführt. Dazu muss nur ein Link aufgerufen werden. Genau dies ist aber noch ein Problem für mich, da die normale Bridge.h-Library für den Arduino vom ESP nicht unterstützt wird und die ESP-Bridge Library von GitHub bei mir nicht erkannt wird, wenn ich die ZIP einbinde. Habt ihr da eine Idee, wie ich das alternativ bewerkstelligen kann? Bzw. wie ich eine ESP-kompatible Bridge-Library bekomme? 4. Es gab ja noch das Problem mit der Stromversorgung für den Fall eines Stromausfalls. Ideal wäre ein Akku der etwas länger hält, da die Daten weiterhin auf der SD-Karte gespeichert werden sollen. Die Stromversorgung soll auch nach wie vor über den Micro-USB Eingang erfolgen, da der D0 Port nicht ansprechbar ist, wenn auf dem NodeMCU die Stromversorgung über V-IN erfolgt. Ich würde gerne das Netzgerät mit einem Akku und entsprechenden Dioden so schalten, dass das Netzgerät den NodeMCU mit Strom versorgt und den Akku läd. Bei einem Stromausfall soll dann der Akku das System versorgen. Ich bin mir nicht so sicher, inwieweit die Spannung schwanken darf. Über VIN kann die Spannung theoretisch bis zu 10V betragen, beim Micro-USB Eingang muss das aber schon relativ genau sein oder? Ich favorisiere 4x 1,2V AA-Akkus = 4,8V oder 5x 1,2V AA-Akkus = 6V. Würde da eine Möglichkeit funktionieren bzw. habt ihr da vielleicht andere Anregungen oder Ideen? Allgemein lässt sich noch sagen, dass das momentane Programm nicht spezielle auf einen Kühlschrank eingestellt ist, sondern zu testzwecken auf die Umgebungstemperatur, sodass die Alarme auf (25°C < temp > 20°C) gesetzt sind. Auch das Intervall ist mit ~1 sec viel zu schnell, zum testen aber gut geeignet. Im Anhang ist ein Foto vom System und der SD-Werte. Der Arduino-Code befindet sich am Ende. Vielen Dank schonmal im Vorraus!
1 | #include <SPI.h> |
2 | #include <Wire.h> |
3 | #include <Adafruit_GFX.h> |
4 | #include <Adafruit_SSD1306.h> |
5 | #include <OneWire.h> |
6 | #include <DallasTemperature.h> |
7 | #include <SD.h> |
8 | #include <NTPtimeESP.h> |
9 | //#include <ESP8266HTTPClient.h>
|
10 | //#include <Bridge.h>
|
11 | //#include <HttpClient.h>
|
12 | |
13 | /*
|
14 | static const uint8_t SDA = 4;
|
15 | static const uint8_t SCL = 5;
|
16 | |
17 | static const uint8_t LED_BUILTIN = 16;
|
18 | static const uint8_t BUILTIN_LED = 16;
|
19 | |
20 | static const uint8_t D0 = 16;
|
21 | static const uint8_t D1 = 5;
|
22 | static const uint8_t D2 = 4;
|
23 | static const uint8_t D3 = 0;
|
24 | static const uint8_t D4 = 2;
|
25 | static const uint8_t D5 = 14;
|
26 | static const uint8_t D6 = 12;
|
27 | static const uint8_t D7 = 13;
|
28 | static const uint8_t D8 = 15;
|
29 | static const uint8_t D9 = 3;
|
30 | static const uint8_t D10 = 1;
|
31 | */
|
32 | |
33 | #define OLED_RESET LED_BUILTIN
|
34 | #define DS18B20_PIN D4
|
35 | #define DEBUG_ON
|
36 | const int chipSelect = D8; // use D8 |
37 | File myFile; |
38 | OneWire oneWire(DS18B20_PIN); |
39 | DallasTemperature sensors(&oneWire); |
40 | NTPtime NTPch("de.pool.ntp.org"); |
41 | char *ssid = "XXXXXXXXXXXXXXXXXXXX"; |
42 | char *password = "XXXXXXXXXXX"; |
43 | strDateTime dateTime; |
44 | Adafruit_SSD1306 display(OLED_RESET); |
45 | |
46 | #define NUMFLAKES 10
|
47 | #define XPOS 0
|
48 | #define YPOS 1
|
49 | #define DELTAY 2
|
50 | |
51 | |
52 | #define LOGO16_GLCD_HEIGHT 16
|
53 | #define LOGO16_GLCD_WIDTH 16
|
54 | static const unsigned char PROGMEM logo16_glcd_bmp[] = |
55 | { B00000000, B11000000, |
56 | B00000001, B11000000, |
57 | B00000001, B11000000, |
58 | B00000011, B11100000, |
59 | B11110011, B11100000, |
60 | B11111110, B11111000, |
61 | B01111110, B11111111, |
62 | B00110011, B10011111, |
63 | B00011111, B11111100, |
64 | B00001101, B01110000, |
65 | B00011011, B10100000, |
66 | B00111111, B11100000, |
67 | B00111111, B11110000, |
68 | B01111100, B11110000, |
69 | B01110000, B01110000, |
70 | B00000000, B00110000 }; |
71 | |
72 | void setup() { |
73 | pinMode(D3, OUTPUT); |
74 | pinMode(D0, OUTPUT); |
75 | |
76 | Serial.begin(9600); |
77 | sensors.begin(); |
78 | |
79 | display.begin(SSD1306_SWITCHCAPVCC, 0x3C); |
80 | display.display(); |
81 | delay(2000); |
82 | |
83 | digitalWrite(D0, LOW); |
84 | digitalWrite(D3, HIGH); |
85 | |
86 | display.clearDisplay(); |
87 | display.setTextColor(WHITE); |
88 | display.setTextSize(1); |
89 | display.setCursor(25,11); |
90 | display.println(); |
91 | display.println("Connecting to WiFi:"); |
92 | display.display(); |
93 | WiFi.mode(WIFI_STA); |
94 | WiFi.begin (ssid, password); |
95 | while (WiFi.status() != WL_CONNECTED) { |
96 | display.print("."); |
97 | display.display(); |
98 | delay(500); |
99 | }
|
100 | display.display(); |
101 | display.println(); |
102 | display.println("Connected to WiFi!"); |
103 | display.display(); |
104 | delay(1000); |
105 | display.clearDisplay(); |
106 | |
107 | // HTTPClient http;
|
108 | // http.begin("Internetseite, die das PHP-Protokoll ausführt!");
|
109 | |
110 | // HttpClient client;
|
111 | // client.get("Internetseite, die das PHP-Protokoll ausführt!");
|
112 | }
|
113 | |
114 | void loop() { |
115 | dispTemp(); |
116 | display.clearDisplay(); |
117 | }
|
118 | |
119 | void dispTemp (void){ |
120 | |
121 | float T1 = sensors.getTempCByIndex(0); |
122 | float T2 = sensors.getTempCByIndex(1); |
123 | float T3 = sensors.getTempCByIndex(2); |
124 | |
125 | pinMode(D3, OUTPUT); |
126 | pinMode(D0, OUTPUT); |
127 | |
128 | dateTime = NTPch.getNTPtime(1.0, 1); |
129 | |
130 | sensors.requestTemperatures(); |
131 | SD.begin(chipSelect); |
132 | myFile = SD.open("templogg.txt", FILE_WRITE); |
133 | |
134 | if (T1<(T2+1)&&T1>(T2-1)&&T1<(T3+1)&&T1>(T3-1)) |
135 | {
|
136 | float temp = ((T1+T2+T3)/3); |
137 | |
138 | if(temp >25 || temp <20){ |
139 | digitalWrite(D3, LOW); |
140 | digitalWrite(D0, HIGH); |
141 | delay(1000); |
142 | digitalWrite(D3, HIGH); |
143 | digitalWrite(D0, LOW); |
144 | }
|
145 | |
146 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
147 | display.setTextColor(WHITE); |
148 | display.setTextSize(1); |
149 | display.setCursor(104,3); |
150 | display.print("o"); |
151 | display.setTextSize(2); |
152 | display.setCursor(112,10); |
153 | display.print("C"); |
154 | display.setCursor(10,10); |
155 | display.setTextSize(3); |
156 | display.print(temp); |
157 | display.display(); |
158 | |
159 | myFile.print("Datum: "); |
160 | myFile.print(dateTime.day); |
161 | myFile.print("."); |
162 | myFile.print(dateTime.month); |
163 | myFile.print("."); |
164 | myFile.print(dateTime.year); |
165 | myFile.print(" - "); |
166 | myFile.print("Uhrzeit: "); |
167 | myFile.print(dateTime.hour); |
168 | myFile.print(":"); |
169 | myFile.print(dateTime.minute); |
170 | myFile.print(":"); |
171 | myFile.print(dateTime.second); |
172 | myFile.print(" - "); |
173 | myFile.print("Temperatur: "); |
174 | myFile.print(temp); |
175 | myFile.println(" °C"); |
176 | myFile.close(); |
177 | }
|
178 | |
179 | |
180 | |
181 | |
182 | else
|
183 | {
|
184 | if (T1>(T2+1)&&T1>(T3+1)) |
185 | {
|
186 | float temp = ((T2+T3)/2); |
187 | |
188 | if(temp >25 || temp <20){ |
189 | digitalWrite(D3, LOW); |
190 | digitalWrite(D0, HIGH); |
191 | delay(1000); |
192 | digitalWrite(D3, HIGH); |
193 | digitalWrite(D0, LOW); |
194 | }
|
195 | |
196 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
197 | display.setTextColor(WHITE); |
198 | display.setTextSize(1); |
199 | display.setCursor(104,3); |
200 | display.print("o"); |
201 | display.setTextSize(2); |
202 | display.setCursor(112,10); |
203 | display.print("C"); |
204 | display.setCursor(10,10); |
205 | display.setTextSize(3); |
206 | display.println(temp); |
207 | display.setTextSize(1); |
208 | display.println(" "); |
209 | display.println(" DEFEKT!"); |
210 | display.println(" Sensor 1 zu warm!"); |
211 | display.display(); |
212 | myFile.print(temp); |
213 | myFile.println(" °C - DEFEKT! Sensor 1 zu warm!"); |
214 | myFile.close(); |
215 | }
|
216 | else
|
217 | {
|
218 | if (T1<(T2-1)&&T1<(T3-1)) |
219 | {
|
220 | float temp = ((T2+T3)/2); |
221 | |
222 | if(temp >25 || temp <20){ |
223 | digitalWrite(D3, LOW); |
224 | digitalWrite(D0, HIGH); |
225 | delay(1000); |
226 | digitalWrite(D3, HIGH); |
227 | digitalWrite(D0, LOW); |
228 | }
|
229 | |
230 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
231 | display.setTextColor(WHITE); |
232 | display.setTextSize(1); |
233 | display.setCursor(104,3); |
234 | display.print("o"); |
235 | display.setTextSize(2); |
236 | display.setCursor(112,10); |
237 | display.print("C"); |
238 | display.setCursor(10,10); |
239 | display.setTextSize(3); |
240 | display.println(temp); |
241 | display.setTextSize(1); |
242 | display.println(" "); |
243 | display.println(" DEFEKT!"); |
244 | display.println(" Sensor 1 zu kalt!"); |
245 | display.display(); |
246 | |
247 | myFile.print("Datum: "); |
248 | myFile.print(dateTime.day); |
249 | myFile.print("."); |
250 | myFile.print(dateTime.month); |
251 | myFile.print("."); |
252 | myFile.print(dateTime.year); |
253 | myFile.print(" - "); |
254 | myFile.print("Uhrzeit: "); |
255 | myFile.print(dateTime.hour); |
256 | myFile.print(":"); |
257 | myFile.print(dateTime.minute); |
258 | myFile.print(":"); |
259 | myFile.print(dateTime.second); |
260 | myFile.print(" - "); |
261 | myFile.print("Temperatur: "); |
262 | myFile.print(temp); |
263 | myFile.println(" °C - DEFEKT! Sensor 1 zu kalt!"); |
264 | myFile.close(); |
265 | }
|
266 | else
|
267 | {
|
268 | if (T2>(T1+1)&&T2>(T3+1)) |
269 | {
|
270 | float temp = ((T1+T3)/2); |
271 | |
272 | if(temp >25 || temp <20){ |
273 | digitalWrite(D3, LOW); |
274 | digitalWrite(D0, HIGH); |
275 | delay(1000); |
276 | digitalWrite(D3, HIGH); |
277 | digitalWrite(D0, LOW); |
278 | }
|
279 | |
280 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
281 | display.setTextColor(WHITE); |
282 | display.setTextSize(1); |
283 | display.setCursor(104,3); |
284 | display.print("o"); |
285 | display.setTextSize(2); |
286 | display.setCursor(112,10); |
287 | display.print("C"); |
288 | display.setCursor(10,10); |
289 | display.setTextSize(3); |
290 | display.println(temp); |
291 | display.setTextSize(1); |
292 | display.println(" "); |
293 | display.println(" DEFEKT!"); |
294 | display.println(" Sensor 2 zu warm!"); |
295 | display.display(); |
296 | |
297 | myFile.print("Datum: "); |
298 | myFile.print(dateTime.day); |
299 | myFile.print("."); |
300 | myFile.print(dateTime.month); |
301 | myFile.print("."); |
302 | myFile.print(dateTime.year); |
303 | myFile.print(" - "); |
304 | myFile.print("Uhrzeit: "); |
305 | myFile.print(dateTime.hour); |
306 | myFile.print(":"); |
307 | myFile.print(dateTime.minute); |
308 | myFile.print(":"); |
309 | myFile.print(dateTime.second); |
310 | myFile.print(" - "); |
311 | myFile.print("Temperatur: "); |
312 | myFile.print(temp); |
313 | myFile.println(" °C - DEFEKT! Sensor 2 zu warm!"); |
314 | myFile.close(); |
315 | }
|
316 | else
|
317 | {
|
318 | if (T2<(T1-1)&&T2<(T3-1)) |
319 | {
|
320 | float temp = ((T1+T3)/2); |
321 | |
322 | if(temp >25 || temp <20){ |
323 | digitalWrite(D3, LOW); |
324 | digitalWrite(D0, HIGH); |
325 | delay(1000); |
326 | digitalWrite(D3, HIGH); |
327 | digitalWrite(D0, LOW); |
328 | }
|
329 | |
330 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
331 | display.setTextColor(WHITE); |
332 | display.setTextSize(1); |
333 | display.setCursor(104,3); |
334 | display.print("o"); |
335 | display.setTextSize(2); |
336 | display.setCursor(112,10); |
337 | display.print("C"); |
338 | display.setCursor(10,10); |
339 | display.setTextSize(3); |
340 | display.println(temp); |
341 | display.setTextSize(1); |
342 | display.println(" "); |
343 | display.println(" DEFEKT!"); |
344 | display.println(" Sensor 2 zu kalt!"); |
345 | display.display(); |
346 | |
347 | myFile.print("Datum: "); |
348 | myFile.print(dateTime.day); |
349 | myFile.print("."); |
350 | myFile.print(dateTime.month); |
351 | myFile.print("."); |
352 | myFile.print(dateTime.year); |
353 | myFile.print(" - "); |
354 | myFile.print("Uhrzeit: "); |
355 | myFile.print(dateTime.hour); |
356 | myFile.print(":"); |
357 | myFile.print(dateTime.minute); |
358 | myFile.print(":"); |
359 | myFile.print(dateTime.second); |
360 | myFile.print(" - "); |
361 | myFile.print("Temperatur: "); |
362 | myFile.print(temp); |
363 | myFile.println(" °C - DEFEKT! Sensor 2 zu kalt!"); |
364 | myFile.close(); |
365 | }
|
366 | else
|
367 | {
|
368 | if (T3>(T1+1)&&T3>(T2+1)) |
369 | {
|
370 | float temp = ((T1+T2)/2); |
371 | |
372 | if(temp >25 || temp <20){ |
373 | digitalWrite(D3, LOW); |
374 | digitalWrite(D0, HIGH); |
375 | delay(1000); |
376 | digitalWrite(D3, HIGH); |
377 | digitalWrite(D0, LOW); |
378 | }
|
379 | |
380 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
381 | display.setTextColor(WHITE); |
382 | display.setTextSize(1); |
383 | display.setCursor(104,3); |
384 | display.print("o"); |
385 | display.setTextSize(2); |
386 | display.setCursor(112,10); |
387 | display.print("C"); |
388 | display.setCursor(10,10); |
389 | display.setTextSize(3); |
390 | display.println(temp); |
391 | display.setTextSize(1); |
392 | display.println(" "); |
393 | display.println(" DEFEKT!"); |
394 | display.println(" Sensor 3 zu warm!"); |
395 | display.display(); |
396 | |
397 | myFile.print("Datum: "); |
398 | myFile.print(dateTime.day); |
399 | myFile.print("."); |
400 | myFile.print(dateTime.month); |
401 | myFile.print("."); |
402 | myFile.print(dateTime.year); |
403 | myFile.print(" - "); |
404 | myFile.print("Uhrzeit: "); |
405 | myFile.print(dateTime.hour); |
406 | myFile.print(":"); |
407 | myFile.print(dateTime.minute); |
408 | myFile.print(":"); |
409 | myFile.print(dateTime.second); |
410 | myFile.print(" - "); |
411 | myFile.print("Temperatur: "); |
412 | myFile.print(temp); |
413 | myFile.println(" °C - DEFEKT! Sensor 3 zu warm!"); |
414 | myFile.close(); |
415 | }
|
416 | else
|
417 | {
|
418 | float temp = ((T1+T2)/2); |
419 | |
420 | if(temp >25 || temp <20){ |
421 | digitalWrite(D3, LOW); |
422 | digitalWrite(D0, HIGH); |
423 | delay(1000); |
424 | digitalWrite(D3, HIGH); |
425 | digitalWrite(D0, LOW); |
426 | }
|
427 | |
428 | display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); |
429 | display.setTextColor(WHITE); |
430 | display.setTextSize(1); |
431 | display.setCursor(104,3); |
432 | display.print("o"); |
433 | display.setTextSize(2); |
434 | display.setCursor(112,10); |
435 | display.print("C"); |
436 | display.setCursor(10,10); |
437 | display.setTextSize(3); |
438 | display.println(temp); |
439 | display.setTextSize(1); |
440 | display.println(" "); |
441 | display.println(" DEFEKT!"); |
442 | display.println(" Sensor 3 zu kalt!"); |
443 | display.display(); |
444 | |
445 | myFile.print("Datum: "); |
446 | myFile.print(dateTime.day); |
447 | myFile.print("."); |
448 | myFile.print(dateTime.month); |
449 | myFile.print("."); |
450 | myFile.print(dateTime.year); |
451 | myFile.print(" - "); |
452 | myFile.print("Uhrzeit: "); |
453 | myFile.print(dateTime.hour); |
454 | myFile.print(":"); |
455 | myFile.print(dateTime.minute); |
456 | myFile.print(":"); |
457 | myFile.print(dateTime.second); |
458 | myFile.print(" - "); |
459 | myFile.print("Temperatur: "); |
460 | myFile.print(temp); |
461 | myFile.println(" °C - DEFEKT! Sensor 3 zu kalt!"); |
462 | myFile.close(); |
463 | }
|
464 | }
|
465 | }
|
466 | }
|
467 | }
|
468 | }
|
469 | |
470 | delay(1000); |
471 | display.clearDisplay(); |
472 | |
473 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.