INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Wetterstation Daten zu CSV speichern
22.07.2015, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2015 12:37 von linuxman.)
Beitrag #1
Brick Arduino Wetterstation Daten zu CSV speichern
Hallo Zusammen

Kurzer Vorspann: Ich bin in einem (freiwilligen) Projekt dabei (von der Schule) bei dem wir eine Arduino Yun Wetterstation bauen und programmieren. und bin eigentlich C Programmier Neuling, auch die andere Person im Projekt kann zwar C Coden, jedoch nur Sachen die mit Inputs und Outputs zu tun haben (er ist Automatiker und als Hobby Elektroniker).

Die Sensoren laufen alle schon und geben Werte auf die serielle Schnittstelle aus.

Ich als Informatiker muss nun in C für den Arduino Yun eine Funktion log() schreiben die die Werte als input nimmt und dann mit einem Timestamp davor in ein CSV abspeichert... Da ich nur wenig Ahnung von C Programmieren habe, fällt mir das irgendwie schwer.

So sollte es abgespeichert werden (ohne die Klammern natürlich):
2015-07-22 11:10 (String oder Timestamp), 33.35 (Double Wert)

Damit es später auf einen Server Synchronisiert wird und dann in einer Datenbank abgespeichert wird.

Hier mein (schlechter) Code Anfang... Ich dachte ich könnte es irgendwie als Komandozeilenparameter übergeben. Im Anhang seht ihr das ganze File auch mit dem was der Elektroniker geschrieben hat:

Code:
// Loggt auf SD Card (achtung funktioniert noch nicht!!!)
void log(int argc, double *argv[])
{
    String dataString;
    dataString += getTimeStamp();
    dataString += ",";
    int i;
    for(i=0; i < argc; i++)
    {
        printf("argv[%d] = %s ", i, argv[i]);
        printf("\n");        
    }

//    dataString+= argv[i];
//    dataString+="\n";

    File dataFile = FileSystem.open("/mnt/sd/datalog.csv", FILE_APPEND);
    if (dataFile)
    {
        dataFile.println(dataString);
        dataFile.close();
        Serial.println(dataString);
    }

    else
    {
        Serial.println("error opening datalog.txt");
    }
    delay(15000);
    //printf(argv[])
}

// Funktion fuer TimeStamp von Arduino Website...
String getTimeStamp()
{
  String result;
  Process time;
  // date is a command line utility to get the date and the time
  // in different formats depending on the additional parameter
  time.begin("date");
  time.addParameter("+%D-%T");  // parameters: D for the complete date mm/dd/yy
                                //             T for the time hh:mm:ss    
  time.run();  // run the command

  // read the output of the command
  while(time.available()>0) {
    char c = time.read();
    if(c != '\n')
      result += c;
  }

  return result;
}

Vielen Dank im Voraus für eure Hilfe und falls Fragen da sind, einfach fragen Smile


Angehängte Datei(en)
.ino  Erster_Erfolg_optimiert.ino (Größe: 4,23 KB / Downloads: 53)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2015, 13:24
Beitrag #2
RE: Arduino Wetterstation Daten zu CSV speichern
Ich glaube dieses Thema kann gelöscht werden, ich habe es selber herausgefunden Smile mit der genialen Bridge library es geht alles...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2015, 14:05
Beitrag #3
RE: Arduino Wetterstation Daten zu CSV speichern
Kannst du das ein bisschen vorstellen? Oder hast ein paar Links dazu? Ich habe noch nichts von dieser Bibliothek gehört.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.08.2015, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2015 14:22 von linuxman.)
Beitrag #4
RE: Arduino Wetterstation Daten zu CSV speichern
(20.08.2015 14:05)Scherheinz schrieb:  Kannst du das ein bisschen vorstellen? Oder hast ein paar Links dazu? Ich habe noch nichts von dieser Bibliothek gehört.

Gruß

Hallo Scherheinz

Es ist eine Library für die Kommunikation vom Atmega zum Linux. Man kann also direkt vom C Programm aus, Linux Prozesse ausführen. Hier der Link den wir für unser Schulprojekt genutzt haben.

https://www.arduino.cc/en/Tutorial/YunDatalogger

Ich finde diese Bridge Library super! Smile Wir speichern damit auch unsere CSV Daten von der Wetterstation mit einer Log() Funktion (ähnlich wie beim Yun Datalogger Link beschrieben). Zusätlich starten wir im C File direkt noch ein Rsync der unsere CSV Daten direkt zum Server ohne Passwort Eingabe versendet. Dies funktioniert, da wir den Dropbear SSH Client entfernt, und den standard OpenSSH Client installiert haben (dies weil es Inkompatibilitäten gab).

Rein theoretisch hätten wir auch anstelle von diesem generierten Timestamp den die Jungs auf dieser Yun Datalogger Seite zeigen, auch mit der Bridge Library einen "date" Befehl absetzen können und diesen dann ins CSV speichern. Momentan haben wir es aber noch so belassen.

Falls weitere Fragen sind einfach fragen. PS: Ich bin in unserem Projekt nur der IT'ler der die Kommunikation von Yun (mit Log Funktion) zum Server und zur Datenbank herstellt.

Für weitere Inputs/Outputs Fragen zu unserer Wetterstation müsste ich auch unseren Automatiker/Elektroniker im Projekt fragen.

Und wenn ihr zufälligerweise in der Ostschweiz wohnt, könnt ihr das Projekt vom 27.08.15 bis 31.08.15 an der Ostschweizer Berufsaustellung anschauen! diese ist beim OLMA Messegelände
Den die Besonderheit an der Wetterstation ist, dass alles selbst gemacht wurde. Das Gehäuse wurde auch mit einem CAD Programm entworfen und dann im 3D Drucker und in der CNC Fräse entwickeln.

LG Linuxman Smile

EDIT: hier unsere Webseite (momentan noch in Bearbeitung und mit DynDNS)
Skills_Projekt_Wetterstation2015
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.08.2015, 03:17
Beitrag #5
RE: Arduino Wetterstation Daten zu CSV speichern
Schönes Projekt. Ich hab bis vor kurzem sowas ähnliches mit dem Mega gemacht aber ohne eine eigene Sensoren. Hab eine fertige Wetterstation ausgelesen und auch als CSV auf einem Server die Daten gespeichert, hat super funktioniert bis die Wetterstation ihren Geist aufgegeben hat...

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Daten Visualisieren MeisterQ 12 529 01.12.2016 19:36
Letzter Beitrag: MeisterQ
  Data Logger Daten auf SD Card schreiben Crichton 12 262 22.11.2016 18:32
Letzter Beitrag: Crichton
  I2C Daten übertragen Gandalf 3 209 04.11.2016 13:20
Letzter Beitrag: hotsystems
  Daten über USB verarbeiten Felix91 10 318 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.531 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Fehler beim Speichern von Projekten Manni66 16 679 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Daten an mysql diode1990 24 1.293 31.07.2016 10:29
Letzter Beitrag: Gandalf
  NRF24L01,Empfangene Daten auswerten Marc2014 9 512 30.07.2016 19:34
Letzter Beitrag: rkuehle
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 463 03.07.2016 09:00
Letzter Beitrag: Binatone
  String in EEPROM Speichern BennIY 2 404 27.06.2016 10:23
Letzter Beitrag: BennIY

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste