Tag 13: Webseite mit Buttons

In dem heutigen Versuch ist die Darstellung der Webseite noch ausgefeilter. Außerdem gibt es nun auch Steuerelemente, über die eine LED deutlich komfortabler gesteuert werden kann.

So schließen Sie die LED mit Vorwiderstand am Pin D9 an

So schließen Sie die LED mit Vorwiderstand am Pin D9 an

Der Aufbau des heutigen Versuchs unterscheidet sich nicht vom dem des gestrigen: Eine LED am Pin D9 die sich über das Modul steuern lässt. Als zusätzliches Bauteil finden Sie hinter dem Kalendertürchen erneut einen Widerstand mit 1 kΩ. Bei Bedarf können sie nun die Helligkeit einer LED reduzieren, indem Sie zwei Widerstände in Reihe schalten.

Das Programm: Day13_TCPServerProgmen

Das heutige Programm speichert die Webseite auf eine etwas andere Art als in dem vorrangegangen Programm. Während gestern die einfach gehaltene Webseite im Quelltext enthalten war, wird diesmal die Seite in einer sogenannten Progmen-Variablen gespeichert. Dies entlastet das SRAM des Boards und ermöglicht eine komplexere Darstellung einer Webseite. Sie haben allerdings nicht mehr eine so gute Übersicht über die Seite.

 

Die Webseite des Webservers

Die Webseite des Webservers

Sie können aber die HTML-Datei im Sketchorder einsehen und bei Bedarf verändern. Wenn Sie die Webseite auf der Webseite

tools.thebuzzmedia.com/bytechar

in Bytes umrechnen lassen und diese in die Program-Variable eintragen, haben Sie eine neue Webseite für Ihren Webserver generiert.

Die Umwandlung auf der Buzz Media Seite

Die Umwandlung auf der Buzz Media Seite

61 Kommentare

  1. Xband

    Leider habe ich mit
    succes &= sendCOM(„AT+RST“, „ready“);
    noch nie einen sauberen Reset hinbekommen. Mit mehr Timeout und einigen delays bleibt zwar die Fehlermeldung
    ESP SEND ERROR: AT+RST
    aber das Modul arbeitet danach trotzdem.

    Tag13 läuft nur, wenn ich die Website in einen String packe.

    String web_seite = „…HTML…“;

    const byte site[] PROGMEM = { 60, … }; geht nicht.
    Wenn ich den String vor dem Seitenaufruf umkopiere:
    xBuffer = web_seite; geht es auch nicht mehr. Irgendetwas geht da mit dem Speicherplatz schief, obwohl die Kontrollausgabe über den seriellen Monitor für beide Strings das gleiche Ergebniss liefert.

    Hat dazu jemand eine Idee?

  2. Florian

    Kann mir jemand sagen ob es eine Alternativ Webseite zu The Buzz Media gibt, denn die Seite funktioniert nicht mehr? Ich möchte nämlich die Seite ändern und wieder konvertieren lassen.

    1. RICI

      Florian,
      Danke für Deinen Kommentar ,
      Da weiß ich jetzt das die Seite tatsächlich abgeschaltet ist, Ich dachte es ist nur bei mir so.

      Wie gehts ? Hier eine Alternative in 2 Steps

      1)
      http://www.binaryhexconverter.com/ascii-text-to-decimal-converter

      Damit bekommt man einen Byte output in decimal format

      2)
      Das Ganze ins Notepad kopieren und dann alle ‚blank‘ (1 x mal auf die Spacetase drücken) gegen ‚,‘ ( 1x , drücken) austauschen

      1. Klaus

        Im Forum habe ich vor einigen Tagen ein Tool veröffentlicht, was das und noch einiges mehr kann.

        1. RICI

          http://iot.fkainka.de/forum/topic/textconverter

          Danke prima tool. Besser als die Webpages die mal off und mal online sind.
          Habe auch mal Deine Homepage angesehen . Gute Sache .
          Rici

  3. generalovernight

    Ich habe jetzt etwas nachgearbeitet und einige Versuche nochmal in Ruhe durchgeabreite. Dabei sind mir folgende Sachen aufgefallen:

    1. Wie fk anscheinend auch schon bemerkt hat, sind die Timeouts beim Initialisiern des WLAN-Moduls eher zu kurz. Ich habe für das configAP den Wert 25000 (25 Sekunden) eingestellt und seither klappt die Verbindung immer reibungslos und auf Anhieb, auch mit Verschlüsselung. Die ist eigentlich ganz einfach, und damit bin ich auch das hässliche unverschlüsselte WLAN im AP-Mode los. Im Wesentlichen muss dafür eine Zeile in configAP geändert werden:

    succes &= (sendCom(„AT+CWSAP=\““+String(ssid)+“\“,\““+String(pwd)+“\“,1,3″, „OK“));

    Ich habe aber noch ein paar weiter Änderungen gemacht, damit das ganze leichter zu editieren ist. Vor allem habe ich den Standard-Timeout als Präprozessor-Variable definiert #define TIMEOUT 5000. So lässt er sich leicht ändern. Außerdem kann ich in den configXXX-Prozeduren den Timout höher drehen und vor dem Verlassen der Prozedur wieder zurücksetzen. Dadurch brauche ich ihn in der Hauptschleife nur einmal setzen. Siehe Quelltext unten.

    2. Der mitgelieferte HTML-Code hat einige Fehler und ist außerdem nicht Standrdkonform, sodass er nicht in allen Browsern funktioniert. Insbesondere sind einige Tags nicht geschlossen und das Formular so in einen Font-Tag eingebunden, dass es in manchen Browsern nicht erkannt wird. Eine etwas aufgeräumte Fassung der HTML-Seite folgt. Die br-Formatierung habe ich drin gelassen, da sollte man auch eher Div-Tags verwenden, aber das wäre eher eine Schönheitsoperation. In die Tags habe ich ein paar Leerzeichen eingefügt, in der Hoffnung, dass WP sie dann nicht zerschießt ;-S

    Switch LED

    Switch LED

    Switch the D9 LED ON and OFF

    LED ON
    LED OFF

    Die geänderten Teile des Ino-Programms


    #define TIMEOUT 5000
    #define SSID "MEINE SSID"
    #define PSK "STRENG GEHEIMER SCHLÜSSEL"

    ...

    boolean configAP(String ssid, String pwd)
    {
    boolean succes = true;
    esp8266.setTimeout(TIMEOUT * 5);
    succes &= (sendCom("AT+CWMODE=2", "OK"));
    /*
    * Jetzt mit Verschlüsselung: Typ 3
    */
    succes &= (sendCom("AT+CWSAP=\""+String(ssid)+"\",\""+String(pwd)+"\",1,3", "OK"));
    succes &= (sendCom("AT+CIPAP=\"192.168.4.1\"", "OK"));
    esp8266.setTimeout(TIMOUT);

    return succes;
    }

    boolean configUDP()
    {
    boolean succes = true;

    esp8266.setTimeout(TIMEOUT * 3);
    succes &= (sendCom("AT+CIPMODE=0", "OK"));
    succes &= (sendCom("AT+CIPMUX=0", "OK"));
    succes &= sendCom("AT+CIPSTART=\"UDP\",\"192.168.4.255\",90,91", "OK"); //UDP Bidirectional and Broadcast
    esp8266.setTimeout(TIMEOUT);

    return succes;
    }

    1. generalovernight

      War wohl nix :-/
      also noch ein Versuch:

      Switch LED

      Switch LED

      Switch the D9 LED ON and OFF

      LED ON
      LED OFF

    2. generalovernight

      Auch nicht :-(

      also ersetze ich jetzt die spitzen Klammern durch „≤“ und „≥“


      ≤html≥
      ≤head≥
      ≤meta name="viewport" content="width=device-width, initial-scale=2.0, user-\
      scalable=yes"≥
      ≤title≥Switch LED≤/title≥
      ≤/head≥

      ≤body bgcolor="#FFFF99" text="#000000"≥
      ≤h1≥Switch LED≤/h1≥
      ≤hr≥
      ≤br≥
      ≤h2≥Switch the D9 LED ON and OFF≤/h2≥
      ≤br≥
      ≤br≥
      ≤form method="GET" action="."≥
      ≤button type="submit" name="led" value="1"≥LED ON≤/button≥
      ≤button type="submit" name="led" value="0"≥LED OFF≤/button≥
      ≤/form≥
      ≤br≥
      ≤hr≥
      ≤/body≥
      ≤/html≥

      1. generalovernight

        PS: Was fehlte war vor allem das action=..., das beim HTML-Form-Tag nicht weggelassen werden darf.

      2. Klaus

        Sorry wenn ich das so sagen muss. Aber Du hast Dich beschwert, dass manche Tags nicht geschlossen sind. Das ist auch völlig korrekt, aber Du hast sie ebenfalls nicht geschlossen. BR und HR müssen auch geschlossen werden, wenn man W3C-Konform sein will.

        1. generalovernight

          Sorry, aber br-Tags müssen nur dann geschlossen werden, wenn du XHTML-konform schreibst, das ist aber normalerweise nicht der Fall. Im Gegenteil, in HTML 4.0 und HTML5 ist das Schließen mit einem End-Tag sogar verboten.

          Und wenn wie hier z.B. der body-Tag nicht geschlossen ist, dann ist das ein ernster Fehler.

  4. Jens

    Guten Morgen, hoffe mal, das ist keine illegale Werbung.

    https://www.facebook.com/groups/967872949952771/
    (IoT mit dem NanoESP)

    Angelegt für weitere, weitergehende Experimente, Erfahrungsaustausch, Bilder, Videos…

    Viel Spaß
    Jens

  5. NM

    Hallo – ich mühe mich ziemlich ab mit dem Kalender.
    Und das weil viele Details nicht ausführlich genug dargestellt werden.
    Auch bin ich heute noch nicht wirklich dahinter gekommen was eigentlich „in Bytes umrechnen lassen und diese in die Program-Variable eintragen“ bedeutet. Richtig ich kann den HTML-Code in die Zwischenablage kopieren und dann im AJAX Byte to Char Konverter in die Zahlenreihe umwandeln.
    Aber wohin muss ich den Zahlencode dann eintragen?
    Hier wäre eine präzise Angabe wichtig.

    Mir ist auch nicht klar warum die IP Adresse mit /LED erweitert werden muss – wer kann das erklären?

    Vielen Dank im Voraus

    1. Karsten

      Moin,

      Die HTML Seite wird durch die Umrechnungn in Byte platzsparender im Modul gespeichert. Nach der Umrechnung im Konverter mußt Du das Ergebnis in die Zeile const byte site[] PROGMEM = {}; zwischen die geschweiften Klammern eintragen. Das brauchst Du aber nur machen wenn Du die HTML Seite geändert hast.
      Die Angabe /LED übergibt beim Seitenaufruf einen String der die LED an oder aus schaltet, das war allerdings für den Sketch am 12. gedacht. Am 13. wird die LED über die Buttins der Webseite geschaltet.

  6. Silver79

    Hallo,

    Nachdem totalen Desaster von Tag 7, haben die Tage 8 bis 10 auf Anhieb funktioniert.
    Aber seit Tag 11 sieht es wieder düster aus.
    Laut Status Monitor, tut alles wie es soll (auch die CIPMUX und CIPSERVER Befehle bringen ein „OK“) aber weder in Chrome, noch in IE, noch in Firefox lässt sich eine Seite über die IP des Boards aufrufen.
    Und auch im Status Monitor ist während dem Aufrufversuch keine Aktivität zu sehen.
    Ein Dauerping auf die IP des Boards ergibt „Zielhost nicht erreichbar“.
    Lediglich wenn man versucht die IP in einem Browser zu öffnen, ändert sich das sporadisch zu „Zeitüberschreitung der Anforderung“.
    Irgendwas passiert also aber nichts funktioniert wie es soll.
    Über ernst gemeinte Lösungsvorschläge würde ich mich freuen (schließlich war der Kalender nicht ganz billig).
    Bitte nicht wieder fragen ob SSID und Passwort stimmen – die WLAN Verbindung wird hergestellt.

    1. fk (Beitrag Autor)

      Hi,
      was passiert, wenn du das Modul wieder als AcceaPoint einstellst und über das Boardnetz die IP 192.168.4.1 Aufrufst (nachdem du den PC mit dem Board verbunden hast)?

    2. jz

      Sind das NanoEsp Board und der PC oder das Tablet im gleichen WLAN? Oder wird ein Guest-WLAN verwendet?
      Sonst muss „Guest isolation“ aus-, rsp. „Verbindung ins eigene Netz zulassen“ eigeschaltet werden.

  7. Eric

    Hi,
    Ich komme beim 11. Dezember nicht mehr weiter. Ich habe alles so befolgt wie auf der Anleitung, doch ich bekomme einfach keine Nachricht im Serial Monitor (Das die Webseite verbunden ist). Was kann ich machen?

    1. Hannes

      Hast Du die
      #define SSID „[your SSID]“
      #define PASSWORD „[your password]“
      mit Deinen Daten erstzt und passen die? Ohne eckige Klammern?
      Beispiel:
      #define SSID „t-mobile123456789“
      #define PASSWORD „xYz12hurz!“

      1. Eric

        Hi Hannes
        Ja habe ich gemacht, das LED D3 leuchtet auch.

        1. Hannes

          Und Du bekommst auf dem Monitor keine Meldung dieser Art:
          [Ausgabe Start]
          WLAN Connected
          My IP is:

          AT+CIFSR

          +CIFSR:STAIP,“10.0.0.6″ -> Die IP Adresse Deines Moduls
          +CIFSR:STAMAC,“18:fe:34:a4:66:61″ -> Die MAC Adresse

          OK

          Server Aktiv
          [Ausgabe Ende]?

          1. Eric

            Hallo Hannes
            Das Programm von heute sieht bei mir genaso aus wie oben beschrieben. Doch ich kann die LED nicht an bzw. ausschalten. Am 11. komme ich auch nicht auf den Server. Ich bekomme keine Rückmeldung des Browsers. Was stimmt noch nicht???
            Besten Dank für deine Hilfe.

          2. Hannes

            Hallo Eric,

            das Experiment vom 11. ist recht rudimentär. Und die Kommandozeilen-Eingabe trickreich bzw. anfällig. Ein Tippfehler oder einmal zuviel / zuwenig ENTER gedrückt und die Sache ist nur mehr mit Strom weg zu beheben (zumindest bei mir). Und es wird offenbar nicht bei jedem Browser etwas angzeigt (wie in den Kommentaren zu lesen ist mag z.B. der Safari nur richtigen HTML Code und das ist ein einzelnes „Hallo“ nun einmal nicht). Und sonst tut sich auch nicht viel (keine LED involviert). Am Ende steht ein einsames „Hallo“ auf dem Browser Fenster. Ist eher etwas für jene die wirklich wissen wollen was „hinter den Kulissen“ passiert. Würde da meine Zeit nicht darauf verschwenden.
            Was die heutige Aufgabe angeht: Siehtst Du die Seite (wie oben abgebildet) wenn Du die IP Adresse eingibst? Und was passiert wenn Du auf den LED ON – Button klickst? Siehtst Du die Zeilen am Monitor wie von Noob gepostet? Hast Du die LED schon überprüft z.B. wie ich im Kommentar vorgeschlagen habe?

          3. Eric

            Hallo Hannes
            Erst mal herzlichen Dank für deine Antwort.
            Doch ich sehe die Internetseite nicht so wie oben dargestellt. Wenn ich die IP-Adresse im Browser eingebe, kommt nur: Diese Webseite kann nicht angezeigt werden. Im Serial Monitor steht, der Server sie aktiv. Braucht es irgendwelche speziellen Einstellungen am Router oder im Browser?

          4. Hannes

            Hm… kannst du mal die Ausgabe vom Status-Monitor posten? Vieleicht ist Dein nano auf AP gestellt. Dann baut der nano sein eigenes W-LAN auf und Du musst das Gerät mit dem Du zugreifen möchtest erst auf die SSID (das W-LAN) des nano umstellen (wobei dann mit Internet nix mehr ist…).
            Andersrum gefragt: Bist Du sicher dass der nano und Dein Gerät (PC, Handy, Tablet) über das selbe W-LAN verbunden sind?

  8. Christoph

    Beginnt Spaß zu machen!
    Tag 11,12,13 ohne Probleme, habe heute sogar mein iPhone zum Ledschalten überreden können (weiß jetzt was Safari ist ;).

    Zwei Fragen noch.
    Werden Programme immer nur mit USB Kabel auf das Modul geladen?
    Wie geht das mit der Veränderung der Webseite? Verstehe da nur jedes zehnte Wort.

    1. Noob

      Zum Abändern der Website musst Du zuerst die .html-Datei öffnen (ist im heutigen Download mitgeliefert), allerdings mit einem Programm wie dem Editor oder Notepad++ (so hat es zumindest bei mir funktioniert). Wenn du sie dann umschreiben willst… Nun, man muss sich wohl in HTML auskennen.
      Wenn Du meintest, wie die Website in die Zahlenreihe umgewandelt wird… Nun, keine Ahnung. Solange der Arduino mit den Zahlen klarkommt, muss ich das nicht :P Die Umwandlung dient dazu, dass der Code für den Arduino (beispielsweise)nicht von einem Anführungszeichen im HTML-Code der Website kaputtgemacht wird.

      (Disclaimer: Ich bin ein Noob, daher sind meine Kommentare nicht zwingend der Weisheit letzter Schluss. Wenn ich einer Fehler gemacht habe, korrigiert mich einfach!)

    2. Hannes

      Wenn Du am original Code arbeitest und nur den HTML-Teil ändern möchtest:
      – Die HTML Datei (ToogleLed.html) in einem Editor (z.B. Notepad) öffnen.
      – Ändern was immer Du ändern willst.
      – Die vorgeschlagene Webseite öffnen.
      – Den gesamten HTML Code in das obere Feld kopieren
      – [Convert to Bytes]-Button klicken -> byte Code wird erzeugt
      – Den erzeugten Code kopieren und damit die Zeile 15 ersetzen.
      – Neu übersetzen und in das Board laden (ja, via USB)
      – ev. Strom-Reset

      Anmerkung:
      Neustart dauert immer etwas (>20sek) – Geduld.
      Jedes Mal wenn ein Kommando gesendet wird, muss auch die Webseite neu verschickt werden. Das dauert. Also immer „langsam“ (>5sek) klicken.

  9. Noob

    Ich bekomme soweit alles gestartet (ich sehe auch den entten Infotext von wegen „Switch LED“), aber wenn ich die LED schalten will, ändert sich bei der LED nichts. Im Seriellen Monitor bekomme ich die Meldung

    Server Aktiv
    Incomming Request
    Website send OK
    Incomming Request
    Website send OK
    Incomming Request
    Website send OK
    Incomming Request
    Website send OK
    Incomming Request
    Website send OK

    (ich habe es einige Male versucht). Die LED ist richtigherum angeschlossen, und ich habe es auch mit mehreren Kabelstücken versucht, also ist es wahrscheinlich auch kein Wackelkontakt… Bleibt da noch eine Fehlerquelle übrig? Wenn ja, bitte helfen :)

    1. Noob

      Ich hatte das gleiche Problem schon im gestrigen Versuch, aber da hat niemand geantwortet.

      1. Huetta

        Die Meldungen sind richtig.
        Bei war es ein Wackelkontakt bei der LED

    2. Hannes

      Da gibt es viele Möglichkeiten, daher vermutlich die wenigen Antworten.
      Die Meldungen sagen erst einmal nur, dass die Kommandos vom Browser durch kommen und die Webseite als Antwort neu verschickt wurde.
      Ein genereller Tip um das einzugrenzen ist, vorübergehend eine Routine einzubauen die die LED blicken lässt. Z.B. digitalWrite(LED, !digitalRead(LED)); delay(500); neben „void loop() {“ in Zeile 33. Damit kann Hardware eingegrenzt werden (Verdrahtungsfehler, Bauteile). Wenn die LED blinkt, wieder ausbauen und auf der Message-Ebene weiter suchen.
      Wie man die ganze GET-Message als Debug-Information heraus bekommt, hab‘ ich auch noch nicht raus. Da müssen erfahrenere Leute einspringen.

  10. bluetrain

    Hallo,
    heute wie gestern: im Prinzip läuft das Modul als Webserver, aber stabil ist anders. Ein guter Tip hier war, das Modul nach dem Hochladen mal kurz stromlos (AUS) zu machen. Nach dem Anlauf antwortet das Modul oft schon beim ersten Versuch, spätestens beim 2ten.
    Warum das ?
    Wenn man die Knöpfe zu schnell nacheinander drückt – ist es erstmal tot, kommt nach einigen Browser-Aktualisierungen aber wieder.
    Wenn ich ein Weilchen (>30s) gar keinen Knopf betätige passiert das selbe.
    Egal ob Firefox vom PC oder Firefox vom Tablet.

  11. Martin

    Hi,

    ich hab heute das Problem, dass ich die LED zwar oft anbekomme aber nicht mehr aus. Im Browser findet er die Seite nicht mehr und bekomme einen Seitenladefehler. Im Serial Monitor bekomm ich oft Errors. Z.B.
    ESP SEND ERROR: AT+CIPCLOSE=0
    Woran kann das liegen? Port 55005 und 55006 hab ich auch schon probiert.

  12. nerd

    Am meisten lernt man aus eigenen Fehlern und eigenen Versuchen.
    Am zweitmeisten kann man aus Fehlern Anderer lernen.

    Merke: es lohnt sich, die Kommentare durchzulesen!

    Dabei kann man auch noch besonders viel Spass haben.

  13. bla

    Da sich sowieso keiner die Kommentare der vergangenen Tage durchliest versuch ich es hier:
    Seit Tag 4 bekomme ich direkt nach anschalten:
    „ESP SEND ERROR: AT+RST
    AP ready
    ESP SEND ERROR: AT+CIPSTART=“UDP“,“192.168.4.255″,90,91″.
    Danach ist der AP zwar vorhanden, aber das board reagiert weder auf Befehle noch kann ich Pakete an das Board schicken.
    Da ich keinerlei Probleme beim upload habe und der Code unveraendert ist, gehe ich davon aus dass der WLAN chip Probleme macht.
    Hat jemand eine Idee wie ich das Problem in den Griff bekomme?

    1. fk (Beitrag Autor)

      Hi,
      hast du mal versucht den timeout fur den Rest Befehl hoch zu setzten?

      1. bla

        Hi,

        ja hatte ich. Hatte auch unzaehliges resetten versucht.
        Bei Tag 4 konnte ich alle 10+ Versuche nach Strom ab eine Verbindung herstellen und Befehle senden/empfangen.

        Bisher hatte ich Linux in vmware auf OS X benutzt.
        Hab jetzt doch mal Linux auf dem Desktop gebootet und nun funktioniert alles auf Anhieb.
        Wundert mich dass die Uebertragung vom Programm problemlos funktioniert hat und nur die Kommunikation mit dem WLAN Modul Probleme bereitet hat.

        Trotzdem danke fuer die Hilfe.

        1. bla

          Ah ich habe das Problem gefunden.
          Ich hatte die Arduino Version vom ubuntu packetmanager verwendet(1.0.5). Mit der aktuellen tut es auch in der VM (1.6.6)

  14. Basti

    Kann mir jemand helfen bei mir geht die LED weder an noch aus. Beim versuch gestern hat noch alles funktioniert aber heute geht es gar nicht. Ich habe zwar eine Verbindung zu meinem Router aufgebaut aber die LED geht nicht an oder aus.

    1. Dirk

      Hi Basti,

      hast du in deinen Browser, wie gestern die IP Adresse deines NanoESP mit /LED
      eingegebenen? Danach geht die Seite mit den 2 Button auf.

      1. Basti

        Danke jetzt funktioniert es. Hab es zwar vorher auch schon gemacht aber hab mich vertippt.

  15. Klaus

    Gibt es einen Vorteil, dass die Webseite in Bytes konvertiert wurde? Im Beispielprogramm hier auf der Homepage (Webserver_RGB_Example) wurde ein Char-Array als PROGMEM genutzt, was dann viel lesbarer ist. Hat diese Variante irgendeinen Nachteil?

    1. fk (Beitrag Autor)

      Hi,
      ich habe damals das Byte Format gewählt, damit Zeichen, wie z.B. Anführungszeichen etc., nicht den Quelltext verhageln.

      Allerdings hab ich danach irgendwann ein gutes Online-Tool gefunden, dass den String C-kompatibel macht und ab dann Char-Arrays benutzt. Also gibt es keinen Vorteil mehr für die Byte Konvertierung.

      Link zum Konverter:
      http://www.percederberg.net/tools/text_converter.html

      1. Klaus

        Gibt es sowas auch als Offline-Tool? Das macht ja einen super Eindruck, was die Seite da kann.

        1. General Overnight

          Ja, probier mal das auf der Kommandozeile (Terminal):

          # perl -e ‚while(){$i=0;split //;for $char (@_) {print „,“ if $i++; print ord($char);};print „\n“;}‘ ToogleLed.html

          Anm.: WordPress ersetzt leider alle doppelten Hochkommas durch die deutschen Gänsefüßchen, dass heißt, richtig muss es so aussehen: “ … “ und nicht so: ,, … “

          1. General Overnight

            PS:

            for dem „while“ muss auch ein einfaches Hochkomma stehen und kein Komma.

            Test: vielleicht klappt es ja mit "Quelltext" oder [code]“Quelltext“[/code] ?

          2. General Overnight

            OK, also nochmal die Kommandozeile ohne WP-Verunstaltung:

            perl -e 'while(){split //;my $i=0; for my $char (@_) {print "," if $i++; print ord($char);};print "\n";}' ToogleLed.html

          3. General Overnight

            PPS: Du kannst das ganze auch in eine Skript-Datei packen (verbesserte Version):
            #! /usr/bin/perl -w

            while(){
            my $i=0;
            my @chars = split //;
            for my $char (@chars) {print "," if $i++; print ord($char);};};
            print "\n";

            als Datei bytechar.pl o.ä. abspeichern und ausführbar machen chmod a+x bytechar.pl bei Unix-Systemen wie Linux und Mac OS X, sollte auch bei Windows gehen, kann ich aber nicht testen

          4. Klaus

            Das meinte ich aber nicht. Ich meinte den Konverter:
            http://www.percederberg.net/tools/text_converter.html

            Aber wie Du im Forum siehst, habe ich einen Teil inzwischen selbst programmiert.

          5. General Overnight

            Korrektur: WP hat leider noch zwei Zeichen geschluckt und zwar zwischen den runden Klammenr nach dem while, richtig ist:


            #! /usr/bin/perl -w

            while(){
            my $i=0;
            my @chars = split //;
            for my $char (@chars) {print "," if $i++; print ord($char);};};
            print "\n";

        2. General Overnight

          Sorry, hab ich übersehen, gibts aber auch fertig als Tool z.B. GNU recode

  16. Jan

    Hallo,
    Ich möchte auch einmal zu Wort kommen und verkünden das ich den Kalender zurück schicken werde! Ich habe mich oft gefragt ob der Autor nur eine bestimmte Wortanzahl für Erklärungen hatte ! Die Idee ist echt einfach spitze, aber die Umsetzung ist bei mir Leider etwas schlecht gelaufen! Bis Tag 10 kam ich mit, doch dann hat sich das Board nicht mehr mit meiner FRITZ!Box verbunden! Da kam dann immer ESP ERROR AT+CWJAP=WLANDATEN
    nachdem ich dann alles versucht habe und nix funktioniert hat! Bin ich zum Schluss gekommen das ich die weiteren Experimente ja alle eine intakte WLAN-Verbindung benötigen!
    Noch Viel Erfolg und Happy Christmas!

    1. jz

      Wobei zu untersuchen wäre, ob es nicht an der FRITZ!Box liegt.
      Falls man keinen alternativen Access Point (steckbare Modelle sind billig) verfügbar hat, kann man auch fast jedes Smartphone als AP verwenden (tethering).

      1. Jan

        OK!???
        Ich habe von deiner Antwort leider nur die 1/2 verstanden! Den 2. Satz gar nicht! Ich vermute auch das es an der FRITZ!Box liegt aber sie ist eine der neusten auf dem Markt und andere Technik habe ich nicht! Ansonsten habe ich die Box auf Automatische Einstellung gestellt!

        1. Sören

          du musst die eckigen klammern bei der eingabe des Netztwerks und dessen Passwort weglassen oder du musst immer im Programm wenn eine 90 kommt sie mit 55005 ersetzen und bei einer 91 mit 55006 ist ein bischen mühe aber so funktionierts bei mir jeden tag.

        2. jz

          Ich bin kein Lehrer und halt nicht gewohnt, mich für das allgemeine Publikum verständlich auszudrücken; Pech für dich, dass ich nicht helfen kann.
          Falls du ein Smartphone hast, kannst du versuchen, Einstellungen zu wählen, dann unter „Drahtlos & Netzwerke“ den Eintrag „Mehr..“ wählen, dann „Tethering & mobiler Hotspot“ wählen, dann „Mobiler WLAN-Hotspot“ konfigurieren und wählen. Mit dem Beispiel von Tag 1 kannst du dann prüfen, ob du dieses neue WLAN aufgelistet bekommst.

          Ist natürlich kompliziert. Aber der IoT-Kalender ist zum lernen da.

          Vergiss nicht, die Konfguration des Smartphones wieder zurück zu ändern, wenn dieser Versuch abgeschlossen ist.

          1. Jan

            DANKE! PUH… Da habt ihr mir mit den Klammern den entscheidenden Hinweis gegeben!! Danke!!!- Und IHR habt ja recht aber wenn man so viel probiert und alles geht nicht ist man schon enttäuscht-Danke! Jetzt geht es !!! Ich wäre nie darauf gekommen!!!!

  17. Leonard Voss

    Heute hat es wieder mit den Standard Einstellungen im Router fuktioniert: 802.11b+802.11g+802.11n. Warum gestern nicht?. Aber es wird wirklich immer spannender!

    1. Madcow

      Probier mal den Timeout in espConfig() von 5s auf 10s zu erhöhen. Außerdem kann es helfen das komplette Modul nach dem Update neu zu starten (kurz Stromlos).

  18. bernd

    Wird immer spannender

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.