[gelöst] Daten aus der Seriellen(USB) Schnittstelle lesen und in Datei schreiben

Hallo,

dies ist mein erster Post hier, daher eine kurze Vorstellung: Bin 43Jahre, Elektriker(ein wenig SPS), seit ca.6 Jahren Linux auf dem Desktop ...
und seit gestern habe ich einen Arduino (Fritzing StarterKit mit Arduino UNO) :slight_smile:

Gut...ich kann mittels eines LM35 meine Zimmertemperatur auf ttyACM0 schicken.
Nun sollen die Daten in eine Datei geschrieben werden. Dazu habe ich "Processing" installiert.

Hier der Arduino Code... der funktioniert.

//declare variables
float tempC;
int tempPin = 0;

void setup()
{
Serial.begin(9600); //opens serial port, sets data rate to 9600 bps
}

void loop()
{
tempC = analogRead(tempPin);           //read the value from the sensor
tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature

Serial.println(tempC);

delay(1000);                           //wait one second before sending new data
}

Und hier der Processing Code...der schreibt mir die Datei "data.txt", diese ist allerdings leer.

import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
   mySerial = new Serial( this, Serial.list()[0], 9600 );
   output = createWriter( "data.txt" );
}
void draw() {
    if (mySerial.available() > 0 ) {
         String tempC = mySerial.readString();
         if ( tempC != null ) {
              output.println( tempC );
         }
    }
}

Ich habe tatsächlich nicht alles verstanden was dort passiert
und hoffe mir kann geholfen werden.

Danke
Erl

EDIT: Es geht :smiley: ... Ich musste die Schnittstelle einstellen. Arduino Playground - LinuxTTY hat mir geholfen.

Ich nehm dazu immer ein bischen Python.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import serial
import sys

if len(sys.argv) != 3:
    print "Please specify a port and a baudrate, e.g. %s /dev/ttyUSB0 115200" % sys.argv[0]
    sys.exit(-1)

ser = serial.Serial(sys.argv[1], sys.argv[2])

while 1:
	sys.stdout.write(ser.readline())

Processing habe ich auch ersteinmal weggelasse.
Ich mache es jetzt ganz einfach:

cat /dev/ttyACM0 >daten.txt