Sonntag, 1. November 2015

Sensordaten auf SD Karte speichern

In diesem Post möchte ich ein kleines Anwendungsbeispiel zur Verwendung von SD Karten zum Speichern von Sensorwerten liefern. Dabei möchte ich nur mit dem Arduino die Temperatur messen, und dann die Temperatur mit der aktuellen Zeit auf der SD Karte speichern.

Die Hardware

Auf der Hardware Seite benötigt man nur einen Arduino (Klon) (hier bei AZDelivery), sowie einen SD Card Reader samt SD Karte. Dieser Sketch funktioniert prinzipiell mit jedem SD Card Reader, da sie alle über SPI mit dem Arudino kommunizieren. Dabei kann ich euch diesen SD Card Reader auf Amazon empfehlen.
Wie man den Arduino mit dem SD Card Reader verbindet, habe ich bereits hier erklärt.

Zur Messung der Temperatur benötigt man durch einen kleinen Trick keine Zusatzhardware, sondern nur den Arduino. Wie das geht habe ich in diesem Post erklärt.

Der Sketch

Um jeweils die aktuelle Uhrzeit zu haben, muss man vor dem Einsatz des Sketches die aktuelle Uhrzeit in der Methode setTime() angeben. Das ist die einfachste und kostengünstigste Art. Dabei kann die Uhr jedoch bei längeren Einsätzen leider start abweichen. Welche Arten die Zeit zu bekommen es für den Arduino gibt, habe ich bereits hier erklärt.

Um die Temperatur zu messen kann man einfach die vordefinierte Funktion des verlinkten Post nehmen und anwenden, durch aufrufen von readTemp(). 

Um die Werte nun auf die SD Karte zu speichern, verkette ich das Datum als String mit der Uhrzeit als String und der gemessenen Temperatur. 
Der gesamte Arduino Sketch sieht so aus:

Nun wird jede Minute die aktuelle Raumtemperatur als weitere Zeile in das Textdokument TEMP hinzugefügt.

Falls man vorhat die Daten genauer auszuwerten, sollte man überlegen sie in eine SQL Tabelle einzufügen. Dadurch kann man Abfragen nach dem Typus: Wann war es wärmer als 25 °C, oder was ist die Durchschnittstemperatur um 20:00 stellen. 

Keine Kommentare:

Kommentar veröffentlichen