Hallo, ich kann ganz gut Delphi, SPIN und etwas assembler programmieren. Nur HTML sagt mir noch fast gar nix. Zur Zeit bastle ich mit und nodeMCU (ESP8266)/Lua. Da gibt es hier und da Beispielcode für superklitzekleine ultrapico-Webserver. Ich verwende hier sehr bewusst die Bezeichnung ultrapico. Der "Webserver" soll ja auf dem ESP8266 laufen und nicht auf einem PC. folglich muss der auch kein PHP, SQL, Perl, Java und wie die PC-Sachen sonst noch alle heißen sondern nur ein ganz kleines bisschen auf Mausklicks reagieren und Strings mit vielleicht 4-20 Zeichen in Empfang nehmen oder auf den Bildschirm schreiben. Ein KISS-Webinterface um einige Status/Meßwerte anzuzeigen und Parameter einzustellen. Mehr nicht. Daher der Name Ultra-pico. Ich hoffe das war jetzt genug der Vorrede das mir niemand mit Appache-Server oder dergleichen ankommt. Wo gibt es im Web ein Tutorial, dass die ganz elementaren Grundlagen erklärt? In einem Beispielcode den ich bisjetzt zum lernen verwende kommt da zum Beispiel vor srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); print("string.find(request..)") end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.."(h1) ESP8266 Web Server(/h1)"; buf = buf.."(p)GPIO0 (a h ref=\"?pin=ON1\")(button)ON(/button)(/a) (a h ref=\"?pin=OFF1\")(button)OFF(/button)(/a)(/p)"; buf = buf.."(p)GPIO2 (a h ref=\"?pin=ON2\")(button)ON(/button)(/a) (a h ref=\"?pin=OFF2\")(button)OFF(/button)(/a)(/p)"; Dazu würde ich gerne ein Tutorial lesen um im Detail zu verstehen was da abgeht. Was ich bis jetz vermute ist folgendes srv:listen(80,function(conn) conn:on("receive", function(client,request) starte einen "Server" der auf Port 80 (http) "hört" Wenn ein Client einen "request" sendet dann empfange den request-string Aber was genau machen die Code-Zeilen if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); print("string.find(request..)") end ??? Den empfangen String nach bestimmten Zeichenketten durchsuchen?? Da habe ich noch eine Menge Fragezeichen wie das abläuft. Meine Fragen betreffen den Datenaustausch zwischen aufrufendem Browser und Server. Da weiß ich noch nicht mal mit was für Stichworten ich danach googeln sollte. Wäre ganz große Klasse wenn mir da jemand Tips geben könnte. viele Grüße Stefan
Hi Stefan, die Antwort auf Deine Frage würde ich zweiteilen: 1.) Um zu verstehen, wie ein Webserver mit einem Browser kommuniziert, solltest Du Dir das HTTP-Protokoll genauer anschauen. Dazu gibt es 1 Mio. Tutorials im Netz. Anschließend kann es nicht schaden, wenn Du Dir das HTTP- Protokoll einmal "live" auf Deinem PC mit einem Netzwerk- Sniffer (z.B. wireshark) anschaust, während Du durch die Gegend surfst. 2.) Dein o.g. Beispiel ist in der Skriptsprache "LUA" geschrieben. Nachdem Du die Grundlagen von HTTP verstanden hast, würde ich mir an Deiner Stelle ein LUA-Tutorial vornehmen. Wenn Du schon etwas programmieren kannst, so ist LUA recht einfach zu erlernen. Auch dazu gibt es 10.000 Tutorials im Netz. Good luck Andreas
Hi Andreas, vielen Dank fürs antworten. Andreas S. schrieb: > Hi Stefan, > > die Antwort auf Deine Frage würde ich zweiteilen: > > 1.) Um zu verstehen, wie ein Webserver mit einem Browser > kommuniziert, solltest Du Dir das HTTP-Protokoll genauer > anschauen. Dazu gibt es 1 Mio. Tutorials im Netz. > > Anschließend kann es nicht schaden, wenn Du Dir das HTTP- > Protokoll einmal "live" auf Deinem PC mit einem Netzwerk- > Sniffer (z.B. wireshark) anschaust, während Du durch die > Gegend surfst. Ich habe eine Menge Erfahrung damit Tutorials im Netz zu lesen. 98% dieser Tutorials sind von bescheidener Qualität. Beispiel zum Flashen einer Firmware: Man versetzt das nodeMCU-Board in den flashmode und startet den Flashvorgang. Ja schön. WIE versetzt man das Board in den Flashmode??? Da fehlt dann ganz oft die Sorgfalt noch die Details hinzuzuschreiben. Reset-Taster gedrückt halten. Dann Flashtaster drücken, zuerst Resettaster loslassen dann Flashtaster loslassen. Status-LED blinkt kurz auf. Das gäbe bei mir Schulnote 2 Schulnote 1 für das Tutorial gäbe es nur dann wenn jetzt auch noch erklärt würde Welcher Pin am board ist der Reset-Pin, welcher ist der "flash"-pin auf welches Spannungsniveau low/high wird der beim Drücken gezogen und bei welchem Spannungswechsel wird der Flashmode aktiviert. Dann könnte man die Informationen sogar für abweichende Boards benutzen. Dieser Thread ist mein Versuch den Suchprozess nach den 2% Tutorial die von guter Qualität sind abzukürzen, dadurch das jemand der ein hochwertiges Tutorial kennt mir einen entsprechenden Link postet. > > 2.) Dein o.g. Beispiel ist in der Skriptsprache "LUA" geschrieben. > Nachdem Du die Grundlagen von HTTP verstanden hast, > würde ich mir an Deiner Stelle ein LUA-Tutorial vornehmen. > Wenn Du schon etwas programmieren kannst, so ist LUA > recht einfach zu erlernen. Auch dazu gibt es 10.000 > Tutorials im Netz. > Das Problem mit den Lua-Tutorials ist, das sie sich auf Lua konzentrieren. Wenn dann müsste es ein Tutorial sein das speziell die nodeMCU-Firmware-module "net", und evtl. "http" anhand von Beispielen erklärt und nicht nur eine dürre Referenz. Die Referenz habe ich natürlich gelesen aber da bleiben immer noch eine Menge Fragen offen. Die könnte ich jetzt natürlich durch eine Menge Versuch und Irrtum klären aber das macht mir keinen Spaß mehr. Die Phase das mir nahezu blindes herumtinkern Spaß gemacht hat ist vorbei. Und ich will auch das Verhalten der Befehle nicht durch Austesten aller erdenklichen Varianten mit naturwissenschaftlicher Gründlichkeit ergründen. > Good luck > Das Glück die 2% gute Tutorials zu finden war mir bisher nicht beschieden. Daher hier die Frage. Vielleicht ist jetzt klarer geworden was mein Ziel ist und wie ich vorgehen möchte. Also wenn jemand weder Lust hat es selbst zu erklären noch links zu wirklich guten Tutorials kennt vielleicht auch mal nicht antworten. Trotzdem vielen Dank an Andreas. Deine Antwort hat mir geholfen genauer beschreiben zu können was mein Ziel ist und wie ich vorgehen möchte. viele Grüße Stefan
Stefan L. schrieb: > Das Problem mit den Lua-Tutorials ist, das sie sich auf Lua > konzentrieren. Liegt ein wenig in der Natur der Sache ;-) > Wenn dann müsste es ein Tutorial sein das speziell die > nodeMCU-Firmware-module "net", und evtl. "http" anhand von Beispielen > erklärt und nicht nur eine dürre Referenz. Die hier kennst Du vermutlich(?) : http://nodemcu.readthedocs.io/en/master/ http://www.luafaq.org/ http://lua-users.org/wiki/LearningLua Leider liegt mein kleiner ESP-LUA-Ausflug schon 2 Jahre zurück und ich habe inzwischen alles wieder vergessen. Ich kann Dir nur meine Links von damals hier auflisten - ob Sie Dir zusagen, ist natürlich Geschmackssache: http://benlo.com/esp8266/esp8266QuickStart.html https://www.allaboutcircuits.com/projects/guts-of-the-iot-part-1-building-nodemcu-from-source-for-the-esp8266/ https://www.allaboutcircuits.com/projects/how-to-make-an-interactive-tcp-server-nodemcu-on-the-esp8266/ https://github.com/marcoskirsch/nodemcu-httpserver Und gaaanz wichtig: schau Dir unbedingt das Repository der nodemcu-firmware an - dort findest Du genau das, was Du suchst - nämlich schöne Beispiele mit LUA für ESP: https://github.com/nodemcu/nodemcu-firmware Auch Kolban's book on ESP8266 habe ich teilweise in guter Erinnerung (ich hatte allerdings nur die ersten Seiten mit den Anschlußbelegungen gelesen): https://leanpub.com/ESP8266_ESP32 Ach ja - und das ESP8266-Forum solltest Du ebenfalls nicht missen. Ist recht gut besucht. Dort gibt es auch ein nodemcu - Unterforum: http://www.esp8266.com/ An mehr kann ich mich leider nicht erinnern. Nur noch daran, dass man in der Tat ein bißchen wurschteln mußte und dass mein SMTP-Beispiel aus dem o.g. Repository leider ziemlich buggy war. Insgesamt schien mir die ESP-Geschichte sowieso weitaus weniger ausgereift als die meisten Dinge im Umfeld ATmega oder gar ARM. Ich habe z.B. viele Stunden versenkt um festzustellen, dass das WLAN-Modul im ESP die Ergebnisse des AD-Moduls im ESP beeinflußt und man daher durch irgendwelche Klimmzüge verhindern muß, dass dieses WLAN-Modul in Schlafmodi geht, weil diese Sleepmodes die AD-Genauigkeiten schrotten. > Die Referenz habe ich natürlich gelesen Oh weh - da bist Du vermutlich schon schlauer als ich. > aber da bleiben immer noch eine Menge Fragen offen. > Die könnte ich jetzt natürlich durch eine Menge Versuch und Irrtum > klären aber das macht mir keinen Spaß mehr. Die Phase das mir nahezu > blindes herumtinkern Spaß gemacht hat ist vorbei. > Und ich will auch das Verhalten der Befehle nicht durch Austesten aller > erdenklichen Varianten mit naturwissenschaftlicher Gründlichkeit > ergründen. Kann ich verstehen - in diesem Fall würde ich persönlich Dir vom ESP8266 abraten, denn Dich erwartet genau das, was Du nicht willst. > >> Good luck >> > > Das Glück die 2% gute Tutorials zu finden war mir bisher nicht > beschieden. Daher hier die Frage. Entscheide selbst, ob einer meiner Links Deinen 2%-Ansprüchen genügt. > Vielleicht ist jetzt klarer geworden was mein Ziel ist und wie ich > vorgehen möchte. Also wenn jemand weder Lust hat es selbst zu erklären > noch links zu wirklich guten Tutorials kennt vielleicht auch mal nicht > antworten. Ich hab's trotzdem gewagt :-) > Trotzdem vielen Dank an Andreas. Deine Antwort hat mir geholfen genauer > beschreiben zu können was mein Ziel ist und wie ich vorgehen möchte. Hab's verstanden, aber so richtig gute Doku, wie ich sie aus dem Umfeld ATmega, ARM, 8086, Z80 oder UNIX kenne, konnte ich im ESP8266-Umfeld bei meinen LUA-Versuchen ebenfalls nicht auftun. > > viele Grüße > > Stefan Dito Igel1
:
Bearbeitet durch User
Hallo Andreas, vielen Dank für deine Links. Ich kannte noch nicht alle. Werde die jetzt mal ansurfen.... Viele Grüße und Frohe Ostern Stefan
HTML-Crash-Kurs für microcontroller HTML4µC einfache simple WEB-GUIs Hallo Leute, also jetzt habe ich einen geeigneten HTML-Crashkurs gefunden. https://www.webmaster-crashkurs.de Webmaster hört sich ja etwas hochtrabend an aber der Kurs ist gut. Gute Reihenfolge der Grundlagen. Nicht zu ausführlich. Erscheinungsbild der Webseiten und des HTML-codes direkt nebeneinander. gefällt mir gut. Hätte ich unter dem Namen aber nicht vermutet.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.