Hallo, ich suche ein Beispiel für einen Webserver mit einem ESP8266 Modul und zwar OHNE Verwendung von Arduino. Ein schlichtes C Programm mit den wesentlichen Dingen, um einen Webserver auf zu bauen. Gibt es so etwas?
Hallo, findet man durchaus im Netz wenn man sucht. Passende IDE mit dem SDK für den ESP8266 installieren. Sich durch das SDK wühlen und die mötigen Funktionen zusammensuchen, um WiFi in Gang zu bekommen usw. Einen HTTP-Servercode finden, anpassen und einbauen. Es sind relativ wenige, die den ESP von Grund auf programmieren wollen. Aufwand/Nutzen-Frage. Die Mehrheit greift auf die funktionieren Arduino-Bibliotheken für den ESP zu, einige nutzen die NodeMCU-Firmware und LUA. Ohne all das mußt Du ja eben mehr als den Webserver haben, das ist mit ein paar Zeilen C auf dem nackten ESP8266 nicht zu realisieren. Gruß aus Berlin Michael
Also ich kommuniziere ja bereits mit dem Modul, kann Befehle schicken, AP und TCP Server aufsetzen, benötige jetzt aber irgendwie mal ein Beispiel, welche Schritte zusätzlich nötig sind, um von hier aus nun einen Webserver aufsetzen zu können.
ESP schrieb: > und TCP Server aufsetze Ein Webserver ist auch nur ein TCP Server. Welcher das HTTP bedienen kann. Die Spezifikation findest du hier: https://www.w3.org/Protocols/rfc2616/rfc2616.html Ja, nicht frisch, aber für dich sicher ausreichend.
ESP schrieb: > Also ich kommuniziere ja bereits mit dem Modul, kann Befehle schicken, > AP und TCP Server aufsetzen, Dann musst Du jetzt nur noch die Spezifikation von HTTP grob überfliegen und implementieren (ist ein extrem simples textbasiertes Protokoll, es stammt noch aus der Zeit bevor der Bloat in Mode kam). Wenn Du alles bis hinauf zu TCP schon hast ist der Rest ein Kinderspiel.
:
Bearbeitet durch User
ESP schrieb: > Hallo, > > ich suche ein Beispiel für einen Webserver mit einem ESP8266 Modul und > zwar OHNE Verwendung von Arduino. > Ein schlichtes C Programm mit den wesentlichen Dingen, um einen > Webserver auf zu bauen. > > Gibt es so etwas? http://www.esp8266.com/ ist die Seite, wenn es um den ESP8266 geht.
Dieses Ding http://www.ulrichradig.de/home/index.php/software/avr-webserver-software ist plein C, das macht bißchen http, email, ntp. Läuft gut. Cheers Detlef
An dieser Stelle verstehe ich nicht warum man nicht von dem partizipieren sollte was die Arduino Leute hier geleistet haben. Die Arduino IDE ist dafür ja nicht nötig, aber die Libs sind so schlecht nicht. Das musst du erst mal selbst in einer ähnlichen Qualität hinkriegen. Wer wie du nach Beispielcode für einen einfachen httpd-Server als Kopiervorlage fragt, dürfte aber gefühlte Lichtjahre davon entfernt sein. Gerade auf dem ESP8266 wo man ausser mit printf kaum debuggen kann und jeder Zyklus: Code ändern->flashen->probieren->vor den Kopf klopfen und wieder von vorn deutlich länger dauert als das was man z.B. bei der Cortex-Entwicklung gewöhnt ist, empfinde ich das ehr als Segen. Außerdem ist der gesamte ESP8266 durch seine internen Tasks schon gut ausgelastet und man muss diese Tatsachen ständig im Hinterkopf haben, sonst endet es im Watchdog-Reset. Alles hier im Forum gut nachzulesen. Nodemcu ist für mich jedenfalls überhaupt keine Alternative. Hier noch eine andere Programmiersprache ins Spiel zu bringen kosten Zeit und Nerven und am Ende klemmt es an allen Ecken.
temp schrieb: > Nodemcu ist für mich jedenfalls überhaupt keine Alternative. Da muss man unterscheiden, zwischen dem "Board" und der Software. Die Boards sind schon ok, verwende ich gerne. Aber das Lua Zeugs, damit kannste mich jagen.
ok, habe gerade einen TCP Server auf Port 80 eröffnet und danach diese IP Adresse aus meinem Webbrowser aufgerufen. Habe dann im Terminalprogramm sehen können, was mir der Browser zurückschickt und muss nun wohl erstmal sehen wie ich das übersetze. Was ich aber auch schon ausprobiert habe, ist einen leeren HTTP Header zurück zu antworten und darauf habe ich dann auch gleich die Daten im Browser angezeigt bekommen, hab aber auch nur eine Überschrift hingeschickt. Als ich die Daten zweimal geschickt habe, hat die Webseite die Daten einfach untereinander geschrieben, also nach dem ersten Aufruf stand Überschrift 1 auf der Seite. Nach dem zweiten senden stand dann Überschrift 1 Überschrift 1 Ändere ich dann den Text, erhalte ich nach erneutem Senden Überschrift 1 Überschrift 1 geänderter Text Wird also alles untereinander weg geschrieben. Muss ich mich wohl etwas in die HTML Geschichte einlesen wie ich die Daten nun schön anzeigen kann.
Aber eine Frage habe ich noch speziell zu dem Board: Ich musste ja nun in dem Browser meine IP Adresse eingeben. Wie kann ich das ESP Modul konfigurieren, dass es auf irgendeinen spezifischen Namen reagiert und ich nicht die IP Adresse auswendig lernen muss?
Dein Client hat sicherlich eine hosts Datei. Da kannst du den ESP eintragen. Alternativ: 1. Einen DNS Eintrag im Router. 2. Multicast DNS
Meine Fritzbox erkennt die Hostnamen der WLAN Clients und stellt sie via DNS zur Verfügung. Also wenn ich mein ESP Modul "Kanne" nenne, dann kann ich im Web Browser http://Kanne eingeben. Leider kann das nicht jeder WLAN Router. Auf der Arbeit haben wir keinen DNS Server, da sind wir es alle gewohnt, manuell Einträge in die hosts Datei zu machen.
ESP schrieb: > Wie kann ich das ESP Modul konfigurieren, dass es auf irgendeinen > spezifischen Namen reagiert und ich nicht die IP Adresse auswendig > lernen muss? Dafür gibt es den DNS und das ist (meist) die Aufgabe vom Router.
ESP schrieb: > Als ich die Daten zweimal geschickt habe, hat die Webseite die Daten > einfach untereinander geschrieben, also nach dem ersten Aufruf stand Hast du nach der ersten Übertragung die Verbindung beendet?
Dirk B. schrieb: > Hast du nach der ersten Übertragung die Verbindung beendet? In ca 2H kann man das HTTP noch nicht verstanden haben. ;-)
temp schrieb: > Code ändern->flashen->probieren->vor den Kopf klopfen und wieder von > vorn > > deutlich länger dauert als das was man z.B. bei der Cortex-Entwicklung > gewöhnt ist, empfinde ich das ehr als Segen. Außerdem ist der gesamte > ESP8266 durch seine internen Tasks schon gut ausgelastet und man muss > diese Tatsachen ständig im Hinterkopf haben, sonst endet es im > Watchdog-Reset. Alles hier im Forum gut nachzulesen. > Nodemcu ist für mich jedenfalls überhaupt keine Alternative. Hier noch > eine andere Programmiersprache ins Spiel zu bringen kosten Zeit und > Nerven und am Ende klemmt es an allen Ecken. Das "noch eine andere Programmiersprache" verstehe ich nicht. Ich benutze nur lua auf dem Esp. Ich geb zu, ich hab da Vorkenntnisse. Die vorhandenen Module nehmen einem schon viel Arbeit ab. So gibt es einen Modul für die WS2812, da muß man sich nur noch um das Lichtmuster kümmern. Es macht schon einen Unterschied, ein Filesystem zur Verfügung zu haben und nur ein paar k Lua-Code hochzuladen statt der ganzen Firmware. Da man immer eine Konsole hat, ist es ein bisschen wie das Programmieren der ersten Basic Computer nur mit Flash statt Kasettenrekorder. Zum Testen kann man auch vieles direkt eintippen und sieht sofort, wo der Hund begraben ist. So ein Webserver ist da kein großes Ding. Mit dem Filesystem im Hintergrund sieht das fast wie auf einem richtigen Computer aus, so mit index.html etc. MfG Klaus
Schau mal in mein Buch http://stefanfrings.de/mikrocontroller_buch/index.html In Band 2 erkläre ich die Grundlagen vom HTTP Protokoll und im Band 2 zeige ich ein konkretes Anwednungsbeispiel des ESP8266 über AT Befehle.
Hallo, @ Klaus (Gast): das wird wohl immer eine philosphische Frage bleiben. ;) Für mich wäre LUA eine "andere" Programmiersprache. Filesystem (SPIFFS) usw. habe ich auch ohne LUA auf dem ESP. Damit sieht auch der Webserver nicht nur fast wie auf dem richtigen Computer aus, ich lade die Dateien aus dem Webinterface des ESP per Upload hoch und fertig. Natürlich bleiben bestimmte Grenzen des ESP dabei trotzdem. Wenn ich aber z.B. ein bild.jpg mit 300kB ins Filesystem hochlade wird es mir eben im Browser mit http://xxx.xxx.xxx.xxx/bild.jpeg angezeigt usw. Natürlich geht nur das, wo ich Routinen zum Behandeln der MIMI-Typen auch eingebaut habe. Der ESP-Webserver soll ja nur das zur Verfügung stellen, was man auch sinvoll dort benutzt. Ob man den Kram jetzt in C, C++, LUA oder auf einem AVR per AT-Command zum ESP macht, ist nur eine Frage des Aufwandes. >So gibt es einen >Modul für die WS2812, da muß man sich nur noch um das Lichtmuster >kümmern. Die NeoPixelBus_by_Makuna Library nutzt I2S mit DMA auf dem ESP8266, da stören auch Webserver, JS-Colorpicker usw. die Darstellung auch bei vielen LEDs normalerweise nicht. Wenn die NodeLUA-Module das auch sicherstellen kann man sicher auch LUA nehmen. Gruß aus Berlin Michael
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.