Variablen von MyEthernet auslesen

  • Hallo,

    Ich habe vor einiger Zeit von meinem Vater das MyEthernet-Microcontroller Board geschenkt bekommen. Gestern kam mir die Idee es als Porterweiterung für mein Raspberry zu benutzen. Das Problem ist aber da das MyEthernet ein kleiner HTML Webserver ist dachte ich, ich könnte die einzelnen Variablen der In und Outputs mit meinem Raspberry auslesen und verändern. Auf meinem Raspberry läuft Raspbian und php5 sowie Apache sind Installiert.

    Hier meine Frage: Wie kann ich die einzelnen Variablen mit meinem Raspberry über Html oder PHP auslesen?. Ich stelle mir das so vor das ich auf dem Myethernet eine Html Datei ist in der alle Variablen (°nummer°, siehe Spoiler) sind, die von meinem Raspberry ausgelesen und verarbeitet werden.

    Hier noch ein Paar Informationen:
    Pin Konfiguration

    Spoiler anzeigen


    Mittels °c13° wird die aktuelle Konfiguration des Pins 13 ausgegeben. Die Hexadezimalwerte haben dabei folgende Bedeutung:
    0x1 digital out
    0x2 digital in
    0x102 digital in mit PullUp
    0x4 analog in
    0x10 TWI
    0x20 SPI
    0x40 ByteOut
    0x80 ByteIn
    0x180 ByteIn mit PullUp
    0x8 UART

    Pin Konfiguration Ändern:
    confightm.png
    ~ = %7E, ° = %B0


    Quellen und Informative Links:
    Satus LED an/aus
    Pinkonfiguration
    Analogwerte auslesen

    Ich hoffe ich habe nichts Vergessen und Danke für eure Hilfe.

  • Die Idee mit der HTML-Seite mit allen Variablen drin ist erst mal gut.
    Dabei drauf achten, dass die Seite gut zu parsen ist.

    Als naechstes mit wget die Seite abrufen:

    wget -q -O - http://192.168.1.203

    (IP-Adresse natuerlich anpassen !)

    Die Seite wird so auf den Standard-Output geschrieben und kann mit
    beliebigen Tools zerlegt werden. awk waere gut geeignet, aber jede
    andere vernuenftige Sprache ist natuerlich auch zu brauchen.

    - - - -

    Wenn MyEthernet auch XML mit einem vernuenftigen MIME-Typ
    ausliefern kann, waere eine XML-Seite besser. Dann kann man
    die URL direkt an einen XML-Parser uebergeben und kriegt
    die Variablen fein saeuberlich aufbereitet.

    - - - -

    Wahrscheinlich geht's auch mit PHP, ohne sonstigen Code auf dem
    Raspberry:

    fopen kann eine URL direkt oeffnen (ob's die Rechte erlauben ist eine
    andere Frage) und libcurl muesste eigentlich auch aufrufbar sein.

    Einmal editiert, zuletzt von Tell (14. Januar 2014 um 19:49)

  • Danke Für deine Antwort.
    Wenn ich das richtig verstanden habe wird die html Seite über wget runtergeladen. Verzeih mir jetzt meine doofe Frage aber wenn ich die Seite speichere werden da nicht nur die Namen der Variablen gespeichert?

    Ob das MyEthernet XML Unterstützt kann ich dir nicht sagen, denke mal nicht. Google und Bing konnten mir das leider auch nicht beantworten.

    Wie ist das mit den rechten gemeint? am raspberry oder am myethernet?.

  • [font="Tahoma, Verdana, Arial, sans-serif"]> Wenn ich das richtig verstanden habe wird die html Seite über wget runtergeladen.[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Genau[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]> Verzeih mir jetzt meine doofe Frage aber wenn ich die Seite speichere werden da nicht nur die Namen der Variablen gespeichert?[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Wenn ich das richtig verstehe, werden die Sequenzen vom Webserver von MyEthernet[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]durch die Werte ersetzt, so aehnlich wie bei PHP.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Machen wir einen Versuch.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Diese Seite habe ich von der MyEthernet-Seite kopiert und leicht geaendert, damit[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]wir die Variable besser finden:[/font]



    [font="Tahoma, Verdana, Arial, sans-serif"]Hier steht also jetzt die Variable, eingeschlossen durch ':'[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Auf dem Geraet speichern wie auf der MyEthernet-Seite beschrieben.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Wenn das erledigt ist, auf den PI wechseln und folgende Pipeline eingeben:[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"](Die IP-Adresse natuerlich durch die vom MyEthernet ersetzen)[/font]


    Code
    wget -q -O - http://192.168.1.203 | grep -o ':.*:' | tr -d ':'

    [font="Tahoma, Verdana, Arial, sans-serif"]Der erste Befehl liest die Seite, der zweite grubelt den Text zwischen den ':' raus,[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]und der dritte loescht die Doppelpunkte, so dass nur der Zustand der Variablen[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]uebrig bleibt. Der wird auf die Konsole geschrieben wenn ich keinen Fehler[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]gemacht habe ...[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]
    - - - -
    [/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]> Wie ist das mit den rechten gemeint? am raspberry oder am myethernet?[/font]
    Was PHP machen darf, wird durch verschiedene Einstellungen eingeschrankt.
    Wie das bei einer Standard-Installation auf dem Raspberry aussieht, weiss
    ich nicht -> Ausprobieren

  • Danke für deine schnelle antwort. Werde es heute nicht schaffen da ich noch ein bisschen für die Deutsch-Probeprüfung morgen lernen muss. Danke auch für erklärung.

  • Ich habe den Code und die Htmlseite das halbe Wochenende über getestet und zwischen den ":" wurde auf der Webseite nur ein "*" gezeigt. Im Termial hat das grep das Sternchen angezeigt was deine Vermutung mir dem ersetzen bestätigt. Wenn man einen der beiden Links klickt bekommt man den folgenden Text angezeigt:
    myAVR - myEthernet
    FEHLER in cmd=o20~0°

    Diese Meldung kommt auch beim Original Code weshalb ich vermute dass der Fehler im MyEthernet liegt, in der Firmware oder so (Anfangs dachte ich der Fehler liegt am Browser aber die Meldung kommt bei Firefox, Meinem Handy und den Vorinstallierten Browsern im RPI).

    Einmal editiert, zuletzt von Baastii (19. Januar 2014 um 19:15)

  • [font="Tahoma, Verdana, Arial, sans-serif"]> Ich habe den Code und die Htmlseite das halbe Wochenende über getestet und zwischen den[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]> ":" wurde auf der Webseite nur ein "*" gezeigt. Im Termial hat das grep das Sternchen angezeigt[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]> was deine Vermutung mir dem ersetzen bestätigt.[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Kein Erfolg, aber immerhin etwas.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Das Sternchen steht nicht auf der Seite, sondern wird vom Geraet eingesetzt.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Jetzt muesste man wissen, was das Zeichen bedeutet. Ich tippe mal auf "Eingang nicht[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]konfiguriert" oder was aehnliches.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Das ist aber eine MyEthernet-Frage, zu der es hier keine Antworten gibt.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Gibt es zu diesem Geraet ein Einstiegstutorial, das einen Wert anzeigt ?[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Dann koennten wir den PI-Teil auf der Tutorial-Seite aufbauen.[/font]

  • Der Pin für die LED´s war nicht als output konfiguriert was ich komisch finde da Led´s abgesehen vom Leuchten zu nichts zu gebrauchen sind. Hab es ja geschafft :).
    In den "Vorinstallier" Ordnern war eine seite zur Pinkonfiguration mit bei, hab sie mal angehängt da sie mir als sehr nützlich bei diesem Problem war (Okay ohne deine Überlegung mit der Konfiguration wäre ich warscheinlich nie auf die Idee gekommen mir die Seiten jemals anzuschauen). Am RPI wird mir bei dem beispiel code von dir je nach zustand mittlerweile eine 1 bzw. 0 angezeigt.
    :danke_ATDE:
    Ich denke das wenn man den Einsteigern empfehlen sollte vorher die Beispielseiten durchzugehen da sich die Entwickler sehr viel mühe dafür gegeben haben und auch einige erweiterungsmodule wie zum beispiel der passende Temperatursensor in den beispielen erläutert werden.

    Wenn ich dich richtig verstanden habe möchtest du aus diesem Thread ein Tutorial machen, dann denke ich ist es sinnvoll noch zu erwähnen das Ports 16 und 17 benötigt werden wenn man passende Erweiterungsplatinen nutzen möchte. Was ich nicht ganz verstehe ist dass man die Konfiguration der Pins 13 und 14 ändern kann die laut Skizze für +5V und GND zuständig sind.

  • [font="Tahoma, Verdana, Arial, sans-serif"]> In den "Vorinstallier" Ordnern war eine seite zur Pinkonfiguration mit bei,[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]> hab sie mal angehängt da sie mir als sehr nützlich bei diesem Problem war[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Na Bravo ![/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]> Ich denke das wenn man den Einsteigern empfehlen sollte vorher die Beispielseiten[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]> durchzugehen[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Sehr richtig :thumbs1:[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]> da sich die Entwickler sehr viel mühe dafür gegeben haben[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Dann erst recht[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]> Wenn ich dich richtig verstanden habe möchtest du aus diesem Thread ein Tutorial machen[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Noeh, das ist nicht meine Absicht.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Aber die Idee ist gut. Mach das :D[/font]

  • >Gibt es zu diesem Geraet ein Einstiegstutorial, das einen Wert anzeigt ?
    >Dann koennten wir den PI-Teil auf der Tutorial-Seite aufbauen.

    Hab ich dann falsch verstanden.

    >Aber die Idee ist gut. Mach das

    Sehe ich auch so , dieser Thread hat 155 Views, ein Tutorial würde sich also lohnen.
    Ich schiebe es erstmal aus die TODO-Liste mal kuken wann ich Zeit habe, muss ja alles gut formuliert werden.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!