Kontaktloses Thermometer: Unterschied zwischen den Versionen
Zeile 347: | Zeile 347: | ||
[[Datei:]] | [[Datei: Kontaktloses_Thermometer_Final.ino]] | ||
== Komponententest == | == Komponententest == |
Version vom 11. Februar 2021, 11:10 Uhr
Autoren: Alexander Gossen, Markus Esjutin
Betreuer: Prof. Schneider
→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)
![](/wiki/images/thumb/3/3a/Kontaktloses_Thermometer_Hauptbild.png/500px-Kontaktloses_Thermometer_Hauptbild.png)
Einleitung
Im Rahmen des Praktikums Angewandte Elektrotechnik im Masterstudiengang Business and Systems Engineering im Wintersemester 20/21 ist vorgesehen, dass sich die Studierenden mit einem Microcontroller-Projekt auseinadersetzen, indem das theoretische Wissen aus den folgenden Themengebieten angewendet wird:
- Schaltungstechnik
- Elektrotechnik
- Mess- und Regelungstechnik
Die Studierenden sind aufgefordert ein angemessenes Projekthema mit einem Funduino Uno R3 zu recherchieren und auszuwählen. Hierbei besitzen die Studierenden bezüglich des Lösungskonzepts jegliche Freiheiten und sind nicht eingeschränkt.
Ausschlaggebend für das Projektthema "Kontaktloses Thermometer" war der ausgebrochene Virus Sars-CoV-2 oder besser bekannt als der Coronavirus. Durch die hohen Infektionszahlen seit Anfang des Jahres 2020 sind viele medizinische Hilfsmittel wie z.B. Fieberthermometer schnell ausverkauft oder werden zu überhöhten Preisen angeboten. Deshalb wird dieses Projekt als Motivation gesehen, sein eigenes kontaktloses Thermometer zu entwickeln und anderen die Möglichkeit zu bieten dies nachzubauen.
Projektsteckbrief
Im Rahmen der Projektvorgehensweise wird die Funtkion des kontaklosen Thermometers anhand eines kurzen Steckbriefs erläutert. Die kontaktlose Temperaturmessung wird durch einen Infrarotsensor ermöglicht. Dieser agiert zusammen mit dem Ultraschallsensor und zwei LED's für eine korrekte Messung. Der Ultraschallsensor prüft, ob die angegebene Entfernung stimmt und zeigt dies anhand zwei verschiedenfarbiger LED's an. Liegt die Entfernung bei 2-5cm, leuchtet die LED grün. Ist die Entferung zu weit, leuchtet sie rot. Bei Betätigung eines Taster soll der Wert festgehalten werden und auf einem Display auslesbar sein. Bei erneuter Betätigung des Tasters, soll das Thermometer für eine neue Messung bereitgestellt sein.
Anforderungen an das Projekt
Die nachfolgende Liste beschreibt die Anforderungen an das Projekt "Kontaktloses Thermometer", die erfüllt werden müssen.
- Die Temparatur muss in Grad Celsius angezeigt werden und einen Bereich von 0 C° - 100 C° abdecken.
- Das Thermometer muss im Entfernungsbereich von 2-5cm bei einer Auflösung von 0,1 C° messen können.
- Eine grüne LED muss leuchten, sobald sich das Thermometer im Entfernungsbereich befindet. Ansonsten leuchtet sie rot.
- Bei Betätigung des Tasters muss die aufgenommene Temperatur festgehalten werden, solange sie sich im Entfernungsbereich befindet.
- Die Messergebnisse müssen visuell per Display und akustisch durch einen Signalton kenntlich gemacht werden.
- Die Ergebnisse müssen auslesbar sein bis der Taster wieder gedrückt wird.
- Die Stromversorgung soll alternativ über eine Batterie laufen.
- Die Temparaturmessung muss in Echtzeit erfolgen.
- Das Thermometer soll handlich und transportabel sein.
Funktionaler Systementwurf / Technischer Systementwurf
Funktionale Systemstruktur
Das Thermometer misst die Temperatur eines Objektes mithilfe eines Infrarotsensors. Aufgrund von Herstellerangaben (Zuverlässigkeitsbereich der Messungen) wurde der Messbereich des Sensors auf 2 cm - 5 cm festgelegt. Dies bedeutet, das man lediglich in diesem Distanzbereich Messungen durchführen kann. Sobald der entsprechende Messbereich erreicht ist, wird dies anhand von LED's signalisiert. Ein Display gibt den entsprechenden Text aus. Eine Messung wird durch die Betätigung eines Tasters durchgeführt. Die Stromversorgung und Mobilität des Thermometers ist über eine Batterie gewährleistet.
![](/wiki/images/thumb/2/23/Funktionaler_Systementwurf_AE.png/800px-Funktionaler_Systementwurf_AE.png.jpeg)
Technischer Systementwurf
Im Folgendem werden die Schaltpläne und die technischen Zeichnungen des Projekts dargestellt.
Schaltbilder
![](/wiki/images/thumb/c/cd/SP-Multisim.png/555px-SP-Multisim.png)
![](/wiki/images/thumb/f/f3/Fritzing_Schaltplan.png/525px-Fritzing_Schaltplan.png)
CAD-Zeichnungen
![](/wiki/images/thumb/3/36/Hauptteil_und_Deckel.png/530px-Hauptteil_und_Deckel.png)
![](/wiki/images/thumb/4/45/Sensorhalter_und_Bildschirmhalter.png/545px-Sensorhalter_und_Bildschirmhalter.png)
![](/wiki/images/thumb/d/d1/Griff_und_Deckel.png/530px-Griff_und_Deckel.png)
![](/wiki/images/thumb/a/a0/Kontakloses_Thermometer.png/540px-Kontakloses_Thermometer.png)
Datei:Hauptteil und Deckel.pdf
Datei:Sensorhalter und Bildschirmhalter.pdf
Datei:Griff und Deckel.pdf
Datei:Kontakloses Thermometer.pdf
Komponentenspezifikation
Die Komponenten für die Umsetzung des Projekts sind in der unten stehenden Tabelle aufgelistet und bezüglich der Funktionen spezifiziert. Zudem liefert die Tabelle einen Überblick über die Kosten, um einen möglichen Nachbau zu erleichtern. Die meisten Komponenten wurden beim Anbieter funduino.de bestellt. Teile, wie der Infrarotsensor, OLED-Display und Anschlussleitungen wurden auf Amazon eingekauft. In der Tabelle sind die genauen Adressen verlinkt.
Bauteil | Funktion | Preis € (inkl. Mehrwertsteuer) | Hyperlink |
---|---|---|---|
Arduino Uno R3 (alternativ Nano) | Mikrocontroller zur Ansteuerung der Schaltkreise | 13,90 | Arduino Uno R3 |
MLX90614/5 Contactless Temperature Sensor | Infrarot-Temperaturmessung | 11,99 | MLX90614 |
Ultrasonic Sensor HC-SR04 | Abstandsmessung zur Einhaltung des Messbereichs | 2,40 | Ultraschallsensor |
Experimentelles Breadboard | Verbindung aller Schaltkreise | 0,47 | Breadboard |
Jumper Wires | Verbindung aller Schaltkreise | 7,29 | Jumper Wires |
OLED-Display (128x64) | Anzeigebildschirm | 5,79 | OLED-Display |
Taster | Betätigung zur Aufnahme einer Temperaturmessung | 0,29 | Taster |
LED (2x) | Indikator für Mindestabstand (rot) und Maximalabstand (grün) | 4,40 | LED |
Filament (3D-Druck) | Herstellung eines Gehäuses für das Thermometer | 24,99 | 3D-Druck Filament |
Lötkolben | Herstellung einer festen Verbindung zwischen den Wires | 18,22 | Lötkolben |
Löt-Zinn | Verbindungsmaterial | 6,43 | Löt-Zinn |
Umsetzung (HW/SW)
In diesem Kapitel wird die Umsetzung des Thermoters anhand der verwendeten Hard- und Software-Tools verdeutlicht. Für die Programmierung des Mikrocontrollers wurde die Arduino IDE verwendet. Die CAD-Zeichnungen wurden mit Solidworks. Das Gehäuse des Thermometers wurde mit einem Creality Ender 3 Pro mit rotem 1.75 mm Filament 3D-gedruckt. Verbindungen zwischen den Komponenten wurden mit einem Lötkolben hergestellt.
//**************************************************************** // Hochschule Hamm-Lippstadt * //**************************************************************** // Modul : Angewandte Elektrotechnik WS 2020/1 * // * // Datum : 10.02.2021 * // * // Funktion : Kontaktlose Temperatur und Abstandsmessung * // * // Implementation : Arduino IDE * // * // Author : Alexander Gossen & Markus Esjutin * // * // Betreuer : Prof. Schneider * // * // Letzte Änderung : 10.02.2021 * // * //****************************************************************
// Schriftarten für OLED-Display
/*rial14, Arial_bold_14, Callibri11, Callibri11_bold, Callibri11_italic, Callibri15, Corsiva_12, fixed_bold10x15, font5x7, font8x8, Iain5x7, lcd5x7, Stang5x7, System5x7, TimesNewRoman16, TimesNewRoman16_bold, TimesNewRoman16_italic, utf8font10x16, Verdana12, Verdana12_bold, Verdana12_italic, X11fixed7x14, X11fixed7x14B, ZevvPeep8x16*/
- include <Wire.h> //Bibliothek zur I2C-Kommunikation
- include <Adafruit_MLX90614.h> //Bibliothek für den Infrarot-Sensor
- include "SSD1306Ascii.h" //Bibliothek für das OLED-Display
- include "SSD1306AsciiWire.h" //Bibliothek für das OLED-Display
- define I2C_ADDRESS 0x3C //Adresse des OLED-Display
Adafruit_MLX90614 mlx = Adafruit_MLX90614(); SSD1306AsciiWire oled;
unsigned char LED_GRUEN = 4; // Digitalpin grüne LED unsigned char LED_ROT = 8; // Digitalpin rote LED unsigned char SPEAKER = 9; // Digitalpin Buzzer unsigned char TRIG = 3; // Digitalpin Trigger (Ultraschallsensor) unsigned char ECHO = 2; // Digitalpin Echo (Ultraschallsensor) unsigned char TASTER = 6; // Digitalpin Taster boolean i = false; // Hilfsvariable für Taster unsigned long dauer = 0; // Variable zur Abstandsberechnung (Ultraschallsensor) unsigned long entfernung = 0; // Variable zur Abstandsberechnung (Ultraschallsensor) boolean tasterGedrueckt = false; // Entprellung des Tasters (Hilfsvariable) int tasterZeit = 0; // Entprellung des Tasters int entprellZeitTaster = 800; // Entprellung des Tasters double Temperatur = 0; // Leervariable für Temperaturmessung
void setup() {
Wire.begin(); //Initialisierung der I2C-Kommunikation Serial.begin(9600); //Initialisierung der seriellen Kommunikation mlx.begin(); //Initialisierung der Kommunikation mit dem Infrarotsensor oled.begin(&Adafruit128x64, I2C_ADDRESS); //Initialisierung der seriellen Kommunikation pinMode(LED_GRUEN, OUTPUT); //Input/Output-Konfiguration pinMode(LED_ROT, OUTPUT); //Input/Output-Konfiguration pinMode(SPEAKER, OUTPUT); //Input/Output-Konfiguration pinMode(TRIG, OUTPUT); //Input/Output-Konfiguration pinMode(ECHO, INPUT); //Input/Output-Konfiguration pinMode(TASTER, INPUT_PULLUP); //Internen Pull-Up-Widerstand aktivieren
}
void loop() {
oled.setFont(ZevvPeep8x16); //Konfiguration der Schriftart des OLED-Displays
digitalWrite(TRIG, LOW); //Triggerpin wird auf 0 V gesetzt (Ultraschallsensor) delay(5); //Verzögerung 0,005 Sekunden digitalWrite(TRIG, HIGH); //Triggerpin wird auf 5 V gesetzt (Ultraschallsensor) delay(10); //Verzögerung 0,010 Sekunden digitalWrite(TRIG, LOW); //Triggerpin wird auf 0 V gesetzt (Ultraschallsensor) dauer = pulseIn(ECHO, HIGH); //Berechnet die Dauer bis das Echo ein High-Signal erhält (Ultraschalsensor) entfernung = (dauer/2) / 29.1; //Berechnung der Entfernung
Serial.print("Entfernung: "); Serial.print(entfernung); Serial.print(" cm\n\n");
if ((entfernung >= 2) && (entfernung <= 5)) { //if-Bedingung: Wenn die gemessene Entfernung größer als 2 cm und kleiner als 5 cm ist
digitalWrite(LED_ROT, LOW); //Rote LED wird auf 0 V gesetzt digitalWrite(LED_GRUEN, HIGH); //Grüne LED wird auf 0 V gesetzt //oled.clear(); oled.setCursor(24, 0); //OLED-Display Textstartposition auf Spalte 24 und Zeile 0 gesetzt oled.print("Bitte Taster "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(24, 2); //OLED-Display Textstartposition auf Spalte 24 und Zeile 2 gesetzt oled.print("betaetigen... "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 4); //OLED-Display Textstartposition auf Spalte 24 und Zeile 4 gesetzt oled.print("Entfernung "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 6); //OLED-Display Textstartposition auf Spalte 24 und Zeile 6 gesetzt oled.print(entfernung); //Textausgabe berechnete Entfernung oled.print(" cm"); //Textausgabe delay(500); //Verzögerung 0,5 Sekunden
Serial.print("Bitte Taster betaetigen..."); //Serielle Textausgabe
if (digitalRead(TASTER) == HIGH) { //if-Bedingung: Wenn der Zustand des Taster auf 5 V gesetzt wurde digitalWrite(SPEAKER, HIGH); //Buzzer wird auf 5 V gesetzt delay(50); //Verzögerung 0,05 Sekunden digitalWrite(SPEAKER, LOW); //Buzzer wird auf 0 V gesetzt i = true; //Buzzer Hilfsvariable wird auf true gesetzt } t: //Ankerpunkt für goto-Befehl while (digitalRead(TASTER) == HIGH) { //while-Schleife: Solange der Zustand des Taster 5 V beträgt if (i == true) { //if-Bedingung: Wenn der Wert der Buzzer Hilfsvariable auf true gesetzt wurde digitalWrite(SPEAKER, HIGH); //Buzzer wird auf 5 V gesetzt delay(50); //Verzögerung 0,05 Sekunden digitalWrite(SPEAKER, LOW); //Buzzer wird auf 0 V gesetzt
i = false; //Buzzer Hilfsvariable wird auf false gesetzt } Temperatur = mlx.readObjectTempC(); //Gemessene Infrarotsensor-temperatur wird in Variable Temperatur gespeichert //oled.clear(); oled.setCursor(23, 0); //OLED-Display Textstartposition auf Spalte 23 und Zeile 0 gesetzt oled.print("Temperatur "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 2); //OLED-Display Textstartposition auf Spalte 23 und Zeile 2 gesetzt oled.print(Temperatur); //Textausgabe gemessene Temperatur oled.print(" C "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 4); //OLED-Display Textstartposition auf Spalte 23 und Zeile 4 gesetzt oled.print("Entfernung "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 6); //OLED-Display Textstartposition auf Spalte 23 und Zeile 6 gesetzt oled.print(entfernung); //Textausgabe berechnete Entfernung oled.print(" cm "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben)
Serial.print("Temperatur "); //Serielle Textausgabe Serial.print(Temperatur); //Serielle Textausgabe gemessene Temperatur Serial.print(" C"); //Serielle Textausgabe tasterZeit = millis(); //Zeitmessung solange der Taster auf 5 v gesetzt wurde und Speicherung des Wertes in der variable tasterZeit if (tasterGedrueckt == true) { //if-Bedingung: Wenn der Wert der variable Hilfsvariable tasterGedrueckt auf true gesetzt wurde tasterGedrueckt = false; //Taster-Entprell Hilfsvariable wird auf false gesetzt } else { //else: wenn if-Bedingung nicht zutrifft tasterGedrueckt = true; //Taster-Entprell Hilfsvariable wird auf true gesetzt } } if ((digitalRead(TASTER) == LOW) && (tasterZeit >= 1000)) { //if-Bedingung: Wenn der Zustand des Taster 0 V beträgt und die Wert in der Variable tasterZeit größer-gleich 1000 beträgt goto g; //Springe zu Ankerpunkt g }
while ((tasterGedrueckt == true) && (millis() - tasterZeit > entprellZeitTaster)) { //while-Schleife: Solange tasterGedrueckt = true ist und die gemessene Tasterzeit kleiner der vorgegeben entprellzeit ist g: //Ankerpunkt für goto-Befehl
//oled.clear(); oled.setCursor(23, 0); //OLED-Display Textstartposition auf Spalte 23 und Zeile 0 gesetzt oled.print("Temperatur "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 2); //OLED-Display Textstartposition auf Spalte 23 und Zeile 2 gesetzt oled.print(Temperatur); //Textausgabe gemessene Temperatur (Zuletzt angezeigter Wert wird festgehalten) oled.print(" C "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 4); //OLED-Display Textstartposition auf Spalte 23 und Zeile 4 gesetzt oled.print("Entfernung "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 6); //OLED-Display Textstartposition auf Spalte 23 und Zeile 6 gesetzt oled.print(entfernung); //Textausgabe gemessene Entfernung oled.print(" cm "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben)
Serial.print("Temperatur "); //Serielle Textausgabe Serial.print(Temperatur); //Serielle Textausgabe gemessene Temperatur Serial.print(" C"); //Serielle Textausgabe delay(500); //Verzögerung 0,5 Sekunden if (digitalRead(TASTER) == HIGH) { //if-Bedingung: Wenn der Zustand des Taster auf 5 V gesetzt ist digitalWrite(SPEAKER, HIGH); //Buzzer wird auf 5 V gesetzt delay(50); //Verögerung 0,05 Sekunden digitalWrite(SPEAKER, LOW); //Buzzer wird auf 0 V gesetzt goto t; //Springe zu Ankerpunkt t } }
}
else { //else: Wenn die if-Bedingung nicht zutrifft
tasterZeit = 0; //Variable tasterZeit wird auf 0 gesetzt digitalWrite(LED_GRUEN, LOW); //Grüne LED wird auf 0 V gesetzt digitalWrite(LED_ROT, HIGH); //Rote LED wird auf 5 V gesetzt //oled.clear(); oled.setCursor(24, 0); //OLED-Display Textstartposition auf Spalte 24 und Zeile 0 gesetzt oled.print("Nicht in "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(24,2); //OLED-Display Textstartposition auf Spalte 24 und Zeile 2 gesetzt oled.print("Reichweite! "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 4); //OLED-Display Textstartposition auf Spalte 23 und Zeile 4 gesetzt oled.print("Entfernung "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben) oled.setCursor(23, 6); //OLED-Display Textstartposition auf Spalte 23 und Zeile 6 gesetzt oled.print(entfernung); //Textausgabe gemessene Entfernung oled.print(" cm "); //Textausgabe (Leerzeichen zum Löschen des Textes aus vorherigen Textausgaben)
Serial.print("Nicht in Reichweite!"); //Serielle Textausgabe
delay(500); //Verzögerung 0,5 Sekunden
}
}
Datei:Kontaktloses Thermometer Final.ino
Komponententest
Zuerst wurden alle benötigten Komponenten am großen Breadboard mit dem Arduino verbunden. Die Verschaltung wurde so übersichtlich wie möglich aufgebaut, um möglichst schnell fehlerhafte Verbindungen zu korrigieren und Verbesserungen aufzunehmen. Die Verbesserungen wurden dann bei der Verkabelung und den Aufbau des Endprodukts umgesetzt. Wie aus den Abbildungen zu entnehmen wurde der Ultraschallsensor zusammen mit den LEDs programmiert und auf korrekter Funktion mittels Geodreieck überprüft. Es wurde darauf geachtet, dass die LED's und der Ultraschallsensor fehlerfrei zum richtigen Abstand reagieren, da diese die Bedingungen im Programmcode vorgeben und somit das Grundgerüst bilden. Im Anschluss wurde der Infrarotsensor in den Programmcode implementiert. Er wurde für den Anfang mit den Ultraschallsensor so programmiert, dass er nur bei einem Abstand von zwei bis fünf cm arbeitet und Temperaturen aufzeichnet. Als Beispiel dient die Abbildung mit den Temperaturaufzeichnungen. Dort hat sich eine Hand dem Ultraschallsensor genähert und erst bei dem vorgegebenen Abstand die Temperatur der Hand aufgezeichnet. Die anderen Komponenten wie Schater, Piezo Speaker und OLED wurden nach und nach in den Code implementiert.
![](/wiki/images/thumb/9/9b/Komponenten_Breadboard.png/400px-Komponenten_Breadboard.png)
![](/wiki/images/thumb/e/e4/Komponententest_LED_Abstand_i.o.png/400px-Komponententest_LED_Abstand_i.o.png)
![](/wiki/images/thumb/e/e2/Komponententest_LED_Abstand_n.i.o.png/400px-Komponententest_LED_Abstand_n.i.o.png)
![](/wiki/images/thumb/f/fc/Temperaturtest.png/500px-Temperaturtest.png)
CAD-Entwurf
In diesem Kapitel wird der Entwurf des Thermometers mithilfe der CAD-Software Solidworks veranschaulicht und die Dateien zum Download zur Verfügung gestellt.
Die CAD-Daten dieses Projekts finden sich in den unten stehenden Links.
Datei:Kontakloses Thermometer Griff Deckel.zip
Datei:Kontakloses Thermometer Halterungen.zip
Datei:Kontakloses Thermometer Hauptteil Deckel.zip
Ergebnis
Zusammenfassung
Lessons Learned
Während des Projekts traten Komplikationen in unterschiedlichen Bereichen an. Die größte Hürde stellte der Arduino Uno selbst dar. Dieser war für das Projekt aufgrund seiner technischen Abmessungen wenig geeignet. Aufgrund der Größe dieses Mikrocontrollers mussten die Komponenten auf engstem Raum platziert werden um die Größe des Gehäuses möglichst gering zu halten da es sich um handliches Thermometer handelt. Dies hatte auch zur Folge das viel mehr Filament zur Herstellung im 3D-Drucker benötigt wurde weil zum anderen die Größe des Gehäuses unerwartet anstieg und bedingt durch Optimierungen einzelne Teile des Gehäuses mehrfach gedruckt werden mussten. Zugleich wirkte sich die Wahl des Uno auch aus Kostensicht als nicht optimal heraus da es günstigere Alternativen für dieses Projekt gibt.
● Verbesserungsvorschlag: Arduino Nano oder ähnlichen Mikrocontroller für dieses Projekt verwenden!
Weitere Komplikationen traten in der Umsetzung der Software und der Wahl des Temperatur-Sensors auf. Durch unklare Dokumentationen bezüglich des Sensors in der Literatur und im Internet wurde viel Zeit dafür aufgewendet die passenden Bibliotheken zu finden. Auch der Sensor selbst, der MLX90614, stellte sich zwar als besondere kostengünstige Variante der kontaklosen Temperaturmessung heraus, konnte aber nicht durch seine Leistung überzeugen. Ernsthafte Messungen, wie beispielsweise Fiebermessungen, können mit diesem Sensor nur schwer realisiert werden.
● Verbesserungsvorschlag: Umfassendere Dokumentation der Software gewährleisten und gegebenfalls höherwertigen Temperatur-Sensor verwenden!
Die Temperaturmessung eines kleinen Objektes wird erschwert.
● Verbesserungsvorschlag: Zusätzlicher Einbau eines Lasers, um so kleine Objekte anzuvisieren, wo die Temperatur gemessen werden soll.
Das Thermometer wird über eine Batterie betrieben. Um das Gerät auschzuschalten muss die Batterie im Griff entfernt werden. Alternativ kann das Anschlusskabel der Batterie vom Arduino getrennt werden. Dazu muss der Deckel auf der Oberseite entfernt werden. Beide Varianten sind umständlich und nicht praktisch.
● Verbesserungsvorschlag: Einbau eines externen Stromversorgungsmoduls mit Batterieanschluss und An/Aus-Schalter zum einfachen ein- und ausschalten des Geräts (erfordert Neukonzipierung des Gehäuses).
Projektunterlagen
Projektplan
Projektdurchführung
Zur Umsetzung des Projekts wurde das V-Modell gewählt. Anhand des V-Modells wurden die jeweiligen, im Projektplan dokumentierten, Meilensteine erfüllt. Den Beginn machte dabei eine Anforderungsliste mit notwendigen und optionalen Anforderungen. Auf eine Ideenfindung, beispielsweise anhand eines morphologischen Kastens, wurde verzichtet da die Vorstellungen über die endgültigen Funktionen des Thermometers schon sehr früh existierten. Bei der Entwicklung des Gehäuses hingegen musste oft auf frühere Schritte zurückgesprungen werden da die Platzierung des Arduino Uno und der weiteren Komponenten auf engstem Raum eine Neukonzipierung der CAD-Konstruktionen erforderte.
Datenblätter
Die Datenblätter der wichtigsten Komponenten des Thermometers können im folgendem eingesehen und heruntergeladen werden.
Datei:Infrarotsensor MLX90614 Datenblatt.pdf
Datei:OLED Bildschirm Datenblatt.pdf
Datei:Ultraschallsensor HC SR04 Datenblatt.pdf
Datei:Ultraschallsensor HC SR04 Anleitung.pdf
YouTube Video
Weblinks
Literatur
→ zurück zum Hauptartikel: