Posts by Grabbbo
-
-
Hallo,
ich betreibe ein Raspberry Pi auf dem xrdp installiert ist. Die Internetverbindung des Pi's wird über einen UMTS Surf Stick realisiert.
Ich möchte mich aus der Ferne per SSH oder RDP auf den Pi einwählen.
Die öffentliche IP des Surf Sticks habe ich mit http://wieistmeineip.de/start herausgefunden.
Ein Ping auf diese IP bringt keine positiven Ergebnisse.
SSH und RDP auch nicht.Woran kann das liegen?
Schutz auf dem UMTS Surf Stick? Firewall auf dem Pi? Habe keine Firewallregeln eingerichtet.Schon mal Danke.
Grabbbo
-
picker
dein Script funktioniert. Funktioniert aber leider nur bei reboot.Ich habe es nun über eine Bash Shell in der /etc/rc.local gelöst.
Das Betriebssystem kann in aller Ruhe hochfahren und dann das Python Script ausführen.
Vielen Dank.
Grabbbo -
Ich habe sudo nano /etc/rc.local eingegeben und dort dann vor dem exit0 die Zeile eingegeben.
Klatt immer noch nicht. -
-
Hallo,
ich weiß nicht woran es liegt aber ich schaffe es nicht ein vorhandenes Python Script beim booten starten zu lassen.
Zielort des Scripts: /home/pi/gps.py
Eintrag in der rc.local:
Bash
Display More#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi usb_modeswitch -I -W -c /etc/usb_modeswitch.d/e173.conf sleep 10 wvdial & sleep 10 python /home/pi/gps.py & exit 0Wie ihr schon erkennt wird zuerst der UMTS Stick gemounted, dann kommt die Einwahl und dann soll das Python Script ausgeführt werden.
Was mache ich falsch?
Bei G...le findet man nichts anderes als das was ich geschrieben habe!?!???HILFE, ich bin zu dumm.
Schon mal Danke.
Grabbbo -
Wie schon gesagt,
vielen Dank an alle.
Ich glaube das Thema AWK Ergebins in Datei schreiben hat sich erledigt. Werde es mal abschließen.Mein Gedanke geht jetzt ehr in die Richtung, die GPGGA GPS Daten einmal die Minute abzufragen und dann zu protokollieren. Wie ich das anstelle, weis ich noch nicht aber hier im Forum gibt es ja Gott sei Dank kompetente Auskunft. Findet man nicht in jedem Forum.
Vielen Dank.
Grabbbo -
Danke framp,
den Link habe ich mir angeschaut und auch ausprobiert. Es liegt wirklich am Buffering. Es werden erst ab 4096B Daten in die Datei geschrieben. -
Hallo,
erst mal vielen vielen Dank an alle die sich dieser Aufgabe angenommen haben.Ich konnte durch eure Antworten sehr viel lernen, musste aber feststellen das ich viel mehr lernen muss.
@Meingrafd
Dein Script hat funktioniert. Leider wird nicht nach GPGGA gefiltert. Es werden alle GPS Protokolle in die Datei geschrieben.Quote
sudo awk -F, '{ if ( $1=="$GPGGA" ) { print $3,$4,$5,$6 } }' /dev/ttyAMA0 | tee /home/pi/gpgga.txt
hat leider nicht funktioniert. Die Datei blieb lehr.Ich muss das nochmal durchdenken. Die kontinuierliche Ausgabe der GPS Daten in eine Datei ist doch zu viel. Die regelmäßige Abfrage und Protokollierung (Abfrage nach Zeit X, in Datei schreiben) macht mehr Sinn.
thbeckmann
hat doch geklappt. Sollte mal geduldiger werden
-
@meigrafd
Ich habe jetzt libdevice-serialport-perl und libproc-daemon-perl installiert.
Dann habe ich dein Sript in die Datei script.pl eingefügt und mit nano script.pl > datei.txt umgewandelt.QuoteDisplay More
[?1049h[1;62r(B[m[4l[?7h[?12l[?25h[?1h=[?1h=[?1h=[39;49m[39;49m(B[m[H[2J(B[0;7m GNU nano 2.2.6 Datei: script.pl [3;1H(B[0m[32m#!/usr/bin/perl -w
[4d# Reads data from serial port
[6d# Run apt-get install libdevice-serialport-perl
[7d# if you get "Can't locate device/SerialPort.pm in @INC (@INC includes ..."
[8d# use lib '/usr/lib/perl5/Device'
[10d#To install Proc:Daemon
[11d#perl -MCPAN -e 'install Proc::Daemon' OR sudo apt-get install libproc-daemon-perl
[13d#### CONFIG - START
[15d# set UART baudrate
[16d[35mmy[39m(B[m [36m$baudrate [39m(B[m= 9600;
[18d[32m# set Serial Port
[19d[35mmy[39m(B[m [36m$PORT [39m(B[m= [33m"/dev/ttyAMA0"[39m(B[m;
[21d[32m#### CONFIG - END
[23d# Declare the subroutines
[24d[35msub[39m(B[m trim([36m$)[39m(B[m;
[26dBEGIN {[27;5H[31mpush[39m(B[m [36m@INC,[33m"/usr/lib/perl5/"[39m(B[m;
[28d}[30d[37muse strict;
[31duse Device::SerialPort qw( :PARAM :STAT 0.07 );
[32duse Time::localtime;
[33duse Proc::Daemon;
[35d[35mmy[39m(B[m [36m$ob [39m(B[m= Device::SerialPort->new([36m$PORT)[39m(B[m;
[36d[36m$ob-[39m(B[m>baudrate([36m$baudrate)[39m(B[m;
[37d[36m$ob-[39m(B[m>parity([33m"none"[39m(B[m);
[38d[36m$ob-[39m(B[m>databits(8);
[39d[36m$ob-[39m(B[m>stopbits(1);
[40d[32m#$ob->handshake("xoff");
[41d[36m$ob-[39m(B[m>write_settings;
[43d[31mopen[39m(B[m(SERIAL, [33m"+>$PORT"[39m(B[m);
[45d[35mmy[39m(B[m [36m$continue [39m(B[m= 1;
[46d[36m$SIG{[39m(B[mTERM} = [35msub[39m(B[m { [36m$continue [39m(B[m= 0 };
[48d[35mwhile[39m(B[m ([36m$continue)[39m(B[m {[49;5H[35mmy[39m(B[m [36m$line [39m(B[m= trim(<SERIAL>;);[50;5H[31mprint[39m(B[m [36m$line;[39m(B[m [31mprint[39m(B[m [33m"\r\n"[39m(B[m;
[51d}[53d[32m# Perl trim function to remove whitespace from the start and end of the string
[54d[35msub[39m(B[m trim([36m$)[39m(B[m {[55;5H[35mmy[39m(B[m [36m$string [39m(B[m= [31mshift[39m(B[m;[56;5H[36m$string [39m(B[m=~ [37ms/^\s+//[39m(B[m;[57;5H[36m$string [39m(B[m=~ [37ms/\s+$//[39m(B[m;[58;5H[31mreturn[39m(B[m [36m$string;
[59d[39m(B[m}[60;48H(B[0;7m[ 58 Zeilen gelesen ]
[61d^G(B[m Hilfe[61;20H(B[0;7m^O(B[m Speichern[39G(B[0;7m^R(B[m Datei öffnen (B[0;7m^Y(B[m Seite zurück (B[0;7m^K(B[m Ausschneiden (B[0;7m^C(B[m Cursor
[62d(B[0;7m^X(B[m Beenden[62;20H(B[0;7m^J(B[m Ausrichten[39G(B[0;7m^W(B[m Wo ist[62;58H(B[0;7m^V(B[m Seite vor[77G(B[0;7m^U(B[m Ausschn. rückgän(B[0;7m^T(B[m Rechtschr.
[3d[60;29H(B[0;7m[ Zeile 1/59 (1%), Spalte 1/19 (5%), Zeichen 0/1157 (0%) ]
[3d(B[m[2;59r[2;1HM[1;62r[1;105H(B[0;7mVerändert
[4d(B[m[2;59r[2;1HM[1;62r[5;1H[2;59r[2;1HM[1;62r[6;1H[60;37H(B[0;7m4/62 (6[60;74H3/1160
[6d(B[mDas wird in die datei.txt Datei ausgegeben.
Nach dem Umwandeln reagiert der Pi nicht mehr. Musste ihn rebooten. -
Das klappt.
Die Datei wird erstellt und mit Daten gefüllt. Nich so elegant wie die Ausgabe mit AWK aber es werden Daten geschrieben.Nächstes Problem aufgetaucht.
Der Prozess der durch: sudo grep --line-buffered '$GPGGA' /dev/ttyAMA0 > gpgga.txt ausgelöst wird, bricht nach unbestimmter Zeit ab. Mal werden 50 Zeilen in die Datei geschrieben und mal sind es 87.Woher kommt das jetzt wieder?
-
das gibt die GPGGA GPS Daten wieder auf dem Bildschirm aus und erstellt keine Datei. Noch nicht mal eine lehre.
Wie gesagt, ich bin ein Anfänger und lasse mir gerne etwas beibringen.
sorry "$GPGGA" habe falsch abgeschrieben.habe ich natürlich auch probiert.
-
-
Quote
hat folgendes Ergebnis gebracht:
51xx.xxxx N 007x.xxxx E 51xx.xxxx N 0074x.xxxx E 51xx.xxxx N 0074x.xxxx EEs hat auch nur einmal funktioniert.
QuoteEs wird wieder nur eine lehre .txt Datei erstellt.
Gibt es sonst noch Möglichkeiten die GPGGA GPS Daten in eine Datei zu schreiben?
Bin für alles offen.
Ich habe auch schon folgendes probiert:Hierbei wird auch wieder die lehre .txt Datei erstellt. Ohne > /homepi/gpgga.txt bekomme ich das GPGGA Protokoll auf dem Bildschirm ausgegeben.
Tell
Deine Antwort klappt garnicht.
Fehlerausgabe:
awk: cannot open garmin.log (No such file or directory) -
Hallo,
mittels folgendem Code, den ich direkt im Terminal des Pi's eingebe, lasse ich mir bestimmte Teile des GPGGA GPS Protokolls ausgeben.Ergebnis auf dem Bildschirm:
51xx.xxxx N 007x.xxxx E
51xx.xxxx N 007x.xxxx E
51xx.xxxx N 007x.xxxx E
51xx.xxxx N 007x.xxxx E
51xx.xxxx N 007x.xxxx E
usw.
Bis hierher alles prima.Nun benötige ich diese Ergebnisse aber in einer .txt Datei.
der Code:
Codesudo awk -F, '{ if ( $1=="$GPGGA" ) { print $3,$4,$5,$6 > "/home/pi/gpgga.txt } }' /dev/ttyAMA0funktioniert leider nicht. Es wird lediglich eine lehre .txt Datei erstellt.
Was kann ich, als Amateur, machen um die Werte in die Datei zu schreiben?
Ich Danke für die Hilfe.
-
Genau so habe ich es gemacht. Danke an alle!!!
-
Danke für eure Antworten.
-
@ dbv
Also ich starte das Script (Endlosschleife) per Handy. Webserver aufrufen, Startbutton drücken, Aufnahme beginnt.#!/bin/bash
while [ 1 ];
do
DATUM=`date +%d%m%Y-%H%M%S`
raspistill -w 2592 -h 1944 -q 100 -t 5000 -vs -o /home/pi/image_$DATUM.jpg
sleep 30s
doneexit 0
Pi macht ein Bild, wartet 30 Sekunden, beginnt die Schleife von vorn, Macht ein Bild, wartet...
Das lasse ich z.B. 2 Tage laufen. Jetzt würde ich das ganze gerne beenden. Webserver aufrufen, Stopbutton drücken, Aufnahme stoppt.
-
Guten Morgen,
Problem erkannt aber nicht gelöst.
Ich kann per:#!/bin/bash
while ( ps aux | grep 'raspistill' | grep -v 'grep' );
do
sudo killall -I raspistill
done
exit 0"raspistill" beenden. Dann wird aber "sleep 30s" ausgeführt und danach wieder raspistill. Andersrum genau so.
Wer kann mir weiterhelfen? Einen Reboot möchte ich ungerne machen.
-
Hallo,
ich starte per PHP ein Shell Script, indem ich folgendes ausführen lass.#!/bin/bash
while [ 1 ]; do
DATUM=`date +%d%m%Y-%H%M%S`
raspistill -w 2592 -h 1944 -q 100 -t 5000 -vs -o /home/pi/image_$DATUM.jpg
sleep 30s
done
exit 0Sawas wie eine Serienaufnahme von Bildern, alle 30 Sekunden.
Mit "sudo killall -e raspistill" kann ich den Prozess immer dann beenden wenn er ausgeführt wird.
Diesen Vorgang würde ich gerne automatisieren. Prüfen ob der Prozess aktiv ist und ihn dann beenden.
Ich habe keine Ahnung wie ich das anstellen kann. WHILE DO Schleife?
Vielen Dank.
Grabbbo