Ich moechte euch heute ein etwas anderes VT100 Projekt vorstellen - ESPTerm Diesmal gibt es fast nichts zu loeten - kostet nur wenige Euro - Ready to Use ! Anwendungen: uP Systeme bekommen eine WEB Benutzerschnittstelle ueber einen seriellen Port mit geringstem Aufwand Als Benutzerschnittstelle dient ein normaler Desktop oder Mobile Browser Es sind auch optional einfache Netzwerkfaehigkeiten vorhanden Ich werde es zusammen mit MicroMites verwenden http://geoffg.net/Downloads/Micromite/Getting%20Started%20with%20the%20Micromite.pdf - damit habe ich ein standalone System, das keine Entwicklungsumgebung fuer Aenderungen braucht Eventuell auch fuer diverse Retro Anwendungen interessant Historie: ESPTerm stammt zum Grossteil von Ondrej Hruska aus Prag mit Unterstuetzung einiger Kollegen aus dem Web Urspruenglich wurde ESPTerm fuer Mikroprozessorkurse an der Prager Universitaet entwickelt Nachdem Ondrej nur englisch und tschechisch spricht, stelle ich es hier vor: Detailfragen kann ich nur limitiert beantworten - Ondrej hat seine Email und eine Mailingliste in der Infopage von ESPTerm angefuehrt (dort gibt es auch einen Donate Button zur Unterstuetzung - er studiert ja noch !) Ich komme noch aus einer anderen Generation und beherrsche die hier verwendeten SW Tools nicht wirklich... Mein Beitrag waren viele Featuredefinitionen, Fehlereingrenzung und Details im Userinterface Ondrej hat das Projekt sehr gut und professionell dokumentiert - alles ist am GIThub einsehbar ESPTerm Vorstellung: Die Hardware ist minimal - ESP8266 in einer der vielen Bauformen Getestet ESP01S, ESP12, NodeMCU Die Software, Doku & Code findet ihr komplett auf GitHub https://github.com/espterm/espterm-firmware Fuer einen Ueberblick des GUI gibt es diese Demo - ist weitgehend identisch zum realen Code https://espterm.github.io/term.html Leistungsmerkmale der Terminalemulation - modifiziertes XTerm Dokument https://espterm.github.io/docs/espterm-xterm.html Die aktuelle Version findet ihr auf https://github.com/espterm/espterm-firmware/releases flashen mit den ueblichen ESP Tools - ist schon genuegend diskutiert worden Die Leistungsmerkmale kurz zusammengefasst: Terminalemulation mit serieller Schnittstelle (3,3 V Pegel ESP8266 ) Web basierendes Echtzeit Display - verwendet HTML5, Canvas, WEBSocket Benoetigt aktuellen Browser - am besten mit Chrome - Firefox und Safari sind ok, Msoft Edge ist grenzwertig langsam Weitgehende Kompatibilitaet mit VT102 plus Erweiterungen von XTerm Screen Size bis zu 80x25 Voller UTF-8 Support, alternative Character Sets Alle normalen Text Attribute, 256 Farben - optionaler Color Picker Durch das limitierte RAM des ESP sind derzeit 132 char Mode, double height, double width Characters nicht verfuegbar Mouse Tracking Mode kompatibel zu XTerm, Touch Screen funktioniert Viele Darstellungsmerkmale sind ueber Web Config Interface oder dynamisch ueber die serielle Schnittstelle konfigurierbar Titelzeile, Commandbuttons, Farben Optionales Hintergrundbild von externen Webserver Statisch konfigurierbar oder dynamisch vom seriellen Port aenderbar Ermoeglicht die einfache Verwendung von z.b. Grundrissen, Leitungsfuehrungen oder Grafiken mit dynamischen Text Overlay 5 frei konfigurierbare optionale Buttons zusaetzlich ist der gesamte Schirm ueber Escape Sequenzen optional als Touchscreen/Mouseclick nutzbar Debug Screen - zeigt alle Control Character an, ohne sie zu interpretieren Upload Tool mit diversen Optionen Umfangreiche integrierte Helppage mit Beispielen - derzeit noch in englisch GUI je nach Firmware englisch, deutsch oder tschechisch Benutzerfreundliche WIFI & Netwerk Konfiguration Static IP, DHCP, channel selection, power Optionaler Access Point SSID search utility fuer existierende Netzwerke Passwortschutz konfigurierbar fuer WEB Interface & separates Admin Passwort Settings im Flash geschuetzt - fuer Verwendung im Schulungsbereich optimiert Zusaetzlich zur Terminal Emulation gibt es ein integriertes Networking Feature (Das kann gleichzeitig zur Terminalemulation geschehen - es ist mit Private Message realisiert) Text Messages zu einem anderen ESPTerm WARNUNG: TeraTerm unterdrueckt die Private Message - es muss im Debug Mode laufen um die Private Message anzuzeigen API endpunkt (/api/v1/msg) fuer Messages messages von einem script am PC, web browser or CURL Kommandos fuer Anfragen an Remote Server und Empfang von Response Headers und optionalen Body Beispiele dazu in der Help Page - auch auf der Demo https://espterm.github.io/help.html
:
Bearbeitet durch User
Oliver, ich finde es ja auch genial ! - aber die Resonanz haelt sich hier sehr in Grenzen... In einer Woche einen ganzen Reply Ich haette zumindest die ueblichen Skeptiker mit hoffentlich konstruktiver Kritik erwartet Ich kann nur raten warum sich nichts tut - einige Theorien: Die echten Profis programmieren mal schnell ein vollgraphisches Webinterface auf einem ATtiny mit ein paar Zeilen Code, statt muehsam ein paar Escapesequencen zum ESP zu schicken Oldtimer die gerne mit einem VT100 arbeiten wuerden, trauen dem ESP nicht Funktioniert ja - ist keine Herausforderung - uninteressant... Ich denke fuer viele Projekte ist diese Loesung speziell zusammen mit einer MicroMite an Einfachheit schwer zu unterbieten Damit kann ich ohne jede Entwicklungsumgebung und ohne spezielle Client SW recht umfangreiche Projekte realisieren Was mir speziell an dieser Kombination gefaellt, dass ich auch nach Jahren ganz einfach mit dem integrierten MMbasic Editor ein paar Zeilen aendern kann, ohne eine komplette Entwicklungsumgebung mit allen Abhaengigkeiten zu rekonstruieren Aber der primaere Einsatz wird natuerlich eher bei Arduinos oder allen moeglichen Geraeten mit serieller Schnittstelle sein, die dadurch webfaehig werden Durch die "Serienschaltung" von ESP und Microprocessor habe ich auch mehr laengerfristige Sicherheit bei null Updateaufwand verglichen mit einer RPi Loesung Ohne echtes Betriebssystem gibt es einfach viel weniger Angriffspunkte Ich bin derzeit mit einigen anderen nichtelektronischen Projekten ausgelastet Aber ich werde versuchen einige Beispiele zu posten, um den Start zu erleichtern
Ich hatte mir das Projekt auch angesehen, bin mir jedoch über die Funktionsweise nicht ganz im Klaren. Eine VT100 (VT102) Terminal läuft auf einem PC im Webbrowser. Der ESP8266 stellt eine Verbindung zwischen der V24 Anwendung und dem PC über WLan her. Im Browser läuft nun das Terminal. Wo ist nun der Vorteil gegenüber einem beliebig anderen Terminalprogram? Möglicherweise habe ich das Projekt auch nicht richtig verstanden und das Terminal läuft komplett auf dem ESP8266. Auf diesen greife ich nun mittels Webbrowser zu. Dann frage ich mich jedoch, warum dieser Umweg? Dann nehme ich doch gleich wieder ein Terminalprogram. Vielleicht kann jemand Licht ins Dunkle bringen. Die Verwendung des Micromite ist wieder eine andere Geschichte…
Joe, das hast du im Prinzip ganz richtig erkannt Der Micro schickt/empfaengt Characterstrings ueber den seriellen Port Der ESP macht das gesamte Terminalhandling zu den Clients Ich brauche damit nur einen einigermassen modernen Browser mit einer Benutzeroberflaeche die jeder "Normalbuerger" verwenden kann Du brauchst keine Terminal App zu installieren - einfach URL eintippen Normales HTTP geht einfacher durch Firewalls Ich will z.b. meine Wintergartenmarkise & die Bewaesserung damit realisieren Dann kann jeder in der Familie (mit dem optionalen Password) darauf zugreifen Terminalprogramme habe da eine deutliche Schwelle - der WAF ist gering... Du kannst sinnvoll bis zu 3 Windows gleichzeitig offen haben zb einmal PC, einmal Android Tablet an der Wand, einmal iPhone portabel Alle zeigen synchronen Inhalt Ondrej hat sehr viele Optimierungen eingebaut um die RAM usage zu optimieren (Partial Updates, Inactive Window detection) Trotzdem ist 2-3 Windows die sinnvolle obere Grenze Ausserdem hast du Features die ein Terminalprogramm meist nicht hat: Du kannst den Titel und die optionalen buttons mit Escapesequenzen aendern Example Set Title: E$ = Chr$(27) B$ = Chr$(7) Print E$+"]0;This is a Test"+B$ Example Set Button: E$ = Chr$(27) B$ = Chr$(7) Print E$+"]81;Yes"+B$ Du kannst z.b. den Grundriss des Gartens als jpg aus dem Web oder von deiner NAS als Hintergrund verwenden dazu schickst du nur z.b. diese Zeichenkette an den ESPterm (Jpg Libelle...) E$ ]70;https://go.gl/sh4dny B$ (go soll goo heissen = aber das will der hier der Spamdetector nicht...) Das Bild wird dann auf der Clientseite direkt geladen Dann enabelst du Mouse support und kanst direkt auf "Zonen" tappen/klicken Das ESPTerm schickt dann eine Ascii Sequenz an den Micro mit den Koordinaten der Charactercell Example Mouse bei 80x24 Schirm: Mouse/Touch enable Print E$+"[?9h" Mouse/Touch disable Print E$+"[?9l" Linke obere Ecke liefert: [M!! = Hex 33,33 minus basevalue 32 gives 1,1 Rechte untere Ecke: [Mp8 = Hex 112,56 minus basevalue 32 gives 80,24 Du hast auch einen "Networking" Mode gleichzeitig mit dem Terminal Damit kannst du ganz einfach Text Messages zu andern IP addressen schicken Sendeseite: E$ ^M;DestIP;Meine Message B$ Empfangsseite: E$ ^m;DestIP;Meine Message B$ Dann noch einen HTTP mode um Webinfos abzugreifen etc... Ist einfach ein billiges Tool mehr in der Werkzeugkiste !
Guenter H. schrieb: > Ich brauche damit nur einen einigermassen modernen Browser > mit einer Benutzeroberflaeche die jeder "Normalbuerger" verwenden kann > [...] > Terminalprogramme habe da eine deutliche Schwelle - der WAF ist > gering... Das erklärt dann auch das ausbleibende Interesse. Hier findet man eben die Nerds, die keine Angst vor richtigen Terminal-Programmen haben, die wohl so ziemlich alles besser können als irgendeine Webapp.
Joe G. schrieb: > Wo ist nun der Vorteil gegenüber einem beliebig anderen > Terminalprogram? Der Knackpunkt dürfte sein - ein 'beliebiges anderes Terminalprogramm' läuft auf deinem PC, und spricht mit der Seriellen an deinem PC. Das Ding hier läuft auf einem ESP z.B. in Australien, und spricht mit der Seriellen des ESP. An der dann z.B. ein Arduino o.ä. hängt...
Das Problem aber ist mit einem seriellen Deviceserver und telnet/ssh schon seit Äonen gelöst, ohne daß man dafür einen Webbrowser brauchen würde.
Schon richtig Aber mit Telnet/ssh hast du eine reine Commandline/CLI aber kein GUI mit optionalen Hintergrundbild, das vom Micro in Echtzeit steuerbar ist Damit kannst du z.b. recht einfach brauchbare Tabbed Menus machen, die jpgs als intuitiven Hintergrund haben (Farben, Boxen, Grundrisse, Gliederung) Der Bildwechsel passiert ja nahezu sofort lokal im Browser, der Text kommt ueber z.b. 200+kbit auch in Bruchteilen von Sekunden Der ESP kann heute entweder ESPterm oder Telnet (verschiedene Firmware) Die HW (Aufwand) ist ohnehin gleich ESPTerm ist fuer mich eher eine serielle Grafikkarte mit Text Fokus zu minimalsten Kosten. Da kostet mich der einfachste LCD screen mehr - und der ist rein lokal Die SW am Micro ist weitgehend identisch, egal ob du ESPTerm oder Telnet machst - somit auch Geschmackssache Du kannst es aber auch laengerfristig als universelles Frontend fuer Mikros ohne Netzwerk IF sehen - dazu fehlen noch einige Iterationen Ondrej hat z.b. versprochen, dass er Telnet auch als alternative Option einbaut Dann ist das ein universell konfigurierbares Frontend Telnet/Web Er schreibt nur gerade seinen Master - da ist die Zeit leider knapp Aber die Sourcen sind alle auf GitHub - vielleicht findet sich hier ein Wissender ?
Ich habe einige ältere Geräte die eine serielle Schnittstelle haben, aber kein Netzwerk. Oder ein paar Dockstars, da ist die serielle zwar herausgeführt aber einfach kommt man da nicht dran. Profis würden das über einen Terminalserver machen oder so, bei mir tuts dann demnächst ein ESP für 2€.
Guenter H. schrieb: > Aber mit Telnet/ssh hast du eine reine Commandline/CLI aber kein GUI mit > optionalen Hintergrundbild, Gut möglich, aber ... das hat dann mit einem Terminal auch nichts mehr zu tun. Ein Terminal (wie z.B. das gute alte VT100) hat prinzipbedingt kein GUI, sondern nur ein TUI, und natürlich auch kein Hintergrundbild. Aber mit einem TUI ist doch deutlich mehr möglich als "reine Commandline": https://en.wikipedia.org/wiki/Midnight_Commander#/media/File:Midnight_Commander_4.7.0.9_on_Ubuntu_11.04.png https://de.wikipedia.org/wiki/Turbo_Pascal#/media/File:Turbopascal_6.png Ob man Hintergrundbilder für die Steuerung/Konfiguration von µCs tatsächlich braucht, mag natürlich jeder für sich selbst entscheiden.
Guenter H. schrieb: > Joe, das hast du im Prinzip ganz richtig erkannt > > Der Micro schickt/empfaengt Characterstrings ueber den seriellen Port > Der ESP macht das gesamte Terminalhandling zu den Clients Vielen Dank für die Erklärungen. Leider kann ich keinen Zusatznutzen gegenüber den üblichen Terminalprogrammen erkennen. Ob ich einen Webbrowser oder ein Terminal starte, die Funktionalität bleibt für mich gleich. Wünschenswert wäre ein eigenständiges Terminal (Bildschirm, Tastatur, Mouse) ohne einen ewigen Bootvorgang von Android, Linux oder Windows. Ich denke da z.B. an einen Raspberry Pi mit Bare Metal Programmierung wie [1]. [1] https://ultibo.org/make/
Kommt darauf an - ich habe meistens auf allen Geraeten einen Browser offen Damit brauche ich nur einen zusaetzlichen Tab und die Favorites gibt es auch ueberall Wenn aber nur wir Nerds das System verwenden, kannst du das beliebig komplex machen Sobald auch ein "Normalbuerger" das Ganze verwenden soll, macht es einen grossen Unterschied ob ich eine normale Webpage bediene oder eine eigene ungewohnte App brauche Viele Terminalprogramme auf Smartphones oder Tablets haben auch ihre Eigenarten und muessen erst richtig konfiguriert werden Der Term TUI ist mir neu - aber macht Sinn Ich komme genau aus dieser Zeit und diese TUIs sind natuerlich mit dem ESPTerm realisierbar Das Hintergrund jpg ist dann das Sahnehaeubchen, um es mit wenig Aufwand in die heutige Zeit/Erwartungshaltung zu integrieren Bevor ich ein komplexes Retrostyle Ascii Bild erzeuge, nehme ich auch eher Powerpoint/Paint und exportiere ein Slide mit der gewuenschten Grafik Anyhow - soll ja keine Verkaufsveranstaltung sein :-) Ich denke es ist ein gutes Tool in der Werkzeugkiste, welches in einigen Minuten einsatzfaehig ist wenn man es doch fuer sinnvoll erachtet Danke fuer die gute Diskussion - so sachlich ist es hier nicht immer ! Was ich gerne haette, waeren Inputs was noch fehlt und was eventuell geaendert werden soll z.b. haette ich gerne einen MQTT mode der auch parallel zum VT oder spaeter Telnet laeuft Damit kann man einen Micro einfach in ein IOT Netz einklinken und trotzdem auch lokal bedienen Da ist Ondrej aber noch skeptisch und sieht den Nutzen nicht wirklich Ondrej wuerde andererseits gerne noch Vektorgrafik fuer Zeiger etc.. implementieren - er meint, dass es relativ einfach waere
Guenter H. schrieb: > Was ich gerne haette, waeren Inputs was noch fehlt und was eventuell > geaendert werden soll > > z.b. haette ich gerne einen MQTT mode der auch parallel zum VT oder > spaeter Telnet laeuft > Damit kann man einen Micro einfach in ein IOT Netz einklinken und > trotzdem auch lokal bedienen ...weshalb ich ESP-link benutze ;-) - da gibt's nicht nur auch einen MQTT Mode, sondern vor allem auch eine Firmwareupload-Erkennung, u.a. auch für Arduino. So kann ich z.B. irgendwo verbaute Pro Minis bequem OTA vom Desktop aus aktualisieren. Auch die in 'Australien'... :)
ESPlink habe ich nur kurz gestreift - Arduino ist derzeit kein Thema fuer mich Micromites funktionieren ohne Sketches/IDE - alles purer ASCII upload/edit Ich dachte immer Australien ist Micromite dominiert :-) Aber sieht interessant aus ! Ideal waere eine Kombination aus beiden Welten - dann ist es wirklich ein universelles konfigurierbares Frontend Die Resourcen im ESP sind leider limitiert - alles gleichzeitig geht nicht Wie wird das MQTT bei ESPlink in den seriellen Strom gemuxt/demuxed ? ESPTerm verwendet halbwegs standardkonform private Messages fuer Peer2Peer Networking [Escape] ^M;DestIP;Meine Message [Bell] BTW Was mir wirklich abgeht, ist ein ESP Aequivalent mit wired Ethernet, eventuell sogar mit POE Option Die alte Regel - Wer Funk kennt, nimmt Kabel !
Guenter H. schrieb: > Was mir wirklich abgeht, ist ein ESP Aequivalent mit wired Ethernet, ESP32 kann das, man braucht nur einen externen PHY. Erstaunlicherweise (oder eher ärgerlicherweise) baut das praktisch niemand auf die üblichen Bastelboards, mal von Olimex abgesehen: https://www.olimex.com/Products/IoT/ESP32-GATEWAY https://www.olimex.com/Products/IoT/ESP32-EVB
Guenter H. schrieb: > ESPlink habe ich nur kurz gestreift - Arduino ist derzeit kein Thema > fuer mich > Micromites funktionieren ohne Sketches/IDE - alles purer ASCII > upload/edit > Ich dachte immer Australien ist Micromite dominiert :-) > > Aber sieht interessant aus ! > > Ideal waere eine Kombination aus beiden Welten - dann ist es wirklich > ein universelles konfigurierbares Frontend > > Die Resourcen im ESP sind leider limitiert - alles gleichzeitig geht > nicht ESP-Link soll auch noch mit 1MB laufen - mit 4MB-Esps wäre dann ja noch Platz...;) Hab's bislang aber nur mit 4MB-Modulen benutzt. > > Wie wird das MQTT bei ESPlink in den seriellen Strom gemuxt/demuxed ? Modem-Veteranen werden es noch kennen - per SLIP. Dazu ist natürlich clientseitig was zu tun, dafür gibt's dann die passende Esp-Client-Lib. Darüber sind dann auch REST-Aufrufe z.B. für eine Thingspeak-Anbindung möglich. Man kann halt mit sehr überschaubarem Aufwand bestehende Projekte sort-of-online bringen. > > > ESPTerm verwendet halbwegs standardkonform private Messages fuer > Peer2Peer Networking > [Escape] ^M;DestIP;Meine Message [Bell] > > > BTW Was mir wirklich abgeht, ist ein ESP Aequivalent mit wired Ethernet, > eventuell sogar mit POE Option ESP32? Man muss halt noch leider einen Phy dranhängen... > Die alte Regel - Wer Funk kennt, nimmt Kabel !
Danke Rufus & Jan das mit dem ESP32 wusste ich bisher nicht Die Preise fuer Olimex schrecken mich nicht wirklich Irgendwann kommt Chinaware zu einem Bruchteil Slip kenne ich eher historisch In einem frueheren Leben war ich 10+ Jahre bei Cisco... Aber ich habe immer etwas Bauchweh, wenn ich meinen geaenderten Code in einer komplexen Library/IDE Umgebung nach Monaten/Jahren neu bauen muesste Simple Textstrings, die man als Mensch noch interpretieren kann sind da schon vergleichsweise vertrauensbildend Ich denke bei simplen Systemen muss MQTT auf der Micro Seite nicht wirklich viel kommunizieren, wenn das Frontend die Low Level States abdeckt Falls doch jemand ESPTerm in der derzeitigen Form sinnvoll findet, wuerde ich mich ueber alle Inputs freuen
Ich habe die beiden Bin-Files mal auf ein NodeMCU-Board gebracht. Tatsächlich mit etwas Konfigurationsaufwand läßt sich ein Terminal im lokalen Netz einbilden :-) Ist das erst mal gelungen (das System hat sich dabei mehrmals aufgehangen) läuft es recht flott und stabil. Im nächsten Schritt werde ich mal ein CP/M anfädeln ;-)
Joe, freut mich dass es jetzt geht ! Das Hauptproblem mit den ESPs ist die Sensibilitaet auf Powersupplies Die wollen etwas stabiles, das den Spitzenstrom liefern kann Auch ausgeleierte Breadboards sind nicht gut dafuer Nach dem Einrichten des Netzwerks einmal Powercycle schadet nicht Bevorzugt im WLAN als Client, eigener AP abgedreht - spart Resourcen Mir ist es auch immer wieder passiert, dass ich mehrere Fenster offen hatte. Da tut sich der ESP schwer, da er ja nur vier gleichzeitige Verbindungen haben kann. Moderne Browser sind da recht aggressiv im Zugriff... Sonst laeuft das bei mir mit einem simplen Testprogramm, das einige Felder am Screen hochzaehlt und abwechselnd 2 Hintergrundbilder laedt problemlos seit Tagen
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.