- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Rolladensteuerung per ESP8288 + WiFi?

  1. #11
    HaWe
    Gast
    Anzeige

    Powerstation Test
    Zitat Zitat von Ceos Beitrag anzeigen
    Das einzige was ich aus deiner Antwort lese ist, das du dich nichtmal 5 Minuten mit Google hinsetzen willst um zu gucken wie ein Webserver funktioniert, wie PHP aussieht und wie es Grundlegend funktioniert Webseiten dynamisch zu gestalten. (Nein ich meine keine Animationen sondern aktualisieren mit externen Daten)

    Wenn du dir wenigstens die Mühe machen würdest die Grundlagen selber zu erarbeiten würden sich dir die Zusammenhänge ergeben und bis auf 3 Fragen alles beantwortet.

    Eine Webseite mit JS einen Socket öffnen zu lassen und dann das HTML Dokument mit den ausgetauschten Daten updaten sind schon 2 Dinge die eher als Königsdisziplin gelten
    und das "print passenden HTML Code" musst du dir einfach wie Lückentext vorstellen, der statische HTML Code ist nur der Rumpf der Webseite und hat Lücken(zum Beispiel ein Platzhalter und Text für die GPIO Pins), die man mit den Ausgaben aus dem Python oder PHP auffüllt (zum Beispiel mit grünen Kreisen und dem Wort "Off" für Pins die Aus sind)
    wie genau ein webserver funktioniert, war doch eigentlich genau die Gretchenfrage, zugespitzt auf ESP32.

    ich persönlich weiß noch nicht mal was ein Socket genau ist, geschweigedenn wie man ihn öffnet. ich kenne auch weder JS noch Python, und auch html kann ich nicht (weder stumpf noch spitz) - höchstens versuchen, fertigen Code zu verstehn wie in meinem Arduino-ESP-Link, aber selbst da sind 90% für mich reine "??????????????????".
    Wie man ein print in C/++ schreibt weiß ich (printf() oder bei Arduino Serial.print()), aber was und wie ich wo bei deinem Code an welches print an welcher Codestelle hinschreiben müsste: absolut nicht. Du setzt viel zu viel voraus, und wenn du es erklären willst, dann verweise nicht einfach auf Google, sondern zeig es doch einfach, wie es genau geht!

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Ich brech das ganze mal runter auf die Möglichkeiten und dem zugehörigen Aufwand:

    - Apache: (Abseits dass man ein OS dafür braucht und sonst viel zu viel unnötige Funktionen drinne stecken aber als "stumpfer Webserver")
    Man kann Webseiten mit HTML konstruieren und dann über entsprechend generierte Unterdokumente den Inhalt in gewissem Maße dynamisch updaten. dafür braucht man aber ein zusätzliches Programm, welches die Unterdokumente dynamisch erstellt und updatet.

    - PHP: (Die Ursprungsversion der Idee und am weitesten verbreitet ... braucth auch ein OS)
    Man kann Templates (Lückentexte) entwerfen und die Lücken über Variablen oder direkt eingebetteten Code füllen lassen. Das Resultat muss jedoch in die Dokumentstruktur passen!

    - Flask/Bottle: (Die Python basierte PHP Lösung)
    Ebenfalls basierend auf Templates, aber im Gegensatz zu PHP haben wir über Python viel tiefgreifenderen Zugriff auf die Hardware und im Fall von µPython bis zur Peripherie und können so ganz Schlank und top aktuell Daten generieren ... in PHP hätte ich wohl wieder ein Programm gebraucht dass entweder eine Daeti oder Datenbank oder eine Art der API zu PHP bereitstellt um die Informationen direkt im PHP bereit zu haben.

    - Arduino Webserver:
    Habe ich noch nie selber aktiv außer zum ausprobieren verwendet, aber was ich daraus gelernt habe, es ist kompliziert.
    Man kann alle oben genannten Funktionen abbilden, aber vieles davon muss man immernoch zu Fuss schreiben.
    Mir mag hier einiges an Wissen zu effizienten Funktionen fehlen aber wenn ich in den ersten Tutorials schon etwas lese dass ich die Anfrage selber zerlegen und die Antwort selber zusammenstricken muss hab cih auch keine Lust es auszuprobieren

    Einfach mal als Vergleich

    https://www.arduino.cc/en/Tutorial/WebServer

    VS

    https://www.tutorialspoint.com/flask...templates.html


    Javascript ist wie gesagt Königsklasse und nicht wirklich relevant.
    Alle Wege zu erklären und gebrauchsfertige Beispielcodes zu schreiben wäre Aufwand den ich mir bezahlen lassen müsste.
    Für dich konkret gibt es nur den Arduino Weg und die Einstiegshürden erscheinen mir einfach zu hoch um mich selber dafür zu motivieren.
    Ich persönlich favorisiere den Python Weg weil ich Python in dem Kontext einfach für die "intuitivere" Sprache halte und c/gcc viel zu viele Randbedingungen kennt um die ich mich kümmern muss.
    Geändert von Ceos (03.06.2019 um 13:57 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #13
    HaWe
    Gast
    dankeschön, ich zumindest sehe jetzt schon ein paar Unterschiede deutlich klarer.
    https://www.tutorialspoint.com/flask...templates.html
    ist aber leider 404 - not found!

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    https://www.tutorialspoint.com/flask..._templates.htm ... der ergänzt hinten immer ein kleines "L" wenn ich das in die Link Maske eingebe aber es ist ein htm ... blöde Autovervollständigung
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #15
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    https://www.tutorialspoint.com/flask..._templates.htm ... der ergänzt hinten immer ein kleines "L" wenn ich das in die Link Maske eingebe aber es ist ein htm ... blöde Autovervollständigung

    kompletter esp32 Arduino code für so ein Hello Server:
    Code:
    // http://esp32-server.de/  
    
    
    #include <WiFi.h>
    #include <WiFiClient.h>
    #include <WebServer.h>
    
    
    const char* ssid     = "***************";
    const char* password = "********************";
    
    const char indexHTML[] PROGMEM = R"=====(
    <!DOCTYPE html>
    <html>
     <head>
      <title>Erstes Programm</title>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <meta name=viewport content="width=device-width, initial-scale=1"> 
     </head>
     <body>
                <h1 style="text-align: center;">Hallo ESP32</h1>
     </body>
    </html>
    )=====" ;
    
    WebServer server(80);
    IPAddress apIP(192, 168, 2, 1);
    
    void setup()
    {
      Serial.begin(115200);
      delay(1000);
      
      Serial.println("Warte auf Verbindung");
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);
      Serial.println("");
    
      while (WiFi.status() != WL_CONNECTED) 
      {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.print("IP Addresse: ");
      Serial.print("http://");Serial.println(WiFi.localIP());
      server.on("/", Ereignis_Index);
      server.onNotFound(handleNotFound);
      server.begin();
      Serial.println("HTTP Server gestartet");
    }
    
    void Ereignis_Index()    // Wird ausgeführt wenn "http://<ip address>/" aufgerufen wurde
    {
      server.send(200, "text/html", indexHTML);      //dann Index Webseite senden 
    }
    
    void handleNotFound()
    {
      server.send(404, "text/plain", "File Not Found\n\n");
    }
    
    void loop(void) 
    {
      server.handleClient();
    }
    Geändert von HaWe (03.06.2019 um 16:24 Uhr)

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hallo,

    mit diesem link

    https://lastminuteengineers.com/crea...r-arduino-ide/

    habe ich alles, was zu der beantwortung meiner ursprünglichen frage notwendig war, bekommen, nochmals danke HAWE.

    Ich möchte weder htm/l, noch php oder python lernen und es aus dem "ff" beherrschen. Mein ziel ist - zugegebenermassen - ein oberflächliches verstehen eines funktionierenden arduino-codes (wie im beispiel von HAWE, mit erklärungen und kommentaren zu einzelnen sequenzen) mit dem ich experimentieren und noch etwas mehr lernen kann. Können wir das thema damit abschliessen?
    gruß inka

  7. #17
    HaWe
    Gast
    es ging mir ja auch zugegebenermaßen um meine allererste Frage, worauf man so eine Steuerung am einfachsten/besten aufsetzt.
    ESP/Arduino war mir das naheliegendste und andere Software-Plattformen fand ich eher verwirrend als hilfreich. Allerdings habe ich jetzt immer noch den Eindruck, dass es mit dem Arduino-html-webserver nicht wirklich (schon gar nicht viel) komplizierter ist als mit JS, php, oder python/Flask/bottle.
    Ein bisschen html braucht man allerdings schon immer, um Schrift, Messwerte, Grafen und Steuerbuttons etc. halbwegs vernünftig einzubinden.

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    mir persönlich erschien die ganzen Ein-und Ausgaben bzw. File-Handles selber zu verwalten um die Aufrufe abzuarbeiten als zu lästig dass ich mich dann eben für µPython entschieden habe

    @HaWe dein Beispiel zeigt ziemlich genau was ich meine

    das Hauptprogramm besteht wie in der gelinkten Webseite nur aus einer Zuordnung von Handles zu Aufruf-Adressen und jeder Aufruf löst halt eine methode aus.

    Aber das entscheidende ist, dass man sich die Templates selber mit Textmarkern bauen muss um dann entsprechend Variablen übergeben zu können oder täusche ich mich da?

    also in Python gibt es die
    render_template("templatefile.txt", var1 = val1, var2 = val2, ...)

    bei der man quasi nur befiehlt das Template zu laden, enthaltenen Code auszuführen und das Ergebnis zurück zu geben. So hat man maximale Trennung von individueller Webseite und Kern Server, wie bei PHP eben

    aber bei Arduino müsste ich mir selber die html bauen, parsen und entweder über Marker oder eben JS die WEbseite anschließend mit Daten füllen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  9. #19
    HaWe
    Gast
    ja, vermutlich schon, aber wenn ich 1 Code mit 2 Buttons habe (wie bei dem 2-LED-Beispiel) und jetzt noch 2 weitere brauche, dann kopiere ich den Part einfach noch mal dazu und passe die Variablen zum Schalten entsprechend an.
    Auch sonst verwende ich in meinem Programm ja Arduinisch, und das meiste geht um Sensordaten-Verarbeitung und Schaltvorgänge, die html-Website ist ja nur die Visualisierung als Interface.

    Zusätzliche Schalter kriegen eben einfach eine neuen Pfad wie "/led3ON" oder "/led3OFF" oder "/client1/led1ON" und "/client1/led1OFF" bzw. "/client2/led1ON" und "/client2/led1OFF" etc., die einfach per c+p eingefügt werden.
    Variablen lege ich meist global an und füge die entsprechenden html-Zeilen mit ihren Namen für ihre Anzeige ebenfalls per c+p ein.

    Immerhin habe ich aber so alles in 1 Code, und ich muss jetzt nicht auch noch extern an irgendwelchen anderen Programmen, Tools und Schnittstellen herumbasteln.
    Geändert von HaWe (04.06.2019 um 09:00 Uhr)

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Immerhin habe ich aber so alles in 1 Code, und ich muss jetzt nicht auch noch extern an irgendwelchen anderen Programmen, Tools und Schnittstellen herumbasteln.
    das ist mal wieder unsachlich und unfair (vermutlich ungewollt) formuliert!

    es gibt bei deiner Kombination genau so viel Aufwand wie bei meiner

    Arduino + HTML + Strings zusammenknoten

    Python + HTML + Templates schreiben

    da gibts keinerlei Mehraufwand das ist falsch! Eher sogar weniger Aufwand!


    für meinen persönlichen Geschmack liegt die Eleganz der Python-Lösung in der Schlankheit der Implementierung ... aber µPython ist halt schon ein "Brummer" im Flash

    Ich möchte hier auch nicht ausschließen dass es eine TEmplates Lösung für Arduino gibt, aber ich zweifle daran und die Doku gibt auch nichts her, aber vielleicht gibt es eine Library die man draufsetzen kann die einem Templates vorhält


    PS: lol ... einmal google und siehe da ... explizit für den ESP32 und unter Verwendung des ESP eigenen AsyncWebServer gibt es das Templateverfahren (in extrem vereinfachter Form)

    https://techtutorialsx.com/2018/10/0...m-file-system/

    Aber das reicht nur für Variablen, der Code muss immernoch im .INO stehen, sonst kann es ja nicht compiliert werden

    Ich denke meiner Ausbildung und Erfahrung wegen halt stark in Struktuierten Programmen und da ist sowas wie der Flask einfach nur himmlisch! Der "Serv(ier)er" nimmt die Bestellung entgegen und leitet die Anfrage an den entsprechenden "Koch" der dann das Essen zubereitet, welches der "Serv(ier)er" dann ausliefert.

    Und der Koch ist in dem Sinnbild halt das Template ... gefällt mir der Koch oder SErvierer nicht, kann cih sie aunabhängig voneinander umschreiben ... besser noch ich könnte mit einem Servierer und 3 Köchen fast unbemerkt einen der Köche austauschen ohne das Projekt neu zu compilen, ich müsste eeinfach nur das Template updaten, noch während der Server läuft

    Für mich und meine Wahrnehmung ist das sehr Elegant ... auch wenn ich dafür ein Restaurant mit fast mehr Küchenfläche als Gastraum mieten muss (um den Flash Verbrauch von µPython mal ins Bild zu setzen)
    Geändert von Ceos (04.06.2019 um 09:14 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Arduino Uno WiFi
    Von Holle1976 im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 04.01.2017, 18:02
  2. RPi als Wifi Router
    Von tucow im Forum Raspberry Pi
    Antworten: 1
    Letzter Beitrag: 02.02.2013, 09:43
  3. Problem mit WIFI 1.4
    Von markus788 im Forum Robby RP6
    Antworten: 21
    Letzter Beitrag: 26.11.2012, 20:43
  4. ARM für WiFi steuerung ?
    Von fat tony im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 5
    Letzter Beitrag: 03.01.2010, 14:57
  5. Wifi Roboter
    Von newName im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 16.01.2008, 14:51

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen