{"id":36,"date":"2015-09-10T20:53:31","date_gmt":"2015-09-10T20:53:31","guid":{"rendered":"http:\/\/52.29.166.97\/myblog\/?p=36"},"modified":"2015-09-10T20:53:31","modified_gmt":"2015-09-10T20:53:31","slug":"experimente-mit-einem-wifi-modul-fortsetzung","status":"publish","type":"post","link":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/","title":{"rendered":"Experimente mit einem WiFi-Modul &#8211; Fortsetzung"},"content":{"rendered":"<p>F\u00fcr die ersten Gehversuche habe ich von Roland Elmiger ein NodeMCU (<a href=\"https:\/\/en.wikipedia.org\/wiki\/\u00adNodeMCU\">https:\/\/en.wikipedia.org\/wiki\/\u00adNodeMCU<\/a>) Modul zum Testen erhalten. Dieses enth\u00e4lt schon die ganze USB-TTL Logik inkl. Pegel\u00adwandler (allerdings sind die IO Ports nach wie vor nicht 5V-tolerant). F\u00fcr erste einfache Projekte ist deshalb nur ein Micro-USB Kabel n\u00f6tig, \u00fcber das die Programmierung und die serielle Kommunikation verl\u00e4uft. Auch eine LED f\u00fcr die ersten Blink-Experimente l\u00e4sst sich direkt ab dem USB-BUS versorgen. Alle 10 GPIO Ports sind hinausgef\u00fchrt und k\u00f6nnen beliebig als normaler Schaltport (GPIO), I2C oder PWM Ausgang definiert werden. Es gibt aber nur einen analogen ADC Eingang A0. Ein Nachteil des NodeMCU Moduls ist seine Breite: auf einem \u00fcblichen Steckbrett belegt es gerade die gesamte Breite, was nicht praktisch ist, da man keine Anschlussdr\u00e4hte mehr daneben einstecken kann.<\/p>\n<p><img loading=\"lazy\" class=\"wp-image-1274 aligncenter\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg\" alt=\"nodemcu-1\" width=\"450\" height=\"336\" srcset=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg 735w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2015\/09\/nodemcu-1-300x224.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<p>Als Alternative habe ich mit ein Huzzah ESP8266 von Adafruit gekauft. Dieses ist 2 Kontaktreihen schmaler, sodass es noch Platz f\u00fcr die Dr\u00e4hte gibt. Allerdings fehlt hier die USB-TTL Logik. Mit diesem Modul habe ich allerdings noch nicht experimentiert.<br \/>\n<img loading=\"lazy\" class=\"aligncenter wp-image-37\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2016\/03\/esp1.png\" alt=\"esp1\" width=\"378\" height=\"280\" \/><br \/>\nAls erste kleine Projektidee habe ich mir vorgenommen, den Inhalt einer Webseite per Programm herunterzuladen. Dazu habe ich wie im <a href=\"http:\/\/wp.andreas.bieri.name\/myblog\/index.php\/2015\/06\/11\/experimente-mit-einem-wifi-modul-esp8266\/\">Artikel von Roland <\/a>erw\u00e4hnt, den Compiler f\u00fcr die Arduino Plattform genommen und f\u00fcr das ESP8266-Modul erweitert.\u00a0Roland hat mir eine kleine Starthilfe gegeben\u00a0(siehe auch <a href=\"https:\/\/github.com\/esp8266\/Arduino\">https:\/\/github.com\/esp8266\/Arduino<\/a>):<\/p>\n<ul>\n<li>Update auf Arduino 1.6.5 resp. die neuste Version<\/li>\n<li>Dann in der IDE bei \u201eDatei\/Voreinstellungen\u201c bei \u201eAdditional Boards Manager URLs\u201c <a href=\"http:\/\/arduino.esp8266.com\/package_esp8266com_index.json\">http:\/\/arduino.esp8266.com\/package_esp8266com_index.json<\/a> eintragen<br \/>\nunter \u201eWerkzeuge\/Platine:\u201c den \u201eBoard Manager\u2026\u201c \u00f6ffnen und die noch fehlenden \u201eesp8266\u201c Programme installieren<\/li>\n<li>sich wundern, dass nichts funktioniert, aha, der Treiber fehlt. Wie heisst der wohl?<img loading=\"lazy\" class=\"aligncenter size-full wp-image-38\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2016\/03\/esp2.png\" alt=\"esp2\" width=\"318\" height=\"199\" srcset=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp2.png 640w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp2-300x188.png 300w\" sizes=\"(max-width: 318px) 100vw, 318px\" \/><\/li>\n<li>den leidigen fehlenden Treiber installieren und im Windows Ger\u00e4temanager pr\u00fcfen:<img loading=\"lazy\" class=\"aligncenter size-full wp-image-39\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2016\/03\/esp3.png\" alt=\"esp3\" width=\"252\" height=\"59\" \/>http:\/\/www.wch.cn\/download\/CH341SER_ZIP.html<\/li>\n<li>unter \u201eWerkzeuge \/ Platine:\u201c ganz unten die neuen Boards, \u201eNodeMCU (ESP8266 ESP-12 Modul)\u201c ausw\u00e4hlen<\/li>\n<li>Port und Baudrate 256000 ausw\u00e4hlen<\/li>\n<\/ul>\n<p>Voil\u00e0. In der Arduino IDE sind schon einige Beispiele dabei, die compiliert und hochgeladen werden k\u00f6nnen. Es gibt eine Core Library, mit der die wichtigsten Funktionen des ESP8266 wie bei einem normalen Arduino Ethernet Shield angesprochen werden k\u00f6nnen. Damit kann nun wie normal in C++ programmiert und die Programme (\u201eSketches\u201c) hochgeladen werden:<br \/>\n<img loading=\"lazy\" class=\"aligncenter size-full wp-image-40\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2016\/03\/esp4.png\" alt=\"esp4\" width=\"1030\" height=\"188\" srcset=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp4.png 1030w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp4-300x55.png 300w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp4-768x140.png 768w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp4-1024x187.png 1024w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/p>\n<p>Der Arduino Sketch ist aus Beispielen im Internet zusammenkopiert:\u00a0<a href=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/WiFiScan.zip\" rel=\"\">WiFiScan Arduino Sketch<\/a>.\u00a0F\u00fcr Details findet man ein Original\u00adBeispiel mit Diskussion hier:\u00a0<a href=\"http:\/\/www.esp8266.com\/viewtopic.php?f=29&amp;t=4612\">http:\/\/www.esp8266.com\/viewtopic.php?f=29&amp;t=4612<\/a>. Ich m\u00f6chte nur einige Stellen kommentieren. Zuerst die Variablen:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">const char* WiFiSSID = &#8222;WLAN-ID&#8220;;<\/span><br \/>\n<span style=\"color: #0000ff;\"> const char* WiFiPSK = &#8222;Passwort&#8220;;<\/span><br \/>\n<span style=\"color: #0000ff;\"> const char* host = &#8222;www.example.com&#8220;; \/\/Seite existiert<\/span><br \/>\n<span style=\"color: #0000ff;\"> const int httpPort = 80;<\/span><\/p>\n<p>Dann meldet sich das Modul am WLAN (neu) an und liest die Webseite aus:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">void setup()<\/span><br \/>\n<span style=\"color: #0000ff;\"> {<\/span><br \/>\n<span style=\"color: #0000ff;\"> uart_div_modify(0, UART_CLK_FREQ \/ 115200)<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.begin(115200);<\/span><br \/>\n<span style=\"color: #0000ff;\"> WiFi.mode(WIFI_STA);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/WiFi als Station definieren<\/span><br \/>\n<span style=\"color: #0000ff;\"> WiFi.disconnect();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/und eine ev. bestehende Verbindung trennen<\/span><br \/>\n<span style=\"color: #0000ff;\"> delay(100);<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.printf(&#8222;Initialisierung beendet\\r\\n&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> connectWiFi();<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.printf(&#8222;Verbindung aufgebaut\\r\\n&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> connectTCP();<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.println(&#8222;Stream geschlossen&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> }<\/span><\/p>\n<p>Anmeldung am WLAN:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">void connectWiFi()<\/span><br \/>\n<span style=\"color: #0000ff;\"> {<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0WiFi.begin(WiFiSSID, WiFiPSK);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 Serial.println(&#8222;Im Netz registrieren&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 while (WiFi.status() != WL_CONNECTED)<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 {<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0\u00a0 delay(500);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0\u00a0\u00a0Serial.print(&#8222;.&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 }<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0Serial.println(&#8222;&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0Serial.println(&#8222;WiFi verbunden&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0Serial.println(&#8222;IP Addresse: &#8222;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0Serial.println(WiFi.localIP());<\/span><br \/>\n<span style=\"color: #0000ff;\"> }<\/span><\/p>\n<p>TCP-Verbindung zur Webseite \u00f6ffnen und alles herunterladen:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">void connectTCP()<\/span><br \/>\n<span style=\"color: #0000ff;\"> {<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 Serial.print(&#8222;Verbinde zu &#8222;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 Serial.println(host);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 WiFiClient client;<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 if (!client.connect(host, httpPort)) {<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0\u00a0 Serial.println(&#8222;Verbindung fehlgeschlagen&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 return;<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0 }<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 client.print(String(&#8222;GET \/&#8220;) + &#8220; HTTP\/1.1\\r\\n&#8220; + &#8222;Host: &#8220; + host + &#8222;\\r\\n&#8220; + &#8222;Connection: close\\r\\n\\r\\n&#8220;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 delay(10);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 \/\/ liese alle Zeilen der Antwort und schreibe sie auf den seriellen Port<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 while(client.connected()){<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0\u00a0\u00a0 String line = client.readStringUntil(&#8218;\\r&#8216;);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 Serial.print(line);<\/span><br \/>\n<span style=\"color: #0000ff;\"> \u00a0 }<\/span><br \/>\n<span style=\"color: #0000ff;\"> }<\/span><\/p>\n<p>Das Ergebnis wird zur Kontrolle auf der seriellen Schnittstelle ausgegeben und sieht dann etwa so aus (Auszug):<br \/>\n<img loading=\"lazy\" class=\"aligncenter size-full wp-image-47\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/esp8.png\" alt=\"esp8\" width=\"799\" height=\"326\" srcset=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2015\/09\/esp8.png 799w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2015\/09\/esp8-300x122.png 300w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2015\/09\/esp8-768x313.png 768w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><\/p>\n<p>Als 2. \u00dcbung m\u00f6chte eine LED mit einer Webseite schalten&#8230;das \u00fcbliche \u201eHallo Welt\u201c Programm halt. Ich habe schon mit einigen Systemen dieselbe Aufgabe angepackt &#8211; f\u00fcr mich ist es ein wichtiges Kriterium, schnell zum gew\u00fcnschten Erfolg zu kommen \u2013 aber das Resultat muss auch \u00fcbersichtlich, einfach zu verstehen sein und stabil laufen (Vielleicht schreibe ich dar\u00fcber nach Weihnachten einmal in einen neuen QUA). Nat\u00fcrlich gibt es heute da auch schon zu jedem System pfannenfertige Lego-Elemente im Internet, sodass man sich schon sehr schnell um seine eigenen Ideen und Designs k\u00fcmmern kann und nicht erst wochenlang compilieren, bis das erste Mal eine LED leuchtet oder ein Relais klackt.<br \/>\nDie Einfachheit mit dem NodeMCU und der Arduino IDE nahm mich jetzt schon wunder.<br \/>\nHier fand ich ein Beispiel: <a href=\"https:\/\/blog.thesen.eu\/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller\/\">https:\/\/blog.thesen.eu\/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller\/<\/a>. Im Wesentlichen muss der obige Code au dem ersten Beispiel nur mit einem Webserver erg\u00e4nzt werden:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">\/\/ erzeuge Webserver auf Ports 80<\/span><br \/>\n<span style=\"color: #0000ff;\"> WiFiServer server(80);<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">void setup()<\/span><br \/>\n<span style=\"color: #0000ff;\"> {<\/span><br \/>\n<span style=\"color: #0000ff;\"> \/\/ LED an GPIO2<\/span><br \/>\n<span style=\"color: #0000ff;\"> pinMode(2, OUTPUT);<\/span><br \/>\n<span style=\"color: #0000ff;\"> digitalWrite(2, 0);<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">\/\/ serielle Verbindung<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.begin(9600);<\/span><br \/>\n<span style=\"color: #0000ff;\"> delay(1);<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">\/\/ verbinde mit WLAN wie im 1. Beispiel<\/span><br \/>\n<span style=\"color: #0000ff;\"> WiFi.mode(WIFI_STA);<\/span><br \/>\n<span style=\"color: #0000ff;\"> connectWiFi();<\/span><br \/>\n<span style=\"color: #0000ff;\"> }<\/span><br \/>\n<span style=\"color: #0000ff;\"> \/\/ Starte den Webserver<\/span><br \/>\n<span style=\"color: #0000ff;\"> server.begin();<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.println(&#8222;Server started&#8220;);<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">\/\/ gib die IP Addresse auf dem seriellen Port aus<\/span><br \/>\n<span style=\"color: #0000ff;\"> Serial.println(WiFi.localIP());<\/span><\/p>\n<p>Der Webserver selber ist dann aber ziemlich un\u00fcbersichtlich und schlecht wartbarer Code. Die HMTL Anfrage wird umst\u00e4ndlich von &#8222;Hand&#8220; auseinandergenommen und die richtige HTML Antwort direkt in den Code geschrieben. So zum Beispiel (Ausschnitt, diese Stelle ist ja noch einfach zu verstehen:)<br \/>\n<img loading=\"lazy\" class=\"aligncenter wp-image-41\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2016\/03\/esp5.png\" alt=\"esp5\" width=\"648\" height=\"433\" srcset=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp5.png 830w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp5-300x201.png 300w, http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-content\/uploads\/2016\/03\/esp5-768x514.png 768w\" sizes=\"(max-width: 648px) 100vw, 648px\" \/><br \/>\nDas \u00fcberzeugt mich so nicht \u2013 daf\u00fcr verwendet man Web Frameworks und Template Engines, die dies bequemer liefern, darum werde ich diesen direkten Weg nicht weiterverfolgen. Man schaue sich einmal das Video hier f\u00fcr den Raspberry Pi an (der Python Code ist teilweise im Hintergrund sichtbar):<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=mz62nCetzVM\">https:\/\/www.youtube.com\/watch?v=mz62nCetzVM<\/a><br \/>\nSo stelle ich mir das schon eher vor. Da es Python in einer abgespeckten Version auch f\u00fcr den ESP8266 gibt, besteht Hoffnung, sowas \u00e4hnlich einfach auch mit dem ESP8266 machen zu k\u00f6nnen. F\u00fcr heute soll es jedoch genug sein, ich muss ja auch was f\u00fcr ein n\u00e4chstes Heft zu schreiben haben&#8230;Dennoch: das Beispiel funktioniert. Ich habe ein Video gemacht, wie ich vom iPad aus mit einer Webseite eine LED schalte (es wird auf der HB9F Homepage zu finden sein). Das USB Kabel dient nur zur Stromversorgung.<\/p>\n<p>&nbsp;<\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-36-1\" width=\"640\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/ipad-led.mp4?_=1\" \/><a href=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/ipad-led.mp4\">http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/ipad-led.mp4<\/a><\/video><\/div>\n<p>(Fortsetzung folgt irgendwann.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00fcr die ersten Gehversuche habe ich von Roland Elmiger ein NodeMCU (https:\/\/en.wikipedia.org\/wiki\/\u00adNodeMCU) Modul zum Testen erhalten. Dieses enth\u00e4lt schon die ganze USB-TTL Logik inkl. Pegel\u00adwandler (allerdings sind die IO Ports nach wie vor nicht 5V-tolerant). F\u00fcr erste einfache Projekte ist deshalb nur ein Micro-USB Kabel n\u00f6tig, \u00fcber das die Programmierung und die serielle Kommunikation verl\u00e4uft. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,2],"tags":[46,147],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.\" \/>\n<meta property=\"og:description\" content=\"F\u00fcr die ersten Gehversuche habe ich von Roland Elmiger ein NodeMCU (https:\/\/en.wikipedia.org\/wiki\/\u00adNodeMCU) Modul zum Testen erhalten. Dieses enth\u00e4lt schon die ganze USB-TTL Logik inkl. Pegel\u00adwandler (allerdings sind die IO Ports nach wie vor nicht 5V-tolerant). F\u00fcr erste einfache Projekte ist deshalb nur ein Micro-USB Kabel n\u00f6tig, \u00fcber das die Programmierung und die serielle Kommunikation verl\u00e4uft. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/\" \/>\n<meta property=\"og:site_name\" content=\"Merkbar.\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-10T20:53:31+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"wp_blogadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#website\",\"url\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/\",\"name\":\"Merkbar.\",\"description\":\"IT, Elektronik und Mathematik\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#primaryimage\",\"inLanguage\":\"de\",\"url\":\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg\",\"contentUrl\":\"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#webpage\",\"url\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/\",\"name\":\"Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.\",\"isPartOf\":{\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#primaryimage\"},\"datePublished\":\"2015-09-10T20:53:31+00:00\",\"dateModified\":\"2015-09-10T20:53:31+00:00\",\"author\":{\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\"},\"breadcrumb\":{\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Experimente mit einem WiFi-Modul &#8211; Fortsetzung\"}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d\",\"name\":\"wp_blogadmin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g\",\"caption\":\"wp_blogadmin\"},\"url\":\"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/author\/wp_blogadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/","og_locale":"de_DE","og_type":"article","og_title":"Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.","og_description":"F\u00fcr die ersten Gehversuche habe ich von Roland Elmiger ein NodeMCU (https:\/\/en.wikipedia.org\/wiki\/\u00adNodeMCU) Modul zum Testen erhalten. Dieses enth\u00e4lt schon die ganze USB-TTL Logik inkl. Pegel\u00adwandler (allerdings sind die IO Ports nach wie vor nicht 5V-tolerant). F\u00fcr erste einfache Projekte ist deshalb nur ein Micro-USB Kabel n\u00f6tig, \u00fcber das die Programmierung und die serielle Kommunikation verl\u00e4uft. [&hellip;]","og_url":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/","og_site_name":"Merkbar.","article_published_time":"2015-09-10T20:53:31+00:00","og_image":[{"url":"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg"}],"twitter_card":"summary","twitter_misc":{"Verfasst von":"wp_blogadmin","Gesch\u00e4tzte Lesezeit":"5 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#website","url":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/","name":"Merkbar.","description":"IT, Elektronik und Mathematik","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"ImageObject","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#primaryimage","inLanguage":"de","url":"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg","contentUrl":"http:\/\/wp.andreas.bieri.name\/wp-content\/uploads\/2015\/09\/nodemcu-1.jpg"},{"@type":"WebPage","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#webpage","url":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/","name":"Experimente mit einem WiFi-Modul - Fortsetzung - Merkbar.","isPartOf":{"@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#website"},"primaryImageOfPage":{"@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#primaryimage"},"datePublished":"2015-09-10T20:53:31+00:00","dateModified":"2015-09-10T20:53:31+00:00","author":{"@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d"},"breadcrumb":{"@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/2015\/09\/10\/experimente-mit-einem-wifi-modul-fortsetzung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/"},{"@type":"ListItem","position":2,"name":"Experimente mit einem WiFi-Modul &#8211; Fortsetzung"}]},{"@type":"Person","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#\/schema\/person\/47691942dec3f2eb9d34bb8b5507870d","name":"wp_blogadmin","image":{"@type":"ImageObject","@id":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/#personlogo","inLanguage":"de","url":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/d0dc804558b03f640b22e497ec010c9a?s=96&d=mm&r=g","caption":"wp_blogadmin"},"url":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/author\/wp_blogadmin\/"}]}},"_links":{"self":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts\/36"}],"collection":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/comments?post=36"}],"version-history":[{"count":0,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/posts\/36\/revisions"}],"wp:attachment":[{"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/media?parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/categories?post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ec2-52-29-166-97.eu-central-1.compute.amazonaws.com\/myblog\/wp-json\/wp\/v2\/tags?post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}