Systemspezifikation

Aus den Anforderungen wird im nächsten Schritt die Spezifikation erstellt. Hier mache ich mir Gedanken über das System, wie es in die Realität umgesetzt werden soll. Das hilft dann beim Codieren, denn da muss ich mir nur noch überlegen wie ich die spezifizierte Komponente in Code umsetze.

1 Einleitung
Es soll eine Messtechnik erstellt werden für die Messung von Luftfeuchtigkeit und Temperatur in Innenräumen. Zu weiteren Zwecken wie Fernüberwachung und Langzeitmessungen sollen die Messwerte aus verschiedenen Räumen auf einem Server gesammelt werden.

2 Ausgangssituation und Zielsetzung
Diese Messtechnik für Luftfeuchtigkeit und Temperatur ist vorgesehen als ein Übungsprojekt. Alle Schritte der Softwareentwicklung von den Anforderungen bis zum laufenden Prototypen sollen hierin vorgestellt werden. Als Hardware wird ein gängiges COTS Mikrocontroller – Board eingesetzt und einige COTS Erweiterungen dazu. Die Sensoren werden dann selbst auf einer Lochraster-Platine aufgebaut und mit dem Board verbunden.
Mit der Erweiterung einer Ethernet Schnittstelle sollen auch die Möglichkeiten des „Internet der Dinge“ aufgezeigt werden.

3 Funktionale Anforderungen

3.1 Anwendungsbereich
Der Einsatz ist für innerhalb von Wohnräumen oder Büroräumen vorgesehen.

3.2 Mechanischer Aufbau
Als Aufbau ist ein Prototyp als Laboraufbau aus mehreren mittels elektrischer Steckverbinder zusammengesteckter Leiterplatten geplant.

3.3 Elektrische Angaben
Die Stromversorgung erfolgt wahlweise über ein 220 Volt Steckernetzteil, passend zum Board. Oder eine Leiterplatte mit Batterie oder Akku, ebenfalls passend zum Board.

3.4 System Eingänge und Ausgänge

3.4.1 Eingänge

3.4.1.1 Temperatur und Luftfeuchtigkeit
Es wird ein kombinierter Sensor vom Typ DHT11 benutzt. Der Messbereich liegt für die Temperatur von 0 Grad Celsius bis 50 Grad Celsius.
Der Messbereich liegt für die Luftfeuchtigkeit von 20 Prozent relativer Feuchte bis 90 Prozent relativer Feuchte. Diese Werte wurden dem Datenblatt entnommen.

3.4.1.2 Steuertasten
Die Steuertasten sind auf dem LCD Displayshield vom Typ Adafruit LCD Shield KIT 16×2 Character enthalten.

Es sind folgende Tasten vorhanden:
Cursor links
Cursor rechts
Cursor aufwärts
Cursor abwärts
Auswahl
Reset

Die Steuertasten werden nur für die Eingabe oder Änderung von Datum und Uhrzeit verwendet. Sind also nur in der Zeile für diese Angaben wirksam. Mit folgender Wirkung:

– Cursor links bewegt sich in der Zeile um eine Stelle nach links je Tastendruck. Die Felder mit Punkten oder Doppelpunkten werden dabei übersprungen. Ist der linke Rand erreicht, bleibt der Cursor dort stehen.

– Cursor rechts bewegt sich in der Zeile um eine Stelle nach rechts je Tastendruck. Die Felder mit Punkten oder Doppelpunkten werden dabei übersprungen. Ist der rechte Rand erreicht, bleibt der Cursor dort stehen.

– Cursor aufwärts zählt die Ziffer, die bereits dort angezeigt wird, je Tastendruck um eins nach oben. Da nur Ziffern dort stehen können ist die ‚9‘ die höchste darstellbare Ziffer, die angezeigt werden kann. Ist diese erreicht, bleibt der Wert, wie er ist.

– Cursor abwärts zählt die Ziffer, die bereits dort angezeigt wird, je Tastendruck um eins nach unten. Da nur Ziffern dort stehen können ist die ‚0‘ die kleinste darstellbare Ziffer, die angezeigt werden kann. Ist diese erreicht, bleibt der Wert, wie er ist.

– Auswahl überträgt die eingestellten Werte für Datum und Zeit in den RTC. Der Blinkmodus wird dabei ausgeschaltet.

– Reset setzt den Prozessor und damit die Software mit einem Restart zurück.

– Blinkmodus wird eingeschaltet, sobald eine Cursortaste das erstemal gedrückt wird. Erfolgt nach einer Minute keine weitere Eingabe, schaltet der Blinkmodus wieder aus und die Ausgabe setzt sich zurück auf die Werte im RTC. Oder Auswahl wird gedrückt und die Werte damit übernommen, auch danach wird der Blinkmodus ausgeschaltet. Blinkmodus gilt jeweils für die aktuell gewählte Spalte / Stelle / Feld in der Zeitzeile.

– Die besonderen maximal Werte für Stunden, Tage, Monate zu beachten ist Aufgabe des Bedieners. Die automatische Überwachung wird in einer späteren Version implementiert.

3.4.1.3 Real Time Clock (RTC) Baustein
Es wird ein RTC Baustein vom Typ DS1302 benutzt. Er wird vom Prozessor ausgelesen, um die korrekten Werte für Datum und Uhrzeit anzuzeigen. Einzelheiten zum Lesen vom RTC sind dem entsprechenden Datenblatt zu entnehmen.

3.4.1.4 Network Time Protocol (NTP)
Ist eine Ethernet-Karte vorhanden wird die Uhrzeit beim Starten der Software aus dem Internet von einem NTP Server geholt.

3.4.2 Ausgänge

3.4.2.1 Display
Es wird ein LCD Display mit 2 Zeilen mit jeweils 16 Zeichen Ausgabe genutzt.

3.4.2.1.1 Ausgabemaske auf dem LCD Display
1. Zeile (Zeitzeile): TT.MM.JJ SS:MM
2. Zeile(Messwertzeile): xx% xx`C

3.4.2.1.2 Formate für die Anzeige
Luftfeuchtigkeit in Prozent: xx%
Temperatur in Grad Celsius: xx`C
Datum: TT.MM.JJ
Uhrzeit: SS:MM

3.4.2.2 Real Time Clock (RTC)
Es wird ein RTC Baustein vom Typ DS1302 benutzt. Er wird vom Prozessor geschrieben, um die korrekten Werte für Datum und Uhrzeit einzutragen. Einzelheiten zum Schreiben auf den RTC sind dem entsprechenden Datenblatt zu entnehmen.

3.4.2.3 MQTT Client
Ist eine Ethernet – Karte vorhanden, werden die Messwerte mit dem MQTT Protokoll auf einem Server abgelegt. Beim Anmelden am Server mit den wichtigsten Daten zum Sensor, wie z.B. Standort, Art des Sensors, Messbereich.
Die Messwerte mit Datum und und Ortszeit werden dann zyklisch alle 10 Minuten zum Server übertragen.

3.5 Systemstart
Startet das System, wird erst der RTC mit dem Datum 00.00.00 00:00 initialisiert. Ist eine Ethernetverbindung vorhanden, so wird versucht über NTP gültige Werte einzulesen. Wenn das gelingt, werden diese ebenfalls im RTC eingetragen. Gelingt das nicht, so wird der Cursor in dieser Zeile auf die äusserste Stelle links gesetzt und der Modus auf Blinken (jeweils die aktuelle Spalte). Ebenfalls wird eine Anmeldung auf dem MQTT Server versucht. Ist diese Anmeldung erfolgreich, werden zyklisch die Messwerte dorthin übertragen.

4 Nicht-funktionale Anforderungen

4.1 Qualitätsanforderungen

4.1.1 Zuverlässigkeit und Schutz
Das System muss jederzeit zuverlässig reagieren. Es darf nicht zu Systemabstürzen oder Datenverlust kommen. Bei einem Ausfall ist sicherzustellen, das die letzten Messwerte noch verfügbar sind und angezeigt werden bis zur nächsten Aktualisierung.

4.2 Systemerstellungsanforderungen

Die vorhandenen Programmierrichtlinien sind einzuhalten.

4.3 Technische Anforderungen

– Eine Client / Server Architektur ist konzeptionell vorzusehen.

– Die Implementierungssprache ist C.

– Das Zielsystem der Clientanwendung ist ein embedded System (Mikrocontroller). Als Zielsystem für den Server ist Windows vorgesehen. Das verwendete Protokoll ist MQTT.

– Das System soll komponentenbasiert entwickelt werden, damit die Systeme einfacher wartbar und erweiterbar bleiben.

4.4 Anforderungen an die Logistik

– Das System muss einschließlich seiner Software- Umgebung in geeigneter Weise dokumentiert sein. Nachfolgende Bearbeiter, die nicht an der Entwicklung beteiligt waren, sollen das System auf Grundlage dieser Dokumentation einfach ausbauen und und warten können.

– Die Dokumentation soll den Fachmann in die Lage versetzen, die Struktur des Systems, den Ablauf der Datenverarbeitung, die Funktionen der einzelnen Einheiten und die Bedeutung von Daten zu verstehen.

– Die Beschreibung der Bedienoberfläche muss eine Bedienungsanleitung und eine Beschreibung von Menüs und Dialogen enthalten.

5 Risikoakzeptanz

5.1 mögliche Risiken

5.1.1 Zu erstellendes System / Technik / Technologie
– Sind die Anforderungen an das System stabil, klar und machbar?
-> Ja
– Sind die Schnittstellen des Systems präzise?
-> Ja
– Ist das System testbar?
-> Ja
– Wird eine neue Technologie eingesetzt?
-> Nein

5.1.2 Organisation / Arbeitsumgebung
– Sind die benötigten Entwicklungsumgebungen vorhanden?
-> Ja

5.1.3 Bewertung der Risiken
Es ist ein einfaches System mit bereits bekannten Komponenten. Es ist kein Risiko zu erkennen.

6 Gesamtsystemarchitektur

6.1 Kontext
contextdiagramm

6.2 Datenflussdiagramm
dfd0

7 Schnittstellenübersicht

I2C – Display, DHT11
Seriell – DS1302
Ethernet – NTP, MQTT
Einzelheiten sind den Datenblättern zu entnehmen.

8 Abnahmekriterien

– Nach dem Systemstart ohne Netzwerkverbindung stehen
Messwerte für Temperatur und Luftfeuchte in der Messwertzeile und 00.00.00 00:00 in der Zeitzeile.

– Die Tasten funktionieren so, wie unter „Steuertasten“ beschrieben.

– Die Messwerte in der Messwertzeile werden mit externen Messgeräten überprüft und müssen mit den internen übereinstimmen.

– Nach dem Systemstart mit Netzwerkverbindung stehen Messwerte für Temperatur und Luftfeuchte in der Messwertzeile und gültige Werte für das aktuelle Datum und aktuelle Uhrzeit in der Zeitzeile.

– Nach dem Systemstart mit Netzwerkverbindung werden, nach gültiger Anmeldung, initial die Parameter für MQTT auf dem Server eingetragen.

– Im Systemlauf mit Netzwerkverbindung werden fortlaufend die Messwerte für Temperatur und Luftfeuchte, sowie die Messzeit mit Datum und Ortszeit auf dem MQTT Server eingetragen.

Sind alle diese Kriterien erfüllt, gilt das System als abgenommen.

9 Abkürzungsverzeichnis

COTS – Customer Off The Shelf
LCD – Liquid Crystal Display
MQTT – Message Queue Telemetry Transport
NTP – Network Time Protocol
RTC – Real Time Clock
Links und Literaturhinweise

Anforderungen

Datenblatt Real Time Clock DS1302

Klicke, um auf DS1302.pdf zuzugreifen

Datenblatt Luftfeuchte / Temperatur Sensor DHT11

Klicke, um auf dht11.pdf zuzugreifen

Klicke, um auf DHT11.pdf zuzugreifen

Adafruit LCD Shield 16×2 Character
https://www.adafruit.com/product/714

Arduino Ethernet Shield 2
http://www.arduino.org/products/shields/arduino-ethernet-shield-2

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.