Pages: [1]   Go Down
Author Topic: [gelöst] Daten aus der Seriellen(USB) Schnittstelle lesen und in Datei schreiben  (Read 921 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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) smiley

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.
Code:
//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.
Code:
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-grin ... Ich musste die Schnittstelle einstellen. http://www.arduino.cc/playground/Interfacing/LinuxTTY hat mir geholfen.
« Last Edit: November 09, 2012, 09:24:18 am by Erl1 » Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3486
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich nehm dazu immer ein bischen Python.

Code:
#!/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())
Logged

Check out my experiments http://blog.blinkenlight.net

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Processing habe ich auch ersteinmal weggelasse.
Ich mache es jetzt ganz einfach:
Code:
cat /dev/ttyACM0 >daten.txt
Logged

Pages: [1]   Go Up
Jump to: