Arduino Lektion 27: Daten loggen mit dem Logging Shield

Das Data Logging Shield von „Deek-Robot“ wird mit einer RTC  (DS1307)geliefert und hat somit ein extra Fach für eine Knopfzelle (CR1220 – 3V). Des Weiteren besitzt dieses Shield ein Mini SD Karten Schacht.

Deek-Robot - Data logging board
Deek-Robot – Data logging board

Das Data logging Shield hat 8 Pins welche wiefolgt belegt sind:

PINs vom Data logging board
PINs vom Data logging board
PINBeschreibung
 CSChip Select
 MOSIMaster Output, Slave Input
MISOMaster Input, Slave Output
SCKClock
SCLClock Line
SDAData
GNDGround
5VVersorgungsspannung

Der SD Card Slot

Der SD Card Slot ist für Micro SD Cards entworfen. Eine maximale Speicherkarten größe konnte aus keiner Quelle gefunden werden, für die nachfolgenden Beispiele verwende ich eine 2GB Speicherkarte welche im FAT32 Format formatiert wurde.

Micro SD Card
Micro SD Card

Das RTC Modul

Die Real Time Clock (DS1307) dient als Zeitgeber und kann durch den Einsatz einer Pufferbatterie (CR1220) die Zeit vorhalten. Somit kann nach einem eventuellen Stromausfall der Messvorgang mit der korrekten Uhrzeit fortgesetzt werden.

Technische Daten

  • Auflösung: Jahr, Monat, Tag, Stunden, Minuten
  • Schaltjahr kompensation
  • Kalender bis ins 2100 Jahr
  • 1Hz Frequenz

Anschluss am Arduino Nano

Die RTC wird wie folgt angeschlossen:

PIN – Data LoggerArduino Nano
 SDAA4
 SCLA5

Quellcode

Für die Programmierung des DS1307 RTC Moduls benötigt man folgende Bibliotheken (außer man möchte natürlich alles selber schreiben)…

Nachdem die oben genannten Bibliotheken in der Arduino IDE eingebunden wurden sind 2 Beispiele zum DS1307 vorhanden, einmal ReadTime und einmal SetTime. In dem Beispiel 3 dieses Tutorials habe ich dieses Modul implementiert. Durch die Time Bibliothek ist es möglich auch OHNE Batterie die korrekte Uhrzeit zu bekommen, dieses funktioniert jedoch nur wenn der Arduino mit einem PC verbunden wurde.

Technische Daten

  • Betriebsspannung 5V
  • Abmaße 35mm x 35mm

Schaltplan

Data logger Shield am Arduino Nano
Data logger Shield am Arduino Nano
Data loggíng Shield am Arduino Nano
Data loggíng Shield am Arduino Nano
PIN – Data LoggerArduino Nano
 CSdigital D10
 MOSI digital D11
 MISOdigital D12
 SCKdigital D13
 GNDGND
 5V5V

Quellcode

 

lesen von der SD Card

schreiben auf der SD Card

Beispiel 1 – Hallo Welt in CSV

Beispiel 2 – Temperaturwerte in CSV

In diesem Beispiel möchte ich eine Temperatur messen und diese in eine CSV Datei schreiben. Als Sensor verwende ich den Temperatursensor LM35.

Ausgabe in der CSV Datei

Beispiel 3 – Temperatur und Zeit in CSV Datei speichern

Da ich noch keine Batterie für das RTC Modul gefunden habe, lese ich beim Starten des Sketches die Zeit vom Kompilieren ein, dieses ist nicht auf die Sekunde genau da der Schritt des Hochladens des Sketches noch einpaar Sekunden benötigt. Aber für dieses Beispiel ist es ausreichend. Im Beispiel 4 werde ich das ganze erneut mit einer Batterie darstellen.

Für das nachfolgende Beispiel wird unter anderem die Bibliothek TimeLib.h benötigt, diese kann man vom GitHub Repository von PaulStoffregen herunterladen werden.

Ausgabe in der CSV Datei

Beispiel 4 – Temperatur und Zeit in CSV Datei speichern (mit Pufferbatterie)

Nachdem nun die Pufferbatterie erschienen ist kann ich den Quellcode folgendermaßen anpassen:

  • es entfällt die Funktion configureDS1307();
  • es entfällt die Funktion getTime(); & getDate();

Bevor jedoch der Sketch hochgeladen werden kann muss zuerst das Datum und die Uhrzeit geschrieben werden. Dazu öffnet man das Beispielsketch „SetTime“ aus der Bibliothek „DS1307RTC“ und läd dieses einmalig auf den Arduino im Seriellen Monitor sollte man nach dem erfolgreichen Kompilieren und Hochladen dann einen Zeitstempel sehen.

Als nächstes kann nun der Sketch zum schreiben der Temperaturwerte hochgeladen werden. die Uhrzeit geht dabei nicht verloren und wird durch die Pufferbatterie aufrechterhalten / gespeichert.

Download

 

 

 

 

 

5 Gedanken zu „Arduino Lektion 27: Daten loggen mit dem Logging Shield

  • Pingback:NodeMCU - "Einer für (fast) Alles!" - Technik Blog

  • Pingback:Wemos D1 mini Shield: SD Card Shield mit RealTimeClock - Technik Blog

  • Juli 27, 2018 um 09:44
    Permalink

    Guten Tag Herr Draeger

    Ich wollte ihr Datenlogger mit Pufferbatterie nachbauen.
    Ich habe exakt dieselben Komponenten wie Sie.
    Jedoch bekomme ich eine Fehlermeldung beim beschreiben der Zeit.

    „DS1307 Communication Error :-{ Please check your circuitry“

    Nach mir ist die Verkabelung OK.
    Ich bin momentan ziemlich ratlos.

    Freundliche Grüsse Roman

    Antwort
    • Juli 27, 2018 um 11:25
      Permalink

      Hallo Roman,

      sende mir doch mal per E-Mail ein Foto deines Aufbaus. Es sieht nach der Fehlermeldung so aus das ggf. ein Pin falsch gesetzt / gesteckt ist.

      Gruß,

      Stefan

      Antwort
    • Juli 29, 2018 um 10:00
      Permalink

      Pullups am I2C vergessen? Die sind nämlich nicht auf dem Nano bestückt. Einen 4k7 über 5V auf SDA und einen an SCL bestücken, dann sollte es gehen.

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.