Forum: PC Hard- und Software Raspbian: RS232 mit Datum und Zeit in Datei schreiben


von Stefan S. (engi)


Lesenswert?

Hi. Ich baue gerade an einem Wetterstationsprojekt. Die Sensoren senden 
auf 433 MHz und werden mittels Eigenbauempfänger (Atmega16/32) empfangen 
und über die Uart Schnittstelle an den Raspberry ausgegeben. Um die 
Aufzeichnung der Wetterdaten auf dem Raspberry zu testen, habe ich 
derzeit einen Atmega8 über einen USB-Uart-Konverter am USB0 des 
Raspberry zu laufen, welcher alle 3 Sekunden den Text "Funktionstest am 
Raspberry-PI" aus gibt.


bisher habe ich in meiner start-record.sh folgendes zu stehen:
1
cat /dev/ttyUSB0 >> /home/pi/Raspi-Projekte/record.log

Die ganze Sache läuft auch alles hervorragend. In der log-Datei kommen 
die Daten dank
1
print "Funktionstest am Raspberry-PI"; chr(13);

in Bascom, ohne leere Zwischenzeile an. Die Daten sehen in der log-Datei 
wie folgt aus:
1
Funktionstest am Raspberry-PI
2
Funktionstest am Raspberry-PI
3
Funktionstest am Raspberry-PI

Bevor ich den Code in eine *.sh Datei abgelegt habe, hatte ich den Code 
immer in ins Terminal eingegeben. Lief dann auch, aber nur so lange das 
Terminal geöffnet blieb. Die *.sh Datei gibt mir die Möglichkeit, dass 
der Prozess im Hintergrund läuft und auf der Desktopoberfläche davon nix 
zu sehen ist. Was ich von Windows so garnicht kenne, beim Ausloggen und 
erneuten Einloggen, läuft der Prozess im Hintergrund dennoch weiter und 
wird erst durch einen Shutdown bzw Neustart wirklich beendet.

Nun will ich davor noch Datum und Zeit setzen, so dass es dann so 
aussieht:
1
12.07.2014-12:42 Funktionstest am Raspberry-PI
2
12.07.2014-12:44 Funktionstest am Raspberry-PI
3
12.07.2014-12:46 Funktionstest am Raspberry-PI

Kann ich dies durch einen Zusatz in der start-record.sh irgendwie so 
hinbekommen?

Sollte es nicht machbar sein, zumindest nicht in der einfachen Variante 
der *.sh-Datei, dann ist das auch nicht dramatisch. Ich habe hier noch 
ein DCF77 Modul, welches dann einfach mit in die Schaltung kommt, so 
dass der Empfänger dann bereits Datum und Zeit mit ausgibt.

: Bearbeitet durch User
von Stefan E. (sternst)


Lesenswert?

1
#!/bin/sh
2
3
inp=/dev/ttyUSB0
4
log=/home/pi/Raspi-Projekte/record.log
5
6
while read line; do
7
8
    echo -n "$(date '+%d.%m.%Y-%H:%M') " >> $log
9
    echo $line >> $log
10
11
done < $inp

von Stefan S. (engi)


Lesenswert?

Hallo Stefan, ich danke Dir, Der Code läuft auf Anhieb. Dann kann ich 
das DCF Modul am Empfänger ja weg lassen. Erspart mir so einiges.

wie gesagt, Danke und ein schönes Wochenende.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.