Projekt 64: Wasserstandswarner-Aufsatz für Arduino: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]
[[Kategorie:Projekte]]
'''Autor:''' Lars Christian Naujocks | Mike Westhoff <br/>
'''Autor:''' [[Benutzer:Lars-Christian Naujocks| Lars Naujocks]]| [[Benutzer:Mike Westhoff| Mike Westhoff]] <br/>


'''Betreuer:''' Prof. Göbel | Prof. Schneider <br/>
'''Betreuer:''' Prof. Göbel | Prof. Schneider <br/>
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_16/17)|Angewandte Elektrotechnik (WS 16/17)]]  
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_16/17)|Angewandte Elektrotechnik (WS 16/17)]]  
= '''Aufgabe''' =
= '''Aufgabe''' =
Zeile 434: Zeile 435:


[13] https://upload.wikimedia.org/wikipedia/commons/6/68/AC_adaptor_polarity.png (Abgerufen am 26.12.2016)
[13] https://upload.wikimedia.org/wikipedia/commons/6/68/AC_adaptor_polarity.png (Abgerufen am 26.12.2016)
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_16/17)|Angewandte Elektrotechnik (WS 16/17)]]
→ zurück zum Hauptartikel: [[Angewandte_Elektrotechnik_(WS_16/17)|Angewandte Elektrotechnik (WS 16/17)]]

Aktuelle Version vom 16. Januar 2017, 18:44 Uhr

Autor: Lars Naujocks| Mike Westhoff

Betreuer: Prof. Göbel | Prof. Schneider

→ zurück zum Hauptartikel: Angewandte Elektrotechnik (WS 16/17)

Aufgabe

  • Untersuchen Sie einen ABUS Wassermelder HSWM10000
  • Erstellen Sie das System als prototypischen Eigenbau auf einem Proto-Shield für einen Arduino Uno >> Schaltplan, Pin-Belegungstabelle
  • Beschaffen Sie die Bauteile
  • Realisierung und Erprobung des Aufbaus
  • Machen Sie ein spektakuläres Video, welches die Funktion visualisiert.
  • Test und wiss. Dokumentation
  • Live Vorführung während der Abschlusspräsentation
  • Bausteine

Anforderungen

Da keine Anforderungsspezifikation vorhanden war, hat das Team aus der Aufgabenstellung heraus eine eigene geschrieben, die auf den Vorgaben von Prof. Göbel beruhen. Hier werden nochmals die wichtigsten funktionalen und nicht-funktionalen Anforderungen aufgelistet. Die detaillierte Spezifikation ist [1] zu entnehmen.

Funktionale Anforderungen

REQ 10.3100 Wasserstandswarnung
Anforderung Der Prototyp soll eine Warnung ausgeben, wenn ein Wasserstand überschritten ist.
Notiz Der Prototyp soll an das kommerzielle Produkt ABUS Wassermelder HSWM10000 angelehnt sein.
Priorität 1
Status Final

Nicht-funktionale Anforderungen

REQ 10.3200 Hardware
Anforderung Das System soll als prototypischer Eigenbau auf einem Proto-Shield für einen Arduino Uno erstellt werden.
Notiz
Priorität 1
Status Final
REQ 10.3210 Aufbau der Hardware
Anforderung Alle Anschlüsse auf dem Proto-Shield sollen mit Schraubleisten durchgeführt werden.
Notiz
Priorität 1
Status Final
REQ 10.3220 Lautstärke
Anforderung Der Piezo-Summer soll mit einer Lautstärke >=80 dB warnen.
Notiz
Priorität 1
Status Final
REQ 10.3230 BOM
Anforderung Es soll eine Stückliste erstellt werden, die alle benötigten Teile für die Realisierung enthält.
Notiz BOM wird in SVN eingecheckt und von den Professoren wird die Bestellung durchgeführt.
Priorität 1
Status Final
REQ 10.3240 Video
Anforderung Es soll ein Video gedreht werden, das die Funktion des Wasserstandswarners visualisiert.
Notiz
Priorität 1
Status Final
REQ 10.3250 Live Vorführung
Anforderung Das Projekt soll während der Abschlusspräsentation live vorgeführt werden.
Notiz
Priorität 1
Status Final
REQ 10.3260 Wiki
Anforderung Die Ergebnisse und eine nachhaltige Dokumentation sollen auf das Wiki hochgeladen werden.
Notiz
Priorität 1
Status Final

Toolanforderungen

REQ 10.3300 Tools für Softwareentwicklung
Anforderung Es soll die Arduino IDE für die Softwareentwicklung benutzt werden.
Notiz
Priorität 1
Status Final

Qualitätssicherung

REQ 10.3310 Test
Anforderung Die Hard- und Software soll ausgiebig getestet werden.
Notiz Da die Software wenig Code und nur eine Routine enthält, sind Integrationstests nicht nötig.
Priorität 1
Status Final
REQ 10.3320 Dokumentation
Anforderung Das Projekt soll nach wissenschaftlichen Standards dokumentiert werden.
Notiz
Priorität 1
Status Final

Projektorganisation

REQ 10.3330 Projektplanung
Anforderung Für die Detailplanung soll MS Project eingesetzt werden.
Notiz
Priorität 1
Status Final
REQ 10.3340 Versionskontrolle und -verwaltung
Anforderung Für das Projekt soll das Versionsverwaltungssystem SVN eingesetzt werden.
Notiz Damit nur die wichtigen Items eingecheckt werden, ist eine Konfigurationsidentifizierung nötig.
Priorität 1
Status Final

Pflichtenheft

Das dem Lastenheft entsprechende Pflichtenheft ist unter SVN (Zugriffsrechte erforderlich) [2] eingecheckt und kann jederzeit eingesehen werden. Auch hier folgt eine kurze Auflistung der wichtigsten Punkte.

Zielbestimmungen

Das Projekt P 64 stellt einen Prototyp für einen Wasserstandswarner dar, der eine Warnung ausgibt, sobald ein Wasserstand überschritten ist.

Musskriterien

Ausgeben einer Warnung, sobald ein Wasserstand überschritten ist.

Anwendungsbereiche

Der Wasserstandswarner kann überall dort eingesetzt werden, wo eine unerlaubte Erhöhung des Wasserstandes bzw. Überschwemmung zu befürchten ist (z.B.: Pumpensumpf, Keller). Der Wasserstandswarner eignet sich auch für den Einsatz im Haushalts- oder Heizungsraum z.B. direkt neben einer Waschmaschine oder dem Kombi- / Pufferspeicher. Der Wasserstandswarner kann sehr vielseitig angewendet werden, um bei austretendem Wasser direkt an die Bewohner eine Warnung abzugeben. Die Warnung ermöglicht so ein schnelles Eingreifen, um so vor größeren Schäden zu schützen.

Zielgruppen

Personengruppen, bei denen o.a. Anwendungsbereiche zutreffen.

Betriebsbedingungen

Der Wasserstandwarner soll sich nicht von anderen kommerziell erhältlichen Produkten bezüglich der Betriebsbedingungen unterscheiden.

  • Betriebsdauer: täglich, 24 Stunden
  • Wartungsfrei bis auf einen erforderlichen Batteriewechsel


Batteriewechsel

Die durchschnittliche Lebensdauer einer 9V Batterie beträgt ca. 3 Jahre.

Aus Sicherheitsgründen sollte diese nach 2 bis 2,5 Jahren gewechselt werden.

Produktfunktionen

Benutzerfunktionen: Das Gerät gibt eine Warnung aus, sobald ein Wasserstand überschritten wird.

/F0010/ Warnung ausgeben: Sobald ein Wasserstand überschritten wird, gibt das Gerät eine akustische Warnung aus, die den Nutzer darüber informiert.

Produktleistungen

/L0010/: Das Gerät gibt eine akustische Warnung von >80 dB aus.

/L0020/: Das Gerät kann netzunabhängig, d.h. mit einer Batterie arbeiten.

Qualitätszielbestimmungen

Tabelle 1: Qualitätszielbestimmungen

Globale Szenarien und Testfälle

/T0010/ Warnung ausgeben: Das Gerät wird in einer entsprechenden Umgebung oder einem Ersatzszenario getestet (z.B.: Wassereimer).

Entwicklungsumgebung

Software

  • Entwicklungsplattform
    • Windows 7/10 Betriebssystem
    • Arduino IDE 1.6.12
    • Fritzing 0.9.3.b.64
    • Office 2016

Hardware

  • PC oder Notebook
  • Arduino Uno

Orgware

  • N/A

Projektplan

Um die Übersicht über das Projekt zu behalten, wurde ein Projektplan mit MS Project 2016 erstellt.Dieser ist in [3] einzusehen. Das folgende Bild zeigt einen Screenshot vom Gantt Chart.

Abbildung 1: Projektplan P64 Wasserstandswarner

Grundlagen

Kolbenlöten

Lötverfahren: Weichlöten

Beim Löten der einzelnen Komponenten auf das Proto-Shield sollte nach Möglichkeit darauf geachtet werden, dass eine möglichst kleine Spitze verwendet wird, da die einzelnen Lötstellen sehr dicht beieinanderliegen.

Abbildung 2: Lötkolbenformen [4]

Lot

Bei dem Lot sollte insbesondere auf die Stärke geachtet werden. Es empfiehlt sich hierbei auf eine Stärke bis 1,0mm zurückzugreifen. Die maximal mögliche Stärke, die eingesetzt werden kann liegt bei 1,5mm. Darüber hinaus wird ein präzises Arbeiten unmöglich und es besteht die Gefahr, dass sich direkt nebeneinanderliegende Lötaugen miteinander verbinden. Achtung Kurzschlussgefahr! Der nötige Einsatz von Flussmittel sollte im Vorfeld geprüft werden. Sicherheitshinweise zum Thema Lötrauche finden sich in dem nachfolgenden Artikel. Weitere Sicherheitshinweise finden sich unter der angegebenen Quelle.

BG/BGIA-Empfehlungen für die Gefährdungsbeurteilung nach der Gefahrstoffverordnung

Weichlöten mit dem Lötkolben an elektrischen und elektronischen Baugruppen oder deren Einzelkomponenten (Kolbenlöten)

Schutzmaßnahmen

Lötrauche sind an der Entstehungsstelle abzusaugen. Dazu dienen separate (z. B. Trichter, Hauben) oder an der Spitze des Lötkolbens integrierte Erfassungseinrichtungen. Die Absauganlagen sind als Einzelplatz-, Gruppen- oder Zentralabsaugung ausgeführt. Die abgesaugte Luft ist in Abscheidern zu reinigen und in den Arbeitsraum zurück- oder nach außen abzuführen. Des Weiteren werden so genannte Lötrauchadsorber eingesetzt. Hierbei handelt es sich um Tischgeräte, die so nah wie möglich an die Lötstelle bzw. an den Lötprozess herangeführt werden. Die Lötrauche werden durch einen Ventilator angesaugt und in einem Bauteil mit Aktivkohle abgeschieden [5].

Aufbau Proto-Shield

Bauteile

Überprüfung der Bauteile auf Vollständigkeit:

  • 1x ProtoShield bare PCB
  • 2x Stackable Headers 6-pin
  • 2x Stackable Headers 8-pin
  • 2x 5mm Basic Yellow LEDs
  • 2x 330 Ohm resistors
  • 1x 10k resistor
  • 2x Momentary push buttons
  • 2x 0.1uF Ceramic Capacitors

Bauanleitung Proto-Shield

Eine entsprechende Bauanleitung findet sich unter den folgenden beiden Links:

https://www.sparkfun.com/tutorials/181

http://www.atomicsalad.com/archive/2010/02/02/tutorial_sparkfun_protoshield_for_arduino_assembly_updated.php (Abgerufen am 26.11.2016)

Bauanleitung Schraubleisten/Pieper/Sensor

Die Verbindungen zu den Schraubleisten und Pins sollten auf der Unterseite vom Proto-Shield erfolgen.

Die Schraubleisten sowie der Pieper werden auf die Oberseite von dem Proto-Shield gesteckt. Bei der Positionierung der Schraubleisten ist darauf zu achten, dass die Anschlüsse möglichst freiliegen, sodass ein ungehinderter Anschluss, der drei Kabel ausgehend von dem Sensor (Wasserstandswarner), möglich ist.

Zusätzlich ist der Einsatz von Drahtbrücken erforderlich. Grundsätzlich sind die Buchsenleisten (stackable Headers) mit der jeweiligen Pin-Reihe davor verbunden siehe Zeichnung.

Achtung: Der 5V Anschluss ist unterhalb mit dem davorliegenden Pin verbunden. Die beiden GND Anschlüsse sind jedoch entgegen der Zeichnung nicht mit den davorliegenden Pins verbunden (Abb.3, Abb.4).

Der grundsätzliche Einsatz von Drahtbrücken ist daher zu empfehlen. Diese können mit dem einen Ende in den jeweiligen Anschluss für die Buchsenleiste gesteckt werden und mit dem anderen Ende unter einem 180° Bogen durch den davorliegenden Pin.

Das Löten mit den Verbindungsdrähten auf der Unterseite hin zu den Schraubleisten wird dadurch ebenfalls erleichtert.

Abbildung 3: Bauanleitung
Abbildung 4: Proto-Shield Layout

Batteriestecker

9V-Batterieclip

2,1mm Niedervolt-Steckverbinder

9V Blockbatterie

Auf der folgenden Abbildung ist zu sehen, wie der Niedervolt-Steckverbinder (zweipolig) mit den Anschlüssen vom Batterieclip für eine 9V Batterie verlötet werden muss. Im ersten Schritt muss die äußere Schutzhülle entfernt werden. Hierbei ist auf die korrekte Polung zu achten. Der Pluspol des Steckers befindet sich in der Mitte. Der Minuspol ist an der äußeren Kontaktfläche. Die beiden Pole dürfen sich nach dem Löten nicht berühren, sonst besteht Kurzschlussgefahr [12,13].

Abbildung 5: Polarität Stecker [12]

Aufstecken Proto-Shield

Bevor das Proto-Shield zusammen mit dem Arduino in Betrieb genommen werden kann, sollten die Lötstellen auf der Unterseite mit Isolierband abgeklebt werden, damit es nicht zu einem ungewollten Kontakt zwischen Arduino und Proto-Shield kommt. Achtung Kurzschluss!

Sensorkabel

Die Leitungen, die mit dem einen Ende in den Schraubleisten stecken und mit dem anderen Ende an die Steckverbindungen von dem Sensor gelötet werden, sollten möglichst auf gleicher Länge geschnitten werden. Zum Abschluss empfiehlt es sich die Kabel mit Isolierband zusammenzubinden oder mit Kabelbinder im Abstand von 10cm miteinander zu verbinden.

Realisierung

Hardware

Der Prototyp soll an das kommerzielle Produkt HSWM10000 der Firma Abus angelehnt sein, das wie unten abgebildet aussieht und folgende Spezifikationen (Auszug) hat.

Abbildung 6: Kommerzielles Produkt HSWM10000 der Firma Abus [8,9]
Batterietyp 9 V Blockbatterie
Detektionsverfahren Widerstandsmessung
Kabellänge 1.5 m
Montageort Stellen, an denen Nässe auftreten kann
Schalldruck 85 dB
Spannungsversorgung 9 V

Tabelle 2: Technische Daten HSWM10000 (Auszug) [8]


Um den Prototyp zu realisieren wurde folgende Stückliste (BOM) verwendet:

Bezeichnung Anzahl
Arduino ProtoShield Kit DEV-07914 1
Schraubklemmblock 1.50 mm² Polzahl 2 AKZ350/2-5,08-V PTR Grün 2
Piezo-Summer Geräusch-Entwicklung: 102 dB 3 - 30 V/DC Inhalt: 1 St. 1
Wasser-Sensor Induino SE045 Iduino SE045 1
Litze SiF 1 x 1.5 mm² Schwarz Faber Kabel 030970 Meterware 4
Niedervolt-Steckverbinder Stecker, gerade 5.5 mm 2.1 mm BKL Electronic 072109 1 St. 1
Batterieclip 1 9 V Block Druckknopfanschluss (L x B x H) 26 x 13 x 8 mm Emmerich 9V-I-Clip 1

Tabelle 3: Stückliste (BOM)


Für den Prototyp wird als Sensor der Wasser-Sensor Iduino SE045 verwendet. Der Sensor verfügt über drei Anschlusspins, und zwar für die Versorgungsspannung (VCC und Gnd) und den Sensorpin S [10]. Wenn der gesamte Sensor einer Flüssigkeit bedeckt ist, liefert der Sensor einen Wert von 1023 am analogen Pin. Ist die Hälfte des Sensors bedeckt wird ein Wert von 512 ausgelesen; bei einem Viertel entsprechend 256. Falls der Sensor überhaupt nicht von einer Flüssigkeit bedeckt ist, wird ein Wert nahe 0 ausgelesen.

Die Versorgungspins werden am Proto-Shield an die Schraubleisten für die Versorgung angeschlossen und der Sensorpin an den Schraubleistenpin, der mit dem analogen Pin A0 des Proto-Shields verbunden ist.

Der Alarm wird durch einen Piezo-Summer realisiert [11], der mit dem digitalen Pin D6 und Masse des Proto-Shields verbunden ist. Da der maximale Stromverbrauch des Summers 10 mA beträgt, kann dieser ohne Vorwiderstand betrieben werden, ohne das Gerät zu beschädigen.

Die folgenden Abbildungen zeigen sowohl das Layout des Proto-Shields samt Sensor und Piezo-Summer als auch das Schematic des Wasserstandswarners. Alle Leitungen, die im Layout weiß gekennzeichnet sind, verlaufen auf der Unterseite vom Proto-Shield. Die blauen Leitungen verbinden den Sensor direkt mit den Schraubleisten.

Abbildung 7: Layout des Proto-Shields
Abbildung 8: Schematic des Wasserstandswarners

Software

Die für den Prototyp benötigte Software ist relativ simpel. Es sind lediglich die Variablen für den Messwert, den analogen Eingangspin und den digitalen Ausgangspin, der den Summer auslöst, zu deklarieren und die entsprechenden Werte zuzuweisen. In der Setup Funktion werden dann die serielle Übertragung für den seriellen Monitor initiiert und die PinModes gesetzt. In der Loop Funktion wird schließlich der Messwert alle 500 ms über den analogen Eingang eingelesen und via seriellem Monitor ausgegeben. In einer If-Abfrage wird der Messwert mit einem definierten Referenzwert verglichen. Falls der Messwert über dem Referenzwert liegt, wird der Piezo-Summer eingeschaltet, ansonsten ausgeschaltet. Der gesamte Quellcode ist im Anhang der Dokumentation einzusehen als auch in SVN (Zugriffsrechte erforderlich) im Ordner Software zu finden. Der Programmablaufplan ist in der folgenden Abbildung dargestellt.

Abbildung 9: Programmablaufplan P64 Wasserstandswarner

Ergebnisse

Die Ergebnisse der Entwicklung des Wasserstandswarners wurden in Form von Bildern festgehalten. Die u.a. Bilder zeigen einen Blick ins Innere des zusammengebauten Prototyps und den gesamten Prototyp, der zum Schutz in eine Abzweigdose eingebaut wurde.

Abbildung 10: Wasserstandswarner Innen
Abbildung 11: Wasserstandswarner mit Gehäuse
Abbildung 12: Wasserstandswarner im Einsatz

Das Ergebnis des Projektes wurde ferner in einem Video festgehalten, das unter folgendem Link zu erreichen ist:

https://youtu.be/GI45QxBWHEk

Verzeichnisstruktur des Projektes

Sämtliche Daten sind unter Versionskontrolle mit SVN (Zugriffsrechte erforderlich). Das folgende Bild zeigt einen Überblick über die Verzeichnisse und Dateien.

Abbildung 13: Verzeichnisstruktur des Projektes

Lessons Learned

Das Projekt hat verdeutlicht, wie man mit einfachen Mitteln kommerzielle Produkte "nachentwickeln" kann; unter Umständen sogar zu geringeren Kosten und mit mehr Funktionalität. Ferner konnte während der Implementierung ein tieferer Einblick in die Microcontroller-Programmierung und die Arduino IDE geworfen werden.

Quellen/Referenzen

!!!Für SVN Ordner sind die entsprechenden Zugriffsrechte erforderlich!!!

[1] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Anforderungsmanagement/Anforderungsspezifikation.doc

[2] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Anforderungsmanagement/Anforderungsspezifikation.doc

[3] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Projektmanagement/Projektplan-P64-Wasserstandswarner.mpp

[4] http://www.werkzeuginfos.de/wp-content/uploads/L%C3%B6tkolbenspitzen.png (Abgerufen am 26.11.2016)

[5] Deutsche Gesetzliche Unfallversicherung (Hrsg.): BG/BGIA-Empfehlungen für die Gefährdungsbeurteilung nach der Gefahrstoffverordnung, BGI 790-014, Aktualisierte Fassung 2008, S.8 http://publikationen.dguv.de/dguv/pdf/10002/bgi790-14.pdf (Abgerufen am 26.11.2016)

[6] https://www.sparkfun.com/datasheets/DevTools/Arduino/ProtoShield-v25.pdf (Abgerufen am 26.11.2016)

[7] https://cdn.sparkfun.com//assets/parts/5/6/3/07914-004.jpg (Abgerufen am 26.11.2016)

[8] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Dokumentation/HSWM10000_ger-DE.pdf

[9] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Dokumentation/HSWM10000_INT_SeS20101012.pdf

[10] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Dokumentation/INDUINO_Feuchtigkeitssensor.pdf

[11] https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/64_Wasserstandswarner_Arduino/Dokumentation/716870-da-01-en-PIEZO_SUMMER_102_DB.pdf

[12] http://bauelement.jaramat.ru/dc-stecker-polung/ (Abgerufen am 26.12.2016)

[13] https://upload.wikimedia.org/wikipedia/commons/6/68/AC_adaptor_polarity.png (Abgerufen am 26.12.2016)

→ zurück zum Hauptartikel: Angewandte Elektrotechnik (WS 16/17)