Projekt 64: Wasserstandswarner-Aufsatz für Arduino
Autor: Lars Christian Naujocks | Mike Westhoff
Betreuer: Prof. Göbel | Prof. Schneider
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 Waserstandswarner 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).
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
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).
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.
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.
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
(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.
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.
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
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.
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.
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.
Das Ergebnis des Projektes wurde ferner in einem Video festgehalten, das unter folgendem Link zu erreichen ist:
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
[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)