ESP8266 – erste Erfahrungen

Originalartikel

Backup

<html> <p>Im nachfolgenden Artikel m&#246;chte ich euch den ESP8266 vorstellen sowie meine ersten Erfahrungen mit diesem interessanten und g&#252;nstigen St&#252;ck Hardware (f&#252;r weitergehende Informationen habe ich unter dem Artikel eine kleine Linkliste erstellt). Dazu gehe ich erst kurz darauf ein, was der ESP8266 ist, dann werde ich beschreiben, wie man ihn programmieren kann und schlie&#223;lich zeige ich noch praktische Einsatzzwecke auf. Dazu wird es in diesem Blog in n&#228;chster Zeit auch noch ein paar Artikel geben, die diese praktischen Umsetzungen im Detail beschreiben.</p>

<p>Der ESP8266 ist ein WLAN-SoC (<a href=„https://de.wikipedia.org/wiki/System-on-a-Chip“ target=„_blank“>System-on-a-Chip</a>), also ein WiFi-Modul, das sich selbstst&#228;ndig nutzen und programmieren l&#228;sst. Daher kann der ESP8266 auch unabh&#228;ngig von z.B. einem Arduino verwendet werden, da man eigene Programme darauf laden kann. Dieser Umstand machte den ESP8266 schnell beliebt in der &#8222;Bastlerszene&#8220;, vor allem, da er zu einem sehr g&#252;nstigen Preis zu bekommen ist (je nach Ausf&#252;hrung f&#252;r ca. 1-5&#8364; aus China).</p> <p>Hierbei ist zu erw&#228;hnen, dass es mittlerweile sehr viele Ausf&#252;hrungen gibt. Der Chip (also der ESP8266) darauf ist &#252;berall identisch, die Boards unterscheiden sich aber an der Anzahl der nutzbaren GPIOs (sprich Anschluss-Pins). Einen &#220;berblick &#252;ber g&#228;ngige Module findet ihr z.B. <a href=„http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family“ target=„_blank“>hier</a>.<a href=„https://alexbloggt.com/wp-content/uploads/2015/10/modelle_eps8266.png“><img class=„aligncenter size-full wp-image-2274“ src=„https://alexbloggt.com/wp-content/uploads/2015/10/modelle_eps8266.png“ alt=„modelle_eps8266“ width=„538“ height=„554“ srcset=„https://alexbloggt.com/wp-content/uploads/2015/10/modelle_eps8266.png 538w, https://alexbloggt.com/wp-content/uploads/2015/10/modelle_eps8266-291x300.png 291w“ sizes=„(max-width: 538px) 100vw, 538px“/></a></p> <p>Au&#223;erdem gibt es auch noch ein Entwicklungsboard mit dem Namen &#8222;<a href=„https://en.wikipedia.org/wiki/NodeMCU“ target=„_blank“>NodeMCU</a>&#8220;, das sich bequem &#252;ber den verl&#246;teten USB-Anschluss programmieren l&#228;sst (bei den anderen Modellen ben&#246;tigt man zus&#228;tzlich einen USB-to-UART-Adapter, wie den FT232RL, den es in China aber bereits f&#252;r unter 2&#8364; gibt).<a href=„https://alexbloggt.com/wp-content/uploads/2015/10/nodeMCU.png“><img class=„aligncenter size-full wp-image-2271“ src=„https://alexbloggt.com/wp-content/uploads/2015/10/nodeMCU.png“ alt=„nodeMCU“ width=„535“ height=„272“ srcset=„https://alexbloggt.com/wp-content/uploads/2015/10/nodeMCU.png 535w, https://alexbloggt.com/wp-content/uploads/2015/10/nodeMCU-300x153.png 300w“ sizes=„(max-width: 535px) 100vw, 535px“/></a></p> <p>Mit 80MHz ist der ESP8266 &#252;brigens schneller getaktet als die meisten Arduinos, die (in den g&#252;nstigen Modellen) mit 8 bzw. 16 MHz takten. F&#252;r einen Microcontroller ist das recht flott &#8211; ein weiterer Vorteil zu Gunsten des ESP8266.</p> <p>Wichtig ist, dass der ESP8266 mit 3V betrieben wird &#8211; nicht 5V oder mehr wie bei einigen Arduinos m&#246;glich. Eine Stromversorgung direkt &#252;ber USB ohne Spannungsteiler o.&#228;. ist somit nicht m&#246;glich. Auch haben nicht alle ESP8266-Varianten einen analogen Eingang (nur die -07er [16 Pin Modell] und -12er Modelle) &#8211; auch hier ein gro&#223;er Unterschied zu den Arduinos, die i.d.R. gleich mehrere analogen Eing&#228;nge zur Verf&#252;gung stellen. Wer also analogen Sensoren (Lichtsensoren, Thermistoren etc.) am ESP8266 betreiben m&#246;chte, sollte also aufpassen, welches Modell er sich zulegt. Auch unterscheiden sich die Modelle hinsichtlich ihrer Speicher- (Flash-) Gr&#246;&#223;e (von 0,5MB bis 4MB). Wer gr&#246;&#223;ere Programme nutzen m&#246;chte, sollte sich vor Kauf erkundigen, wie gro&#223; der Speicher auf dem gew&#252;nschten Board ist.</p>

<p>Im Gegensatz zum Arduino, der in aller Regel mit der eigens daf&#252;r entwickelten Arduino IDE programmiert wird, habt ihr beim ESP8266 mehr M&#246;glichkeiten, eigene Programme auf das Ger&#228;t zu bekommen.</p> <p>Grunds&#228;tzlich gibt es 2 Ans&#228;tze: Die Nutzung einer bestehenden Firmware, die z.B. Micropython- oder Lua-Scripte entgegennimmt und ausf&#252;hrt oder das Erstellen einer eigenen Firmware z.B. &#252;ber die Arduino IDE.</p> <p>Da ich selbst bisher nur die Arduino-IDE verwendet habe, verweise ich an dieser Stelle auf andere Informationsquellen wie den <a href=„https://www.mikrocontroller.net/articles/ESP8266“ target=„_blank“>ESP8266-Artikel auf mikrocontroller.net</a>.</p> <p>Angeschlossen werden die ESP8266-Module wie oben beschrieben &#252;ber einen USB-to-UART-Adapter. Zu beachten ist hierbei, dass dieser mit 3,3V betrieben werden muss (nicht mit den 5V direkt von USB!). Zudem sollte eine externe Stromversorgung (3,3V) eingesetzt werden, da es Probleme geben kann, wenn der ESP8266 nur durch den Adapter mit Strom versorgt wird. Behelfsweise kann man auch einen Elko zwischen VCC und GND klemmen (habe 220&#181;F genommen), was den ESP8266 wesentlich stabiler laufen l&#228;sst.</p> <p>Zudem sollte man sich vor Inbetriebnahme erkundigen, welche zus&#228;tzlichen Pins auf Masse bzw. VCC gelegt werden m&#252;ssen, um sein jeweiliges Modell programmieren zu k&#246;nnen. Beim einfachen, aber beliebten ESP-01 z.B. muss <a href=„http://makezine.com/2015/04/01/installing-building-arduino-sketch-5-microcontroller/“ target=„_blank“>CH_PD auf 3,3V und GPIO_0 auf GND gesetzt werden</a>,&#160;um ihn zu programmieren. Bei meinem ESP-201 muss zus&#228;tzlich noch <a href=„http://smarpl.com/content/esp8266-esp-201-module-first-impressions“ target=„_blank“>GPIO_15 auf GND gelegt werden</a>.</p> <p>Meinen ESP-201 habe ich also so mit dem FTDI-Adapter verbunden, damit ich ihn problemlos mit eigener Software bespielen konnte:<a href=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Steckplatine.png“><img class=„aligncenter wp-image-2273“ src=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Steckplatine.png“ alt=„program_Steckplatine“ width=„500“ height=„718“ srcset=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Steckplatine.png 687w, https://alexbloggt.com/wp-content/uploads/2015/10/program_Steckplatine-209x300.png 209w“ sizes=„(max-width: 500px) 100vw, 500px“/></a></p> <p>Der zugeh&#246;rige Schaltplan sieht so aus:<a href=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Schaltplan.png“><img class=„aligncenter wp-image-2272“ src=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Schaltplan.png“ alt=„program_Schaltplan“ width=„500“ height=„345“ srcset=„https://alexbloggt.com/wp-content/uploads/2015/10/program_Schaltplan.png 854w, https://alexbloggt.com/wp-content/uploads/2015/10/program_Schaltplan-300x207.png 300w“ sizes=„(max-width: 500px) 100vw, 500px“/></a></p>

<p>Die Einsatzzwecke sind sehr vielseitig, viele Libraries, die urspr&#252;nglich f&#252;r den Arduino entwickelt wurden, sind bereits f&#252;r den ESP8266 angepasst worden, sodass die Programmierung &#252;ber die Arduino-IDE die Ansteuerung externer Hardware wie Funksender oder IR-Dioden sehr einfach gestaltet.</p> <p>In meinen ersten Stunden mit dem ESP8266 konnte ich daher bereits die Steuerung von Funksteckdosen &#252;ber ein Webinterface samt Statusspeicherung der einzelnen Dosen (analog zur <a href=„https://alexbloggt.com/funksteckdosen-raspberry-pi-teil1/“ target=„_blank“>Umsetzung mit dem Raspberry Pi</a>) realisieren sowie die Ansteuerung meines TV-Ger&#228;tes &#252;ber eine IR-Diode (wobei es hier zu Problemen mit der Stromversorgung trotz Kondensator kam, sodass ich die Schaltung hierzu noch umbauen werde). Auch l&#228;sst sich damit das <a href=„https://alexbloggt.com/infrarot-geraete-vernetzen/“ target=„_blank“>&#196;quivalent der Umsetzung mit Arduino und Raspberry / Banana Pi</a> ersetzen. Tutorials mit vollst&#228;ndigem Programmcode und Schaltbildern zu diesen beiden Umsetzungen werden demn&#228;chst hier im Blog folgen.</p> <hr/><p>Ich hoffe, ich konnte euch hiermit einen kleinen &#220;berblick &#252;ber den ESP8266 geben. Gerade f&#252;r das &#8222;Internet of things&#8220; eignet sich dieses Bauteil meiner Meinung nach sehr gut, da man damit eigene Aktoren oder Sensoren ans Netz anbinden kann &#8211; und das zu einem &#228;u&#223;erst g&#252;nstigen Preis.<br/>Bei Fragen, Anregungen etc. k&#246;nnt ihr nat&#252;rlich wie immer das Kommentarfeld unten benutzen.</p> <hr/><h3>Linkliste</h3> <ul><li><a href=„http://neilkolban.com/tech/esp8266/“ target=„_blank“>Kolban&#8217;s book on the ESP8266 (gratis eBook zum ESP8266)</a></li> <li><a href=„https://www.mikrocontroller.net/articles/ESP8266“ target=„_blank“>ESP8266 (mikrocontroller.net)</a></li> <li><a href=„http://arduino-hannover.de/2014/12/11/wifi-kochbuch-mit-esp8266/“ target=„_blank“>WiFi Kochbuch mit ESP8266</a></li> <li><a href=„https://hackaday.com/2015/03/18/how-to-directly-program-an-inexpensive-esp8266-wifi-module/“ target=„_blank“>How to Directly Program an Inexpensive ESP8266 WiFi Module | Hackaday</a></li> <li><a href=„https://github.com/search?utf8=%E2%9C%93&amp;q=esp8266“ target=„_blank“>Projekte zum ESP8266 auf GitHub</a></li> </ul><hr/> </html>