PHP Dashboard für HmIP Smartmeter
09.10.2024
Elektronik | Funk | Software
Der Technik-Blog
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.
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.
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.
PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?
WeiterlesenDer PT100 ist ein sehr präziser industrieller Temperatursensor. In diesem Artikel geht es um den Bau eines Messverstärkers zum Einlesen eines PT100 am Arduino
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved