preloader

Auf AEQ-WEB Suchen

AEQ-WEB | Blog

Arduino Datenlogger SD Karten Modul

Arduino Datenlogger

5 Jahre AEQ-WEB - Zeig dein Projekt

Es gibt einen erweiterten Beitrag zu diesem Artikel: Arduino Datenlogger Shield

Zu diesem Artikel gibt es auch ein Video auf Youtube: Arduino SD-Card Datenlogger

Mit ganz einfachen Komponenten kann man einen Datenlogger bauen. Dazu wird ein Arduino Board sowie ein SD-Card Modul und der gewünschte Sensor, welcher die Daten erfassen soll benötigt. Das Standortprogramm schreibt alle 5 Sekunden einen Testwert in ein TXT-File auf der SD Karte. Die notwendigen Librarys sollten bei diesem Beispiel bereits mit der Installation des Arduino IDEs vorhanden sein.

SD Karte vorbereiten

Damit der Datenlogger funktioniert, benötigen wir eine SD-Karte. Diese sollte entweder als FAT-16 oder FAT-32 formatiert sein. Ob das Schield eine SD-Karte oder microSD-Karte verwendet spielt normalerweise keine Rolle. Zur maximalen unterstützten Speicherkapazität gibt es derzeit keine Information, jedoch funktionierte bei diesem Test eine Speicherkarte mit 8 GB hervorragend.

Wie der Code funktioniert

Mit unserem Quellcode haben wir bereits eine fertige Datenlogger-Lösung. Am Anfang des Quellcodes wird das Logintervall eingetragen. Standardmäßig geschieht das alle 5 Sekunden. Der größte Vorteil von unserem Code ist es, dass wir nicht einfach die Mainloop für 5 Sekunden pausieren, sondern die Daten alle 5 Sekunden mit einem Cronjob speichern. Dadurch kann der Mikrocontroller weitere Aktionen ungehindert durchführen. Wenn das Programm startet wird als erstes überprüft, ob bereits auf der SD-Karte ein Textfile vorhanden ist. Wenn nicht, dann wird automatisch ein Textfile erstellt. Bei jedem Log wird in der Textfile eine neue Zeile erstellt, welche im folgenden Format gespeichert wird: "PARAMETER,RUNTIME". Der Parameter ist der "mvalue" String, was für unseren Messwert (Temperatur, Spannung etc.) steht. Der zweite Wert "RUNTIME" ist die Laufzeit des Controllers in Sekunden. Wenn man sich die Startzeit des Programms notiert, kann man sich die genaue Uhrzeit jedes einzelnen Messwertes berechnen. Dadurch erspart man sich ein Zeitmodul bzw. viel zusätzlichen Quellcode. Das eigene Programm, welches die Daten einliest wird nicht in die "void loop()" sondern in das "void youraction()" geschrieben. Dadurch wird es mit dem Cronjob gesteuert, was zu einer zusätzlichen Effizienz führt.

Arduino SD-Card
Download

Share:
thumbnail
30.05.2018
Arduino Anemometer bauen

Auf dieser Seite geht es um die Konfiguration eines Anemometer Windrades mit dem Arduino Board. Welche Bauteile und Software man braucht, erfährt ihr hier

Alex @ AEQ-WEB
thumbnail
02.06.2018
Arduino Wetterstation

Hier gibt es eine professionelle Anleitung zum Bau einer Arduino Wetterstation. Temperatur, Wind, Feuchte & Luftdruck werden per HTTP an den Server gesendet

Alex @ AEQ-WEB