Datenlogger

Zur Speicherung und Visualisierung der übertragenen Messwerte habe ich den Funkempfänger um einen Datenlogger mit einem Arduino Mega erweitert, der über die I2C-Schnittstelle mit dem Funkempfänger verbunden ist.

Die Auftrennung auf einen eigenen Arduino erfolgte aus folgenden Gründen: Der Uno wäre seitens des benötigten Speicherplatzes hoffnungslos zu klein gewesen und die gleichzeitige Verwendung der Libraries Virtual Wire (für die Funkübertragung) und SPI (für das Ansprechen der SD-Karte) funktionierte, vermutlich wegen Timerkollision, nicht.


Testaufbau Datenlogger mit Funkempfänger:



Für den Datenlogger habe ich folgende Bauteile und Komponenten verwendet:

(die verwendeten Bauteile für den Funkempfänger wurden bereits hier angegeben: Testaufbau Funk)

  • 1 Arduino Mega
  • 1 SD-Shield mit RTC DS1307 (z.B. Adafruit Data Logger Shield)
  • 1 128x64 Graphik-LCD-Anzeige mit ST7920 Controller und SPI-Modul (SPI-Schnittstelle)
  • 1 16er-Folientastatur (4x4 Tasten)
  • 1 Portexpander PCF8574
  • 1 Potentiometer 10 kOhm lin.
  • 2 Widerstände 10 kOhm


Anschluss der 128x64 Graphik-LCD-Anzeige ST7920 (SPI-Schnittstelle):

  LCD Modul ---> Arduino Mega

  (Obere Reihe)        (Untere Reihe)

  SID  ---> D3         GND ---> GND
  CS   ---> D2         ---            ---
  SCK ---> D4         VCC  ---> V5


Aufbau und Anschluss der 16er-Tastatur:

siehe: 16er-Tastatur mit I2C


SD-Shield mit RTC (Real Time Clock):

Das Shield verwendet für die SD-Karte die SPI-Schnittstelle mit den Uno-Pins D10-D13. Beim Mega ist die SPI-Schnittstelle standardmäßig auf die Pins 50-53 verschaltet und daher müssen diese bei Verwendung des Shields softwaremäßig auf die Uno-SPI-Pins umgelegt werden. Wie das geht, ist auf der nächsten Seite unter "Verwendete Libraries" zu lesen.

Der RTC-Baustein auf dem Shield ist über I2C-Bus mit dem Arduino verbunden (I2C-Adresse: 0x68).

Anstelle des Shields können natürlich auch z.B. zwei getrennte Breakout Boards verwendet werden.

  • SD- oder Micro-SD-Breakout Board mit SPI-Schnittstelle
  • RTC-Breakout Board z.B. mit RTC DS1307 oder RTC DS3231 Baustein (I2C-Adresse bei beiden Bausteinen 0x68)


Weiter zum Datenlogger Programm