{"id":10532,"date":"2024-04-14T06:15:54","date_gmt":"2024-04-14T06:15:54","guid":{"rendered":"https:\/\/www.fambach.net\/?p=10532"},"modified":"2024-04-14T07:49:58","modified_gmt":"2024-04-14T07:49:58","slug":"esp-web-serial-bibliothek","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/esp-web-serial-bibliothek\/","title":{"rendered":"ESP WEB Serial Library"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Grundsatzliches\" title=\"Grunds\u00e4tzliches\">Grunds\u00e4tzliches<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Task_Erstellen\" title=\"Task Erstellen\">Task Erstellen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Synchronisation\" title=\"Synchronisation\">Synchronisation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Queues\" title=\"Queues\">Queues<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Semaphoren\" title=\"Semaphoren\">Semaphoren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Event_Groups\" title=\"Event Groups\">Event Groups<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Stream_Buffer\" title=\"Stream Buffer\">Stream Buffer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Message_Buffer\" title=\"Message Buffer\">Message Buffer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Hooks\" title=\"Hooks\">Hooks<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#FreeRtos_Implementierung\" title=\"FreeRtos Implementierung\">FreeRtos Implementierung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#IDF_Implementierung\" title=\"IDF Implementierung\">IDF Implementierung<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Ringbuffer\" title=\"Ringbuffer\">Ringbuffer<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Fazit\" title=\"Conclusion\">Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Verwandte_Beitrage\" title=\"Related Posts\">Related Posts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Quellen\" title=\"Sources\">Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>Bei Projekte die nicht am seriellen Port h\u00e4ngen k\u00f6nnen ist die Fehleranalyse manchmal hardn\u00e4ckick. Um so sch\u00f6ner dass es Projekte wie die WEB-Serial Biliothek gibt die es erm\u00f6glichen einfach eine Website auf dem ESP zu  \u00f6ffnen um serielle Ausgaben dort zu zeigen. <\/p>\n\n\n\n<p>Ich habe die freie version der Bibliothek ausporbiert. Es gibt auch noch eine Pro Version die ein paar zus\u00e4tliche Funktionalit\u00e4ten wie eine Scrollbar, Stop Knopf und einen Clear Knopf besitzt. <\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/ayushsharma82\/WebSerial\">https:\/\/github.com\/ayushsharma82\/WebSerial<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">In den Code Geschaut<\/h1>\n\n\n\n<p>Der Code is recht \u00fcberschaubar, es gibt eine WebSerialClass und eine Website die mittels gzip komprimiert und als Array hinterlegt ist. W\u00fcrde man die Seite decodieren, w\u00e4re viel Java Script zu sehen und wenig HTML.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Programming<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Libraries<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/ayushsharma82\/WebSerial\" target=\"_blank\" rel=\"noreferrer noopener\">WebSerial Bibliothek<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/me-no-dev\/AsyncTCP\" target=\"_blank\" rel=\"noreferrer noopener\">ESPAsyncTCP<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/me-no-dev\/ESPAsyncWebServer\" target=\"_blank\" rel=\"noreferrer noopener\">ESPAsyncWebServer <\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"306\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/WebSerialArduinoGuiLibInstall.jpg\" alt=\"\" class=\"wp-image-10537\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Beispiel Programm<\/h2>\n\n\n\n<p>Ein Beispielprogramm wird auch hier mitgeliefert.<\/p>\n\n\n\n<p>Meine Version des Programms ist unter folgenden Link zu finden wobei zum gr\u00f6sten Teil dem Beispielprogramm des Bibliotheksentwicklers entspricht.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/sfambach\/esp32\/tree\/master\/src\/WebSerial\">https:\/\/github.com\/sfambach\/esp32\/tree\/master\/src\/WebSerial<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So sieht es aus<\/h2>\n\n\n\n<p>Wie man sieht nimmt der freie Speicher ab  \ud83d\ude09<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"544\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/WebSerialWebpageOutput.jpg\" alt=\"\" class=\"wp-image-10538\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Miscellaneous<\/h1>\n\n\n\n<p>Es gibt ein ganz \u00e4hnliches Projekt, die Oberfl\u00e4chen sehen recht gleich aus. Allerdings entschuldigt sich der Entwickler, dass es sich hierbei schon um die Proversion handelt ;).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"220\" height=\"181\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/WebSerialLite.jpg\" alt=\"\" class=\"wp-image-10539\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/github.com\/asjdf\/WebSerialLite\">https:\/\/github.com\/asjdf\/WebSerialLite<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p>Dei Bibliothek ist einfach installiert und eingebunden und kann bei der Fehlersuche ohne serielle Verbindung sehr hilfreich sein. Ob die Pro Version die Investition von rund 60$ wert ist, muss jeder f\u00fcr sich entscheiden. Bei 20$ h\u00e4tte ich wahrscheinlich garnicht viel dr\u00fcber nachgedacht, 60$ finde ich f\u00fcr Hobbyprojekte etwas viel. Es gibt weitere Anbieter solcher Bibliotheken, jeder sollte f\u00fcr sich entscheiden ob ihn diese unter Sonstiges gezeigte Grauzone es wert ist.<\/p>\n\n\n\n<p>F\u00fcr mich war es der Einstieg in dynamische Webseiten. Ich wollte die Funktionalit\u00e4t analysieren, dies wurde etwas erschwert durch die gzip array variante der Website. Hat man diese Hyrde genommen zeichnet sich der Code durch unn\u00f6tig komplexe JavaScript-Magie aus somit war dieses Beispiel nicht sehr hilfreich f\u00fcr mich und ich werde nach anderen Ausschau halten.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Related Posts<\/h1>\n\n\n<div class=\"display-posts-listing\">\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp-web-serial-bibliothek\/\">ESP WEB Serial Library<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp01-relay-platinen-2\/\">ESP01 \u2013 DHT11 Temperature and Humidity Sensor Boards<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/customkeyboard\/\">CustomKeyboard Library<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp8266-32-wifi-manager\/\">ESP8266\/32 WiFi Manager.<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/\">ESP01 \u2013 Relay Board<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/neo-6m-gps-logger-shield-v1-0\/\">NEO-6M GPS Logger Shield V1.0<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/zumo-v1-2\/\">Zumo V1.2<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp8266-rtos-sdk\/\">ESP8266 RTOS SDK<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF \u2013 GPIOs<\/a><\/div>\n<div class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF \u2013 Tasks<\/a><\/div>\n<\/div>\n\n\n\n<h1 class=\"wp-block-heading\">Sources<\/h1>\n\n\n\n<p><a href=\"https:\/\/github.com\/ayushsharma82\/WebSerial\">https:\/\/github.com\/ayushsharma82\/WebSerial<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/randomnerdtutorials.com\/esp32-webserial-library\/\">https:\/\/randomnerdtutorials.com\/esp32-webserial-library\/<\/a><\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/onlinestringtools.com\/convert-ascii-to-string\n<\/div><\/figure>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Bei Projekte die nicht am seriellen Port h\u00e4ngen k\u00f6nnen ist die Fehleranalyse manchmal hardn\u00e4ckick. Um so sch\u00f6ner dass es Projekte wie die WEB-Serial Biliothek gibt die es erm\u00f6glichen einfach eine Website auf dem ESP zu \u00f6ffnen um serielle Ausgaben dort zu zeigen. Ich habe die freie version der Bibliothek ausporbiert. Es gibt auch noch eine &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\" class=\"read-more-link\">Continue reading <span class=\"screen-reader-text\">\"Espressif IDF &#8211; GPIOs\"<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a>","protected":false},"author":1,"featured_media":10538,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[187,335],"tags":[71,33,148,23],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/10532"}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=10532"}],"version-history":[{"count":10,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/10532\/revisions"}],"predecessor-version":[{"id":10573,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/10532\/revisions\/10573"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/10538"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=10532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=10532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=10532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}