Posts by Fux22

    Mein Programm läuft leider immer noch nicht richtig.... :wallbash:


    Was ich geändert habe:

    1) Ich habe die button.watch(function(err, value)) Funktion gelöscht und eine Tyr-Catch-Anweisung eingefügt (ist i.wie verständlicher für mich...)

    2) Ich habe aus der einen Funktion, die ich hatte, 2 Funktionen gemacht ( wie hyle mir geraten hat)


    Und so sieht mein Code jetzt aus


    Aber ich habe es mit diesen Änderungen nur noch schlimmer gemacht

    Das Programm macht jetzt garnichts mehr (die LED leuchtet nicht, ins Terminal wird nichts geschrieben und in Blynk ändert sich auch nichts mehr, wenn ich den Button drücke)


    Hat noch jemand genug Geduld, mir nochmal zu helfen?

    Mein Browser ist angefüllt mit Tabs über JavaScript, aber daraus werde ich nicht wirklich schlau...:conf:

    Bin über jede Hilfe dankbar :danke_ATDE:


    Lg Fux22

    Ich habe auf meinem RPi Node.js installiert, das wird von onoff unterstützt

    button.watch(function(err, value) .....) ist so deffiniert

    watch(callback)
    • callback - A callback that gets two arguments (err, value), where err is reserved for an error object and value is the number 0 or 1 and represents the state of the GPIO. The value can also be used to determine whether the interrupt occurred on a rising or falling edge. A value of 0 implies a falling edge interrupt and a value of 1 implies a rising edge interrupt.

    Der Button übergibt so seinen Wert (1 oder 0) also an den Value

    Hier noch der Link zum oberen Zitat: https://github.com/fivdi/onoff



    Ok, ich werde die if-elseif-else Abfrage bei Gelegenheit aus der Schleife auslagern (vl finde ich heute noch Zeit dazu, sonst morgen.....), und melde mich dann nochmal mit dem Ergebnis :thumbup:

    Ok, hier mal mein gesamter Code (mit den neuen Änderungen):

    Der Status vom Button = value, somit brauche ich keine weitere Abfrage für den Button da ja schon der Value abgefragt wird, oder?


    Quote from bombom

    Drittens die Auswertung warum die Schleife beendet wurde erfolgt nach der Schleife (dieser Punkt scheint trivial zu sein, aber ...), indem du beide Abbruchbedinungen noch einmal abfragst und entsprechend reagierst.

    Wie meinst du das?

    Ich kann ja nicht nach der while-Schleife die if-Abfrage mit break schreiben....:conf:


    Quote from Der_Imperator

    Sollte die Klammer unter if (value == 1) nicht anders herum sein ?

    Ja, tut mir leid, habe ich i.wie falsch rein kopiert :blush:

    Vielen vielen dank für die Info, damit erklährt sich so einiges :thumbup::danke_ATDE:


    Irgendwas mache ich aber immer noch falsch :wallbash:

    Wenn ich den Button drücke (Value == 1), wird 3 Sekunden gewartet, bis der Text ins Terninal geschrieben wird. Das passt so auch :thumbup:


    Wenn ich aber z.B. nach 1 Sekunde den Button auslasse, wird trotzdem gewartet, bis die Zeit vollständig abgelaufen ist, und dann werden beide Texte ins Terminal geschrieben (= "Wartezeit ist abgelaufen" und "geschlossen")


    Warum wird die Schleife nicht sofort unterbrochen, wenn der Value 0 wird?

    Und warum wird dann ("Wartezeit ist abgelaufen") auch ins Terminal geschrieben? :conf:


    Danke schonmal und Lg

    Fux22

    Danke für deine Antwort(en)


    Ok, ich lese die aktuelle Zeit:

    startzeit = new Date().getTime();


    Addiere die Wartezeit (in ms)

    endzeit = startzeit + 3000;


    aber ich kann nicht "if (startzeit > endzeit) { ...... }" eingeben, das wird ja nie erfüllt

    Darum habe ich vorhin ja gefragt, ob man Date().getTime() auch von 0 anfangen lassen kann, dann brauche ich nur if (startzeit > 3000).....


    Quote from bombom

    Wenn du wissen willst wie man eine Schleife vorzeigt verlässt.

    Ich weiß, dass das für viele so aussieht, als ob ich zu faul zum selber suchen bin, aber ich habe in den letzten 2 Tagen etliche Stunden lang versucht, selbst eine Lösung zu finden....

    Und ja, ich weiß, dass man mit break eine Schleife unterbrechen kann

    if(Bedingung) { break; }

    else { ......}

    , aber da bekomme ich immer einen SyntaxError: Illegal break statement....


    Ich weiß, dass das Thema eigendlich nicht wirklich kompliziert für dich/euch ist, da ihr euch hier mit viel komplizierteren Fragen rumschlagt, ich währe aber td. über jede weitere Hilfe dankbar :helpnew:

    tut mir leid, dass ich mich erst jetzt zurückmelde, hatte nicht viel Zeit letzte Woche....


    Ich habe ein anderes Turtorial gefunden, mit dem ich es hin bekommen habe (den Reed-Schalter habe ich durch einen Button ersetzt):

    https://de.tipsandtrics.com/ge…started-with-blynk-768324


    Es sind aber 2 kleine Fehler in der Anleitung:

    1)

    Code
    sudo npm install -g onoff

    funktioniert nicht mit sudo -> weg lassen, dann passt's


    2)

    Code
    var blynklib = require('/usr/local/lib/node_modules/blynk-library');

    ist das falsche Verzeichnis, die Blynk-Library befindet sich unter /usr/lib/node_modules/blynk-library -> ändern, dann passt's

    Zumindest unter Raspbian Buster....


    Ein Problem habe ich aber noch:

    Wenn der Button am Breadboard gedrückt wird, bekomme ich eine Nachricht aufs Handy

    Ich möchte aber, dass ich nur dann eine Nachricht bekomme, wenn der Button eine gewisse Zeit lang gedrückt wird (z.B. 3 Sekunden)


    Meine Idee war, die Zeit mit new Date().getTime() zu messen

    So wird aber die Zeit wiedergegeben, die seit dem 01.01.1970 vergangen ist (in ms)

    Kann man diese "Stoppuhr" irgendwie auf 0 stellen?

    In den Beispielen, die ich im Internet fand, wurde immer eine Start- und Endzeit verwendet -> Endzeit - Startzeit = Zeit die Vergangen ist, um alle Befehle zwischen der Messung abzuarbeiten

    Ich möchte die Zeit aber nicht messen, ich will nach genau 3 Sekunden eine Nachricht verschicken


    Ich habe auch schon probiert, mit if-else-Schleifen bzw. mit for-Schleifen zu arbeiten:

    Wenn ich den Button drücke, werden mit einer for-Schleife 107 Schritte gezählt, dann wird die Nachricht versendet (dauert ca. 2 Sekunden bei mir...)

    So kommt man aber nur über Umwege zu einer zeitverzögerten Nachricht (was ist, wenn ich aber nach 1:27 Minuten eine Antwort verschicken möchte?)

    Und wenn ich den Button vor Ablauf der Zeit wieder auslasse, müsste das Programm ja sofort aus dem else-Zweig aussteigen, ich bekomme aber trotzdem eine Nachricht...


    Hat jemand eine Idee, wie ich das lösen kann?


    Danke und Lg

    Fux22

    Danke für deine Antwort


    Ich habe gestern Raspbian Buster neu installiert, um mögliche Fehler auszuschließen, die ich vl. vor der Blynk-Installation gemacht habe...

    Ich habe die Schritt-für-Schritt Anleitung nochmal abgearbeitet

    Die pullUpDnControl habe ich diesmal weggelassen und habe am Breadboard vor dem Button einen PullUp-Widerstand gehängt. Die LED in Blynk leuchtet aber trotzdem nicht, wenn ich den Button am Breadboard drücke (sie wird aber wieder mit der Zeit immer heller)

    Und auch wenn ich den GPIO17 direkt an 3V3 oder an Ground hänge, ändert sich nichts daran...


    Ich habe jetzt mal alles von Schritt 17 und 18 der Anleitung auskommentiert

    Die LED in Blynk wird aber trotzdem langsam immer heller


    Keine Ahnung, wiso das so ist...

    Ich wäre über jede weitere Hilfe sehr dankbar :helpnew:


    Danke und Lg

    Fux22

    Hallo Zusammen,


    ich versuche gerade, meinen Raspberry Pi 3 B+ über das Handy zu steuern

    Ich habe dazu die App Blynk gefunden, und muss sagen, es ist wirklich ein Kinderspiel, die GPIO-Pins mit der App zu steuern


    Wenn es aber in die umgekehrte Richtung geht, habe ich Probleme

    Ich schaffe es nicht, dass in Blynk eine LED leuchtet, wenn ich am Breadboard einen Button drücke :no_sad:


    Ich habe schon Stunden damit verbracht, eine Lösung aus Dr. Google rauszulocken, aber da wird sehr oft eine Arduino-Steuerung oder ähnliches damit betrieben

    Und dann hätte ich sie endlich gefunden: die perfekte Schritt-für-Schritt Anleitung

    https://www.bc-robotics.com/tu…berry-pi-3/#comment-90538


    Aber aus irgendeinen Grund funktioniert es bei mir nicht :wallbash:


    Wenn ich den Button in Blynk drücke, leuchtet die LED am Breadboard (so wie es auch sein soll), wenn ich aber den Button am Breadboard drücke, passiert nichts

    Ich hätte aber alles von Anfang an laut Turtorial durchgearbeitet und habe auch in main.cpp genau die Dinge geändert, die im Turtorial markiert sind.....


    Und mir ist mittlerweile folgendes aufgefallen:

    1) Ich starte das Blynk-Programm

    2) Ich gebe im Terminal vom Pi folgendes ein:

    2a) cd /home/pi/blynk-library/linux

    2b) ./build.sh raspberry

    2c) sudo ./blynk --token=MeinAuthenifizierungsCode

    3) Die LED in Blynk leuchtet nicht, wenn ich den Button am Breadboard drücke, sie bleibt dunkel

    4) Wenn ich aber eine Zeit lang warte, fällt auf, dass die LED ganz langsam von alleine immer heller und heller wird (auch wenn ich garnichts gemacht habe nach dem Start)

    5) Nach ca. 3-4 Minuten leuchtet sie ganz hell, bis sie schließlich wieder erlischt


    Weiß jemand, was ich da falsch gemacht habe? :helpnew:


    PS: Ich habe einen Raspberry Pi 3 B+, wo Raspbian Buster (2019-07-10) läuft


    Danke schonmal und

    Lg Fux22

    Ok, ich hab gerade mit unserem Admin gesprochen

    Ich war im (offenen) Gast-WLAN, dessen Firewall den Pi blockiert hat:wallbash:

    Hab mich jetzt mit dem Pi ins interne Netz gehängt, und voilà, es funktioniert


    Vielen vielen Dank, dass ihr mir geholfen habt

    Hab ja schon ein wenig mitbekommen / -gelese, dass hier meistens über viiiiiiieeeeel kompliziertere Dinge gesprochen werden, darum nochmal danke, dass ihr mir auch mit meinem Kleinkram so geholfen habt :thumbup:


    Lg Fux22

    Ja, es ist mein privater Laptop, der Firmen-PC ist über ein Netzwerkkabel verbunden, und ich wollte es eben über WLAN probieren....

    Quote from rpi444

    Dein Laptop ist in der Liste.

    Ja, aber ich habe einen Acer-Laptop, in der Liste steht aber Hon Hai Precision......

    Hier nochmal die IP-Adresse vom Laptop:

    Ich hab zuhause aber auch schon probiert, auf den Pi via VNC zuzugreifen.

    Da hab ich einen Router von T-Mobile (mein "Einrichten" hat sich aber auf folgendes beschränkt: Router einstecken und neues Passwort vergeben)

    Da funktioniert es aber auch nicht, das ich mich verbinde...

    Wenn ich den Pi über ein Netzwerkkabel mit dem Router verbinde, gehts schon

    Nein, den Router habe nicht ich eingerichtet

    Den Pi aber schon. Image-Datei auf SD-Karte, Installationsanweisungen gefolgt und mit WLAN verbunden. Und dann den Ratschlägen in diesem Theard gefolgt


    Wie gesagt, hab mir eine neue SD-Karte gekauft, um alles nochmal von vorne durch zu probieren

    Landixus danke für den Link, werde ich bei Gelegenheit (wahrscheindlich am Wochenende) ausprobieren


    rpi444 habe iputils-arping installiert, weiß aber nicht, wie ich jetzt einen statischen neighbour/arp-cache-Eintrag mache...

    ich glaube, für so Programmierarbeiten fehlen mir dann doch ein paar Gehirnwindungen... :conf:

    Die Eingabe am PC:

    Die IP-Adresse von meinem Laptop ist 192.168.0.150


    Quote from rpi444

    Welches Gerät in deinem (W)LAN hat die IP-Adresse 192.168.0.20?

    Das weiß ich leider nicht... Ich hoffe, ich komme diese Woche noch zum Admin, dann frag ich ihn



    Und die Ausgabe vom Raspberry:



    Landixus : am RPi habe ich noch nichts eingerichtet. Wie kann ich das neu einrichten bzw. wo ist wpa_supplicant.conf? :/:X

    Danke für eure Antworten

    Tut mir leid, dass ich mich erst jetzt melde, mein Terminkalender ist momentan mehr als voll...:X


    Ja, ich bin mit dem RPi und meinem Laptop via WLAN im selben Netzwerk

    Ich habe ihn übers Wochenende mit nach Hause genommen und mit einem Netzwerkkabel and den Router gehängt, da funktionierte alles problemlos

    Aber über WLAN finde ich den Pi nicht (zuhause habe ich T-Mobile, in der Arbeit A1)


    rpi444 wenn ich vom PC den Pi anpinge, findet er ihn nicht


    Und das sind die Ergebnisse, die ich im Terminal vom Pi eingegeben habe


    Wie gesagt, wenn mein Raspberry Pi über ein Netzwerkkabel am Router angeschlossen ist, kann ich mit meinem Laptop problemlos darauz zugreifen.

    Aber wiso funktioniert es uber WLAN nicht?


    (schon langsam bin ich von meiner Inkompetenz genervt... :wallbash:)

    Danke nochmal für eure Antworten


    hyle: ich habe Rasbian neu installiert und den VNC Server aktiviert

    Am Laptop hatte ich den VNC Viewer bereits installiert

    Wenn ich die IP-Adresse (=192.168.0.202) eingebe und verbinden möchte, kommt wieder die Fehlermeldung:


    rpi444:

    Infos vom PC:

    Und die Infos vom RPi:


    Lg Fux22

    Hall Hyle,


    danke für die schnelle Antwort. Ich hatte gestern leider keine Zeit, es auszuprobieren

    Laut meinem Handbuch:

    https://www.amazon.de/Raspberry-Pi-umfassende-Handbuch-Aktuell/dp/3836265192/ref=pd_lpo_sbs_14_img_0/260-8056012-7907257?_encoding=UTF8&psc=1&refRID=K1VTGP5ZFAW91NNA3XTS (Affiliate-Link)

    soll man xrdp und vnc4server deinstallieren, um den Pi via VNC steuern zu können


    Aber egal, ich hab alles nochmal neu gemacht und probiert: Ich hab xrdp wieder installiert, aber ich kann mich td. nicht über VNC verbinden.

    Ich habe dann xrdp deinstalliert und nur vnc4server installiert. Da funktioniert es aber auch nicht

    Und wenn ich beide (also xrdp und vnc4server) deinstalliert habe, so wie's im Handbuch steht, gehts auch nicht....


    PS: wenn ich etwas (de)installiert habe, habe ich den Verbindungsversuch immer vor UND nach einem Neustart probiert. Hat aber nichts geändert


    Lg Fux22