- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 566

Thema: outdoor I

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Moppi Beitrag anzeigen
    das Tastenfeld der abgebildeten Fernbedienung kannst Du in eine HTML-Seite packen, die kannst Du per Webbrowser von jedem Gerät, dass einen hat, aufrufen.
    das ist genau der punkt, wo ich hilfe bräuchte... vielleicht sollten wir uns erstmal auf den aufbau der webseite konzentrieren. Ich hab ja vor jahrzenten bereits ein bischen was mit HTML, PHP und CSS gemacht, aber das ist einerseits sicher überholt und auch bereits so gut wie vergessen. Ein paar begriffe und ihre bedeutung sind noch da, mehr ist es aber nicht...

    das hier
    Code:
        while (client.connected())
        {
          if (client.available())
          {
            char new_byte = client.read();
            Serial.write(new_byte);
            header += new_byte;
            if (new_byte == '\n')
            {
    
              if (current_data_line.length() == 0)
              {
    
                client.println("HTTP/1.1 200 OK");
                client.println("Content-type:text/html");
                client.println("Connection: close");
                client.println();
                
    // lok vorwärts/rückwärts
                if (header.indexOf("LED1=ON") != -1)
                {
                  Serial.println("GPIO5 LED is ON");
                  LED_ONE_STATE = "vorwaerts";
                  digitalWrite(GPIO_PIN_NUMBER_5, HIGH);
                }
                if (header.indexOf("LED1=OFF") != -1)
                {
                  Serial.println("GPIO5 LED is OFF");
                  LED_ONE_STATE = "rueckwaerts";
                  digitalWrite(GPIO_PIN_NUMBER_5, LOW);
                }
    // lok an/aus
                if (header.indexOf("LED2=ON") != -1)
                {
                  Serial.println("GPIO18 LED is ON");
                  LED_TWO_STATE = "an";
                  analogWrite(GPIO_PIN_NUMBER_18, velo); //HIGH);
                }
                if (header.indexOf("LED2=OFF") != -1)
                {
                  Serial.println("GPIO18 LED is OFF");
                  LED_TWO_STATE = "aus";
                  analogWrite(GPIO_PIN_NUMBER_18, LOW);
                }
    //lok schneller/langsammer
                if (header.indexOf("LED3=ON") != -1)
                {
                  Serial.println("GPIO22 LED is ON");
                  velo = velo + 5;
                  LED_THREE_STATE = velo; //"on";
                  //analogWrite(GPIO_PIN_NUMBER_22, velo);//HIGH
                }
                if (header.indexOf("LED3=OFF") != -1)
                {
                  Serial.println("GPIO22 LED is OFF");
                  velo = velo - 5;
                  LED_THREE_STATE = velo; //"off";
                  //analogWrite(GPIO_PIN_NUMBER_22, velo); //LOW
                }
    
                if (header.indexOf("LED4=ON") != -1)
                {
                  Serial.println("GPIO19 LED is ON");
                  LED_FOUR_STATE = "an";
                  digitalWrite(GPIO_PIN_NUMBER_19, HIGH);
                }
                if (header.indexOf("LED4=OFF") != -1)
                {
                  Serial.println("GPIO19 LED is OFF");
                  LED_FOUR_STATE = "aus";
                  digitalWrite(GPIO_PIN_NUMBER_19, LOW);
                }
    
                client.println("<!DOCTYPE html><html>");
                client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
                client.println("<link rel=\"icon\" href=\"data:,\">");
                client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
                client.println(".button { background-color: #4CAF50; border: 2px solid #4CAF50;; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 1px 1px; cursor: pointer; }");
                client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
                // Web Page Heading
                client.println("</style></head>");
                //client.println("<body><center><h1>ESP32 Web server LED controlling example</h1></center>");
                //client.println("<center><h2>Web Server Example Microcontrollerslab.com</h2></center>" );
                //client.println("<center><h2>Press on button to turn on led and off button to turn off LED</h3></center>");
                client.println("<form><center>");
    
                client.println("<p> richtung ist " + LED_ONE_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED1\" value=\"ON\" type=\"submit\">VORW</button>") ;
                client.println("<button class=\"button\" name=\"LED1\" value=\"OFF\" type=\"submit\">RUECKW</button></center>");
    
                client.println("<p>motor ist " + LED_TWO_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED2\" value=\"ON\" type=\"submit\">AN</button>");
                client.println("<button class=\"button\" name=\"LED2\" value=\"OFF\" type=\"submit\">AUS</button></center>");
    
                client.println("<p>geschwindigkeit ist " + LED_THREE_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED3\" value=\"ON\" type=\"submit\">SCHNELLER</button>");
                client.println("<button class=\"button\" name=\"LED3\" value=\"OFF\" type=\"submit\">LANGSAMMER</button></center>");
    
                client.println("<p>kamera ist " + LED_FOUR_STATE + "</p>");
                client.println("<button class=\"button\" name=\"LED4\" value=\"ON\" type=\"submit\">AN</button>");
                client.println("<button class=\"button\" name=\"LED4\" value=\"OFF\" type=\"submit\">AUS</button></center>");
    
    
                client.println("</center></form></body></html>");
                client.println();
                break;
              }
              else
              {
                current_data_line = "";
              }
            }
            else if (new_byte != '\r')
            {
              current_data_line += new_byte;
            }
          }
        }
    ist das problem,

    Zitat Zitat von Moppi Beitrag anzeigen
    Du kannst Deinen alten Code natürlich umstricken. Dann musst Du sagen, wobei Du genau Hilfe brauchst. Beim Quelltext für HTML? Oder noch was anderes?
    naja, dass, was jetzt bereits im arduino läuft - läuft ja. Zunächst ist das ja ausreichend. Es geht mir letztendlich darum , dass ich - je nach situation - den roboter per IR-fernbedienung oder smartphone steuen kann...

    edit: foto hinzu...
    Klicke auf die Grafik für eine größere Ansicht

Name:	IR_fernbedienung_arduino.jpg
Hits:	6
Größe:	98,1 KB
ID:	34497
    Geändert von inka (19.11.2019 um 15:24 Uhr) Grund: foto hinzu
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Der Link (Anhang 34495) funktioniert nicht.

    Fehler:
    Ungültige Angabe: Anhang
    Wenn du einem normalen, gültigen Link im Forum gefolgt bist, wende dich bitte an den Webmaster.
    - - - Aktualisiert - - -

    Ok, Bild ist jetzt da.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    ich hatte im nachinein auch probleme das bild darzustellen, keine ahnung was da war...

    ich finde es toll, dass Du mir hilfst, würde aber sehr gerne an Deinen überlegungen teilhaben wollen - wenn's denn nicht zu viel verlangt ist - also auch mit evtl. irrwegen, meinen dummen fragen usw...
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Na gut, wenn Du das alles nachvollziehen willst, musst Du selber ran, an den Code, aber mit Unterstützung / Hilfe.
    Das Bild bearbeite ich mal und verpacke das in eine komprimierte Datei, JPEG oder so - was am wenigsten Platz benötigt.

    Die Datei kann in das "Filesystem" auf dem nodeMCU geschrieben werden, damit belegt es keinen Programmspeicher. Allerdings kommt dann wieder zusätzlicher Programmcode, für SPIFF hinzu.
    Oder zweitens, ich codiere die Dateigleich zu Base64 und diesen String kann man dann direkt in den Programmcode integrieren. Das wäre vielleicht zu Anfang die einfachste Methode.




    MfG

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    okay, das war ein bischen zu schnell für'n alten man

    Die Datei kann in das "Filesystem" auf dem nodeMCU geschrieben werden, damit belegt es keinen Programmspeicher. Allerdings kommt dann wieder zusätzlicher Programmcode, für SPIFF hinzu.
    muss ich das manuell machen und nur einmal, oder macht das das programm? Und was ist SPIFF?



    Oder zweitens, ich codiere die Datei gleich zu Base64 und diesen String kann man dann direkt in den Programmcode integrieren. Das wäre vielleicht zu Anfang die einfachste Methode.
    ok, die einfachste methode, aber bitte was ist Base64?

    Du siehst schon, viele von den begriffen von damals haben nicht überlebt ...

    Ich glaube wir müssen es etwas anders aufbauen. Mit beispielen. Und ich weiss nicht, ob Dir das nicht zu viel wird

    edit:
    base64 (ungefähr =) open PGP - und PGP ist mir von früher her ein begriff
    SPIFF -flash-speicher?

    -----------------------
    aber Du musst schon etwas langsammer machen
    Geändert von inka (19.11.2019 um 16:41 Uhr)
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Das ist zunächst der erste Schritt:



    Ich habe jetzt mal das Bild bearbeitet und verkleinert, dass es noch eine annehmbare Zahl an Details enthält, wenn das Bild nachher im Browser dargestellt wird, sollte der die Pixelübergänge weichzeichnen.
    Hier ist erst einmal der String, wie der dann aussieht:

    Code:
    data:image/png;base64,iVBORw....AElFTkSuQmCC
    Weil das 9KByte sind, hier als Textdatei: ir_fernbedienung.txt

    Base64 ist eine Codierung, die Hex-Code in Zeichencode umwandelt (ganz einfach ausgedrückt). So kann der auch im Webseitencode transportiert werden. Damit kann man eine DATA-URL erzeugen, direkt im Webseitencode, der Browser erkennt das und stellt die Grafik dann als solche dar, weil er das zuvor dekodiert. Man kann diesen String aber auch direkt im Browser, oben in der URL-Zeile, eingeben (reinkopieren), der Browser sollte dann das Bild darstellen (es ist in dem Moment eine Data-URL). Wenn Du es ausprobierst, wird Dir sicher alles klar.


    MfG

    - - - Aktualisiert - - -

    SPIFF ist das File System, dass auf einem nodeMCU emuliert wird. Ein ESP-12E hat 1MByte Programmspeicher und 3MByte für SPIFFs (zusätzlicher Flash-Speicher für Dateien). In der Arduino-IDE kann man Dateien im Menü "Werkzeuge" mit "Sketch Data Upload" hochladen. So wie man den Programmcode in den Programmspeicher hochlädt. So, wie Du eine SD-Karte verwenden kannst, kannst Du auch diesen Speicher per SPIFFs verwenden. Wieviel der ESP32 hat, weiß ich nicht, habe noch keinen ESP32.
    Geändert von Moppi (19.11.2019 um 17:23 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Moppi Beitrag anzeigen
    Man kann diesen String aber auch direkt im Browser, oben in der URL-Zeile, eingeben (reinkopieren), der Browser sollte dann das Bild darstellen (es ist in dem Moment eine Data-URL). Wenn Du es ausprobierst, wird Dir sicher alles klar.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Bildschirmfoto von 2019-11-19 18-40-23.jpg
Hits:	10
Größe:	34,2 KB
ID:	34499

    war das so gemeint?
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Nein! Du hast den Kurzen aus dem Veranschaulichungsbeispiel genommen!

    Du musst den langen String aus der Textdatei nehmen, nur der ist vollständig.

    - - - Aktualisiert - - -

    Zweiter Schritt dann:

    Wir bauen einfach eine Tabelle, wo die Grafik als Hintergrundbild dient.
    Geändert von Moppi (19.11.2019 um 18:18 Uhr)

Ähnliche Themen

  1. Abstandsmessung Outdoor bis 3m
    Von robo218 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 14.12.2017, 06:56
  2. outdoor spy robot
    Von jancrombach im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 14.08.2010, 13:09
  3. Outdoor Roboter
    Von OsramLED im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 07.08.2006, 09:34
  4. Outdoor-Robo
    Von RobotrixerP im Forum Mechanik
    Antworten: 3
    Letzter Beitrag: 16.04.2006, 18:38
  5. [ERLEDIGT] Outdoor - Navigation
    Von Quaio im Forum Sensoren / Sensorik
    Antworten: 37
    Letzter Beitrag: 21.04.2005, 12:31

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress