Projektidee

In unserem kleinen Projekt werden wir einen kleinen Datenlogger bauen. Dieser soll über eine längere Zeit, zum Beispiel drei, vier Tage oder eine Woche, Umweltdaten, wie Temperatur und Helligkeit, erfassen sowie die Uhrzeit der Erfassung registrieren. Es ist möglich die Daten via USB UART Bridge fortlaufend an den PC zu senden. Wir wollen unseren PC jedoch nicht so lange eingeschaltet lassen. Also speichern wir die erfassten Daten in einer Datei auf einer µSD-Karte. Als Dateiformat empfiehlt sich *.csv. Dies lässt sich sehr komfortabel in EXCEL oder in einem äquivalenten Tabellenkalkulationprogramm auswerten. Zusätzlich überwachen wir mit einer kleinen Alarmanlagenfunktion ob der Datenlogger bewegt wurde. Wenn die Lage des Datenloggers verändert wird, soll über den Speaker ein akustischer Alarm ausgegeben werden. Die Daten sind einmal pro Minute zu erfassen.

Vorbereitungen

Am besten ist, wir bauen unseren Datenlogger fest verdrahtet auf. Das bereits vorgestellte Erweiterungsboard bietet Lochrasterfelder für benuzerspezifische Hardwareerweiterungen. Um die Temperatur und die Zeit erfassen zu können, sollen eine I²C Echtzeituhr und ein I²C Temperatursensor das System erweitern. Wer mag kann das Ganze neben dem bestehenden System noch mal neu aufbauen.

Einkaufsliste: (Preise 01/13)

zusätzlich, wenn Sie ihr Board nicht verbasteln wollen:

  • 1 x mySTM32 F4 Discovery PLUS, mit fertig bestücktem mySTM32-Board-F4D und myUSBtoUART, 49,50 Euro

oder:

Systementwurf

Das System kann entsprechend des folgenden Blockdiagramms entweder aus den Standard-Add-On's zusammengesteckt werden oder die zusätzlichen Komponenten werden auf den Rasterfeldern fest mit den entsprechenden Anschlüssen verlötet.

Realisierung

Dieses kleine Projekt hat trotz seiner begrenzten Hardware und des recht geringen Funktionsumfangs bereits so viel Komplexität, dass es sich lohnt die Realisierung in mehreren Iterationen durchzuführen.

Test und Anwendung des Gesamtsystems

Der Datenlogger soll jetzt nur noch ein mal pro Minute einen Datensatz erfassen. Eine zwar nicht sonderlich elegante Lösung, aber die einfachste Variante ist, die Wartezeit im Main-Loop-Zyklus von einer Sekunde auf 60 Sekunden zu erhöhen.

onWork:
...
waitMs(60000);

Übersetzen Sie das Programm. Korrigieren Sie ggf. Schreibfehler. Übertragen Sie das lauffähige Programm in den Programmspeicher des Controllers und starten Sie das Werkzeug ControlCenter.

  1. Erstellen (Kompilieren und Linken)
  2. Brennen

Positionieren sie den Datenlogger an einer ausgesuchten Stelle. Lassen Sie die Datenerfassung über einen Tag laufen. Werten Sie danach die aufgezeichneten Daten mit einer Tabellenkalkulation aus.

Videozusammenfassung

Erlernte und gefestigte Arbeitsschritte:

  1. eine ARM C++ Applikation entwerfen, erstellen und übertragen
  2. das UML-Projekt schrittweise erweitern
  3. den SiSy-LibStore benutzen
  4. Die Anwendung immer testen

Und hier diesen Abschnitt wiederum als Videozusammenfassung.

Übung

Erweitern Sie das kleine Projekt um drei LEDs. Die grüne LED soll den Zustand OK anzeigen. Die rote LED Fehler als Blink-Code. Die gelbe LED soll kurz aufblinken wenn ein Schreibvorgang erfolgt ist.

Fehlercodes:

  • 1 x blinken Datei konnte nicht angelegt werden.
  • 2 x blinken Datei konnte nicht geöffnet werden.
  • 3 x blinken Datei das Board wurde bewegt.

Datenblätter Projekt X

Nächstes Thema