Gast
#5228319
Gibt es eine Möglichkeit oder fertige Lösung, einen ESP8266 oder ESP32 über ein Webinterface zu programmieren? Ich könnte mir z.B. ein Python-Terminal im Browser vorstellen.
|
Anzeige
|
ESP über Webinterface programmieren?
Gast
#5228319
Gibt es eine Möglichkeit oder fertige Lösung, einen ESP8266 oder ESP32 über ein Webinterface zu programmieren? Ich könnte mir z.B. ein Python-Terminal im Browser vorstellen. Möglich ist das durchaus, fertige Lösungen sind mir auf Anhieb allerdings nicht bekannt. Wobei das auch nur dann einfach funktioniert, wenn der ESP mit einer Firmware für eine Script-Sprache (LUA, Python, JavaScript o.Ä.) betrieben wird, nicht mit der Arduino-Software.
Gast
#5228782
>Hier z.B. >http://www.esp8266.com/viewforum.php?f=38 Danke für den Link. Das ist schon mal ein sehr interessanter Hinweis. Hier gibt's die Originalseite https://www.esp8266basic.com/ und das Repository: https://github.com/esp8266/Basic/tree/NewWebSockets Die Arduino IDE gibt es doch auch als Web-Service und der ESP kann OTA geflasht werden. Ist aber wahrscheinlich nicht das was du suchst. ESPeasy lässt sich stark konfigurieren. Lässt sich LUA nicht über IP ansprechen?
Gast
#5228823
>Die Arduino IDE gibt es doch auch als Web-Service und der ESP kann OTA >geflasht werden. >Ist aber wahrscheinlich nicht das was du suchst. Danke, darauf bin ich auch schon gestoßen. Aber es schien so, dass man spezielle Arduino-IDE-Versionen ( 1.6.9 ... ) braucht und das war mir suspekt. Der Grund für mein Vorhaben: ich hatte ein Geburtstagsgeschenk mit einem Arduino Nano-Klon und CH340 gebastelt und beim "Beschenkten" ist es dann an der Treiberinstallation gescheitert. Ich hatte das Problem schon mal bei verschiedenen Workshops und ich schätze, dass es bei ca. 1 von 10 Rechnern größere Probleme gibt. Deshalb will ich jetzt etwas haben, dass direkt über den Browser ohne Installation funktioniert. Für die Bastelleien reicht meistens sowieso ein einfacher Script-Interpreter mit dem man z.B. ein Servo "ge-timed" vor und zurück laufen lassen kann oder zur Not auch mal auf einen Sensorwert triggern kann.
Gast
#5228837
>Danke, darauf bin ich auch schon gestoßen. Aber es schien so, dass man >spezielle Arduino-IDE-Versionen ( 1.6.9 ... ) braucht und das war mir >suspekt. OTA hat nichts mit der Arduino Version zu tun. OTA wird in den ESP geflasht und von da an kannst du per Browser dein Programm runterladen, komplett ohne Arduino IDE.
Gast
#5228874
Deine Anforderung klingt für mich nach NodeMCU bzw. Luna Scripte. Kennst du das?
Gast
#5228889
Die online IDE dazu ist espsky.com
Gast
#5228912
>Deine Anforderung klingt für mich nach NodeMCU bzw. Luna Scripte. Kennst >du das? Danke, kenne ich nicht, werde es aber mal anschauen. Im Moment gibt's gerade ein anderes Problem: Ich habe die NodeMCUs schon länger herum liegen, aber noch nie was damit gemacht. Jetzt habe ich mal testweise das Arduino-AccessPoint Beispiel geflasht https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiAccessPoint/WiFiAccessPoint.ino aber statt das sich das Ding mit "ESPap" meldet, taucht "FarryLink_3DEEB1" mit voller Signalstärke und offen auf. Wie muss ich das interpretieren?
Gast
#5228914
Stefan U. schrieb: > Luna Scripte Luna? Was hat der Esp mit BitchX zu tun? Oder meinst Du eher LUA? Das würde dann wieder zu NodeMCU passen?
Gast
#5228926
> Wie muss ich das interpretieren? Wenn man keinen bestimmten Namen festlegt wird einer automatisch generiert nach diesem Muster. Scheinbar hast du da einen Bug entdeckt. Bei meinem WiFi Monitor klappt das jedoch. Dass das Ding einen AP darstellt ist Sinn dieses Programms. Meinst du mit "offen" ohne Passwort? Im Quelltext ist aber ein Passwort definiert und bei meinem Wifi Monitor funktioniert das auch definitiv. Es kommt mir so vor, als hättest du ein anderes Programm installiert, als das von Dir verlinkte. Probiere das mal: http://stefanfrings.de/esp8266/WifiMonitor.zip Sorry ja ich meinte LUA, nicht Luna.
Gast
#5228940
>Scheinbar hast du da einen Bug entdeckt. >Bei meinem WiFi Monitor klappt das jedoch. Zuerst hatte ich das Arduino-Blink-Programm geflasht, was einwandfrei ging. Dann zum Test den genannten simplen Access-Point. Vielleicht liegt es an der Version des NodeMCU, die ich habe: https://www.amazon.de/gp/product/B01N4OYOKD/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 da steht "ESP8266 12E" In der Arduino IDE kann man zwei Flashgrößen auswählen. In der Beschreibung finde ich aber nicht welche.
Gast
#5228953
>Probiere das mal: http://stefanfrings.de/esp8266/WifiMonitor.zip
Sorry, das hat sich jetzt überschnitten, weil Du nochmals editiert hast,
während ich schon schrieb.
Dein WifiMonitor meldet sich korrekt.
Warum auch immer das Arduino-Webserver mit dem falschen Namen meldet
....
Gast
#5228969
An der Version des ESP Moduls wird es vermutlich nicht liegen denn Arduino tauscht beim Upload immer die gesamte Firmware aus.
Gast
#5228974
Irgendwas ist seltsam. Nach Deinen WifiMonitor habe ich noch mal den einfachen AccesPoint gefflasht. Jetzt meldet er sich mit dem richtigen Namen, dafür kann sich mein Tablet aber nicht authentifizieren. Für heute gebe ich's mal auf ... mal morgen weiter sehen ..
Gast
#5229162
Die SSID und das Passwort werden nach jeder Änderung automatisch dauerhaft gespeichert. Möglicherweise wird in diesem problematischen Testprogramm die WiFi Klasse falsch initialisiert. Eventuell kommt es auf die Reihenfolge der Befehle an:
Gast
#5229168
chris schrieb: > dafür kann sich mein Tablet aber nicht authentifizieren Sonderzeichen in der SSID evtl Mal entfernen falls welche drin sind. Kommen immernoch nicht alle Geräte mit klar...
Gast
#5229247
Danke für die Beiträge. Mittlerweile funktioniert es. Das mit der Authentifizierung hat auch geklappt. Es geht nur sehr lange, bis sich das Tablet mit dem ESP verbunden hat. Scheinbar werden dafür mehrere Versuche gebraucht. Im Moment experimentiere ich gerade ein wenig mit dem ESP-Basic. Man kann tatsächlich den ESP über die Weboberfläche programmieren und hier gibt es Beispiele dazu: https://www.esp8266basic.com/examples.html Der Syntax Unterscheidet sich ein wenig von dem was ich kenne. Die "delay" Funktion funktioniert nur im Sekundenbereich gut. Alles was schneller sein soll ist ungleichmäßig. Außerdem musste ich erst die Pin-Zuordnung heraus finden. Es werden nämlich nicht die logischen PinNummern ( D0, D1, D2 usw ) sondern die GPIO PinNummern verwendet. Was ich auch noch nicht weiß: gibt es einen Autostart? Sonst muss man jedesmal zuerst in der Weboberfläche das Programm starten.
Gast
#5229255
Autostart hat das, glaub nach einer minute
Gast
#5229257
> Die "delay" Funktion funktioniert nur im Sekundenbereich gut. Alles > was schneller sein soll ist ungleichmäßig. Das liegt an der Funktionsweise der Firmware und dürfte jede Programmiersprache betreffen.
Gast
#5229621
>Das liegt an der Funktionsweise der Firmware und dürfte jede >Programmiersprache betreffen. Vermutlich die Routinen für den Wifi-Zugriff. Gibt es so was ähnliches wie das ESP8266-Basic für den ES32? Da sollte das Problem dann vermeidbar sein.
Gast
#5231098
>Autostart hat das, glaub nach einer minute
Ich habe es gerade raus gefunden: In den "Settings" muss man ein
Häckchen setzen, dann startet es nach einer Weile automatisch.
Gast
#5231100
In den Examples gibt es ein Beispiel für einen "Analog Graph". Hat das schon mal jemand probiert, bei mir wirft es immer einen Fehler.
Gast
#5231156
Der Aufbau des ESP8266-Basic ist interessant. Es wird die Arduino-API als Unterbau benutzt. Ich hatte mich schon gewundert, warum das Basic so viel Peripherie wie z.B. TFT-Displays unterstützt. Durch die Arduino-API können die ganzen für Arduino verfügbaren Libraries eingebunden werden und damit steht ein riesiges Treiber-Reservoir zur Verfügung. An das Basic werden dann nur noch die Treiber über Basic-Kommandos drann gehängt. Hier ist das Kommandointerpreter-File: https://github.com/esp8266/Basic/blob/NewWebSockets/ESP8266Basic/Commands.ino
Gast
#5231618
Das ESP-Basic hat schon einige graphische Bedienelement eingebaut, die es in eine HTML-Seite einbinden kann. Ich habe mal alle Elemente in eine GUI-Demo gepackt, die ich gefunden habe.
Gast
#5231641
vielleicht das hier https://learn.adafruit.com/micropython-basics-esp8266-webrepl/access-webrepl micropython bietet auf dem ESP8266-Port eine WebREPL an
Gast
#5231745
Python finde ich auch besser als Basic. Ich weiß aber nicht wie gut sich MicroPython gegenüber Python schlägt. Wenn ich es richtig sehe, braucht WebRepl auch eine Installation auf der Rechnerseite. EspBasic hat demgegenüber einen riesigen Vorteil. Man kann einfach über den Browser darauf zugreifen. Ob über's Smartphone, Tablet, Mac, Linux, Windows: es funktioniert überall über den Webbrowser. Das ist in einer Zeit, in der man 50% seiner Zeit mit der Suche von Installationsfehlern beschäftigt ist, Gold wert.
Gast
#5232108
WebREPL geht auch ohne Installation auf PC-Seite https://micropython.org/webrepl/ Und was die Unterschiede zu CPYthon angeht: https://github.com/micropython/micropython/wiki/Differences
Gast
#5233169
MicroPython klingt interessant. Für was steht WebRepl? Web-Reply? Praktischerweise gibt es einen Port für den ESP32: https://github.com/micropython/micropython-esp32/tree/esp32/ports/esp32 und fertige Binaries für den ESP: http://micropython.org/download chris schrieb: > Für was steht WebRepl? Web-Reply? REPL steht für "Read-Eval-Print-Loop": https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop Etwas vereinfacht gesagt: Mit REPL bezeichnet man die Shell bei Programmiersprachen, die eine interaktive Shell anbieten (z.B. Python, JavaScript, Node.js, LUA, LISP usw.). Eine solche interaktive Shell (ein "Webinterface" ist ja eigentlich auch nichts anderes) hängt eng mit der Verfügbarkeit einer "eval"-Funktion zusammen: Wenn eine Programmiersprache eine "eval"(uate)-Funktion hat, dann hat die Programmiersprache normalerweise auch eine interaktive Shell, und dann ist es normalerweise auch sehr einfach möglich, ihr ein "Webinterface" zu verpassen. Und eine "eval"-Funktion haben normalerweise nur interpretierbare Script-Sprachen, die vor der Ausführung nicht erst (wie z.B. Java- oder C/C++-Code) kompiliert werden müssen. Der Name REPL kommt von LISP, wo sich eine interaktive Shell als Einzeiler aus genau diesen vier Befehlen implementieren lässt:
Gast
#5233181
Ah ... danke für die ausführliche Erklärung :-) Jetzt versuche ich mal, MicroPython auf dem ESP32 zu installieren. Dazu brauche ich - das esptool.py https://github.com/espressif/esptool - eine Installationsanleitung https://techtutorialsx.com/2017/05/20/esp32-micropython-support/ ( leider für Windows ) 1. Flash löschen
2. Binary flashen
Das flashen funktioniert scheinbar gut und ergibt mir dieses Meldung:
Jetzt brauche ich Minicom als Terminal: http://processors.wiki.ti.com/index.php/Setting_up_Minicom_in_Ubuntu Aber leider gibt mir der ESP32 folgendes zurück:
Hat jemand eine Ahnung, warum es diesen Fehler geben könnte?
Gast
#5237300
Es gab hier schon mal einen Beitrag Beitrag "Re: BASIC für ESP8266 Module" chris schrieb: > Auto-detected Flash size: 4MB Das passt möglicherweise nicht zu deinem 8MB Binary.
Gast
#5237321
>Das passt möglicherweise nicht zu deinem 8MB Binary. Das wäre ein gutes Argument, aber ich habe das Binary von hier: http://micropython.org/download#esp32 und wenn ich es richtig sehe, hat es kleiner 1MByte: >Auto-detected Flash size: 4MB >Compressed 936288 bytes to 587494...
Gast
#5237324
Das muss nicht viel heißen. Es kann sein, dass diese Firmware den Flash Bereich von 5-8MB für Konfigurationsdaten oder ein OTA Update nutzt.
Gast
#5237331
Aufgrund der Hinweise habe ich es noch mal probiert. Das Flashen muss ab Adresse 0x1000 passieren:
Minicom zeigt jetzt dieses:
Was ich als gutes Zeichen werte. Allerdings reagiert es nicht auf meine Eingaben ....
Gast
#5238122
Mit Teraterm auf Windows funktioniert MicroPython einwandfrei ( VT100 Emulation ). Mit Minicom auf Linux erhält MicroPython scheinbar keine Tastatureingaben ( Einstellung VT102 )
Gast
#5238330
ich habe mal Micropython an 0x00000 geflasht und siehe da, es geht auch mit minicom unter Linux: ./esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0 esp8266-20171101-v1.9.3.bin
Gast
#5238601
Meine Installation war für den dem ESP32, weil ich vermute, dass der weniger durch Webzugriffe ausgebremst wird und hoffe, dass für das Micropython auch der zweite Kern benutzt wird.
Im Moment tendiere ich aber noch zu ESP8266BAsic, da es dort einfache Graphikbeispiele für den Webbrowser gibt: https://www.esp8266basic.com/graphics-example.html Gibt es ähnliche Graphikwebserverbeispiele für Micropython?
Gast
#5238648
Der ESP8266 läuft normalerweise mit 80Mhz. Davon geht nur ein Bruchteil für die Netzwerk-Kommunikation drauf (laut Hersteller 1/4). Man kann die Taktfrequenz darüber hinaus nochmal verdoppeln. > ESP32, weil ich vermute, dass der weniger durch Webzugriffe > ausgebremst wird Mach Dir darüber weniger Sorgen.
Gast
#5238886
Gast
#5238908
Wenn ich es richtig sehe, geht es dort um Displays. ESP8266Basic bietet die Graphk aber für die Browseroberfläche. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|