Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

In diesem Arduino-Tutorial lernen Sie, wie Sie ein SD-Kartenmodul mit dem Arduino-Board verwenden. In Kombination mit dem DS3231 Real Time Clock Modul erstellen wir ein Datenlogging-Beispiel: Wir speichern Temperatursensordaten auf der SD-Karte und importieren sie in Excel, um ein Diagramm zu erstellen. Sie können das folgende Video ansehen oder die schriftliche Anleitung unten lesen.

Funktionsweise

Sehen wir uns zuerst das SD-Kartenmodul an. Es arbeitet mit Standard-MicroSD-Karten (Betriebsspannung 3,3 V). Daher besitzt das Modul einen Spannungsregler und Level-Shifter, damit es an den 5-V-Pins des Arduino betrieben werden kann.

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Das Modul hat sechs Pins: zwei für die Stromversorgung (VCC, GND) und vier für die SPI-Kommunikation. Hier der Anschluss an den Arduino:

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Beachten Sie, dass jedes Arduino-Board andere SPI-Pins hat, die entsprechend verbunden werden müssen.

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Benötigte Komponenten:

  • Micro SD-Kartenmodul
  • Arduino Board
  • Steckbrett und Jumper-Kabel

Arduino SD-Kartenmodul Code

Nun programmieren wir den Arduino. Hier ein einfacher Code:

/* 
 * Arduino SD Card Tutorial Example 
 * by Dejan Nedelkovski, www.HowToMechatronics.com 
 */
#include <SD.h>
#include <SPI.h>
File myFile;
int pinCS = 53; // Pin 10 bei Arduino Uno
void setup() {
  Serial.begin(9600);
  pinMode(pinCS, OUTPUT);
  // SD-Karten-Initialisierung
  if (SD.begin()) {
    Serial.println("SD card is ready to use.");
  } else {
    Serial.println("SD card initialization failed");
    return;
  }
  // Datei erstellen/öffnen
  myFile = SD.open("test.txt", FILE_WRITE);
  if (myFile) {
    Serial.println("Writing to file...");
    myFile.println("Testing text 1, 2 ,3...");
    myFile.close();
    Serial.println("Done.");
  } else {
    Serial.println("error opening test.txt");
  }
  // Datei lesen
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("Read:");
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    myFile.close();
  } else {
    Serial.println("error opening test.txt");
  }
}
void loop() { }Code language: Arduino (arduino)

Code-Beschreibung: Wir binden die Standardbibliotheken SD und SPI ein, erstellen ein File-Objekt und definieren den Chip-Select-Pin des SPI-Bus (Pin 53 beim Arduino Mega, Pin 10 beim Uno). Da der Code nur einmal ausgeführt werden soll, steht alles im setup(), loop() bleibt leer.

Zuerst starten wir die serielle Kommunikation und definieren den Chip-Select-Pin als Output (muss Low sein für SPI-Kommunikation). Mit SD.begin() initialisieren wir die SD-Karte – bei Erfolg wird „SD card is ready to use.“ ausgegeben, sonst Fehlermeldung und Programmende.

Mit SD.open("test.txt", FILE_WRITE) erstellen wir eine neue Datei (oder öffnen bestehende). Bei Erfolg schreiben wir per myFile.println() Text hinein und schließen die Datei mit close(), um Daten physisch zu speichern.

Zum Lesen öffnen wir die Datei erneut mit SD.open("test.txt"), lesen zeichenweise per myFile.read() in einer while-Schleife mit myFile.available() und geben alles auf dem Serial Monitor aus. Am Ende Datei schließen.

Nach dem Hochladen erscheint bei Erfolg folgendes im Serial Monitor:

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Die SD-Karte wurde initialisiert, Schreiben und Lesen war erfolgreich. Am Computer findet man die erstellte „test.txt“ mit dem Text.

Arduino SD-Karten Datenlogging

Nun ein interessanteres Beispiel: Temperaturdaten logging. Dafür nutzen wir das DS3231 Real Time Clock Modul, das einen eingebauten Temperatursensor hat. Details zum Anschluss und zur Nutzung finden Sie in meinem vorherigen Tutorial.

Nach dem Anschließen beider Module an den Arduino, hier der Code:

/* 
 * Arduino Temperature Data Logging 
 * by Dejan Nedelkovski, www.HowToMechatronics.com 
 */
#include <SD.h>
#include <SPI.h>
#include <DS3231.h>
File myFile;
DS3231 rtc(SDA, SCL);
int pinCS = 53; // Pin 10 bei Arduino Uno
void setup() {
  Serial.begin(9600);
  pinMode(pinCS, OUTPUT);
  if (SD.begin()) {
    Serial.println("SD card is ready to use.");
  } else {
    Serial.println("SD card initialization failed");
    return;
  }
  rtc.begin();
}
void loop() {
  Serial.print(rtc.getTimeStr());
  Serial.print(",");
  Serial.println(int(rtc.getTemp()));
  myFile = SD.open("test.txt", FILE_WRITE);
  if (myFile) {
    myFile.print(rtc.getTimeStr());
    myFile.print(",");
    myFile.println(int(rtc.getTemp()));
    myFile.close();
  } else {
    Serial.println("error opening test.txt");
  }
  delay(3000);
}Code language: Arduino (arduino)

Code-Beschreibung: Wir binden die Bibliotheken für beide Module ein, erstellen die Objekte und initialisieren sie im setup().

Im loop() geben wir per Serial.print() Zeit und Temperatur auf dem Serial Monitor aus, getrennt durch Komma und Zeilenumbruch nach dem Temperaturwert. Dieses Format erleichtert den Import in Excel. Temperaturwerte werden in Integer umgewandelt.

Dieselben Werte werden in die Datei „test.txt“ geschrieben. Am Ende eine Verzögerung von 3000 ms als Aufzeichnungsintervall.

Nach dem Hochladen speichert der Arduino alle 3 Sekunden Temperaturwerte. Nach einer Weile kann man die SD-Karte am Computer auslesen.

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Für ein Excel-Diagramm importieren wir die Datei: Im Menü „Daten“ → „Aus Text“ → Datei auswählen → „Getrennt“ → Weiter → Komma als Trennzeichen wählen → Fertigstellen. Zeit und Temperatur landen in getrennten Spalten. Beide Spalten markieren → „Einfügen“ → „Liniendiagramm“ → Diagramm mit Temperaturwerten alle 3 Sekunden.

Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung

Das war dieses Tutorial. Fragen gerne in den Kommentaren!

Herstellungsprozess

  1. IXON Cloud: Maschinendaten-Logging & Dashboards in Minuten meistern
  2. Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
  3. Arduino Energiemonitor & Datenlogger (Dr. Wattson, MCP39F521) – Schritt-für-Schritt
  4. LCD-Animationen & Spiele mit Arduino UNO erstellen
  5. Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
  6. Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
  7. Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen
  8. Arduino Nano Fingerabdruck-Sensor-Projekt – Schritt-für-Schritt-Tutorial
  9. Mini-Klavier mit Arduino UNO bauen – Schritt-für-Schritt-Anleitung
  10. Arduino Einsteiger Tutorial #1: Erstes Projekt (Blink)