Deutscher Amateur-Radio-Club e.V
Ortsverband Husum M04
Ein Minicomputer mit Wlan
 
Unterstützt werden momentan unterschiedliche Firmware-Varianten:
ESP32: Leistungsfähigere Variante des ESP8266 ist verfügbar
Der ESP8266 ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80-160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge
Der Mikrocontroller ist auch zusammen mit einer Minimalbeschaltung aus Quarz und Flash-Speicher in Form verschiedener Module zum direkten Einsatz erhältlich. Je nach Modul sind bis zu 12 I/O-Ports, eine I²C-Schnittstelle, eine I²S-Schnittstelle, eine SPI-Schnittstelle, eine asynchrone serielle Schnittstelle und ein 10-bit Analog-Digital-Umsetzer herausgeführt. Alle I/Os werden mit 3,3 V betrieben und sind nicht 5 V-tolerant
Das WLAN-Modul ESP8266 ist seit seinem Erscheinen Ende 2014 ein Favorit der Bastler. Es ist nicht nur äußerst günstig und einfach anzuwenden, der integrierte Microcontroller lässt sich auch mit einfachen Mitteln direkt programmieren.


    Lua-basierte interaktive Programmierung (NodeMCU)      ,    Micropython Mythonbasierte interaktive Programmierung)
    Arduino/C++ basierte Programmierung        ,      AT-Command für die Nutzung als Seriell-zu-WLAN-Schnittstelle
    ESP Easy zur Ansteuerung von Sensoren/Aktoren über Wlan
So winzig und doch sehr Leistungsfähig
Der ESP8266 ist ein WLAN-SoC (System-on-a-Chip), also ein WiFi-Modul, das sich selbstständig nutzen und programmieren lässt. Daher kann der ESP8266 auch unabhängig von z.B. einem Arduino verwendet werden, da man eigene Programme darauf laden kann. Dieser Umstand machte den ESP8266 schnell beliebt in der „Bastlerszene“, vor allem, da er zu einem sehr günstigen Preis zu bekommen ist (je nach Ausführung für ca. 2-7€ aus Fernost).
J Nr.    Name         Funktion
4     VCC      3.3V (max 3.6V) Versorgungsspannung
8     GND      Masse
1     TXD      Transmit Data (3.3V Pegel)
5     RXD      Receive Data (3.3V Pegel!)
2     CH_PD       Chip Ausschalten: (LOW=  aktiv)
6     GPIO0      Gigitale Ein/Ausgänge I/O 0
7     GPIO2      Gigitale Ein/Ausgänge I/O 2
3     RST      Reset (LOW = Reset aktiv)   
Hierbei ist zu erwähnen, dass es mittlerweile sehr viele Ausführungen gibt. Der Chip (also der ESP8266) darauf ist überall identisch, die Boards unterscheiden sich aber an der Anzahl der nutzbaren GPIOs (sprich Anschluss-Pins).Außerdem gibt es auch noch ein Entwicklungsboard mit dem Namen „NodeMCU“, das sich bequem über den verlöteten USB-Anschluss programmieren lässt (bei den anderen Modellen benötigt man zusätzlich einen USB-to-UART-Adapter, wie den FT232RL, den es in China aber bereits für unter 2€ gibt).
NodeMCU alles drauf , alles dran, gleich loslegen
Mit 80MHz ist der ESP8266 übrigens schneller getaktet als die meisten Arduinos, die (in den günstigen Modellen) mit 8 bzw. 16 MHz takten. Für einen Microcontroller ist das recht flott - ein weiterer Vorteil zu Gunsten des ESP8266. Wichtig ist, dass der ESP8266 mit 3V betrieben wird - nicht 5V oder mehr wie bei einigen Arduinos möglich. Eine Stromversorgung direkt über USB ohne Spannungsteiler o.ä. ist somit nicht möglich. Auch haben nicht alle ESP8266-Varianten einen analogen Eingang (nur die -07er [16 Pin Modell] und -12er Modelle) - auch hier ein großer Unterschied zu den Arduinos, die i.d.R. gleich mehrere analogen Eingänge zur Verfügung stellen. Wer also analogen Sensoren (Lichtsensoren, Thermistoren etc.) am ESP8266 betreiben möchte, sollte also aufpassen, welches Modell er sich zulegt. Auch unterscheiden sich die Modelle hinsichtlich ihrer Speicher- (Flash-) Größe (von 0,5MB bis 4MB). Wer größere Programme nutzen möchte, sollte sich vor Kauf erkundigen, wie groß der Speicher auf dem gewünschten Board ist.
Der ESP32 des Herstellers Espressif vereint in einem einzelnen Mikrocontroller-Chip eine CPU mit 2 Tensilica-LX6-Kernen, getaktet mit bis zu 240 MHz, und 512 Kilobyte SRAM. Dazu integriert er eine Funkeinheit für WLAN (nach 802.11bgn) und Bluetooth (Classic und LE). Die WLAN-Funktion unterstützt alle gängigen Verschlüsselungsmethoden wie zum Beispiel WPA2. Außerdem kann er im WLAN auch als Access Point oder Sniffer agieren. Über 32 GPIO-Pins stehen unter anderem UART, I2C, SPI, DAC, ADC (12 Bit) zur Verfügung, alle GPIO-Pins können als Ein- oder Ausgabe benutzt werden.
ESP8266 - wie programmieren?

Im Gegensatz zum Arduino, der in aller Regel mit der eigens dafür entwickelten Arduino IDE programmiert wird, habt ihr beim ESP8266 mehr Möglichkeiten, eigene Programme auf das Gerät zu bekommen.

Grundsätzlich gibt es 2 Ansätze: Die Nutzung einer bestehenden Firmware, die z.B. Micropython- oder Lua-Scripte entgegennimmt und ausführt oder das Erstellen einer eigenen Firmware z.B. über die Arduino IDE.

Angeschlossen werden die ESP8266-Module wie oben beschrieben ü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µF genommen), was den ESP8266 wesentlich stabiler laufen lässt.

Zudem sollte man sich vor Inbetriebnahme erkundigen, welche zusätzlichen Pins auf Masse bzw. VCC gelegt werden müssen, um sein jeweiliges Modell programmieren zu können. Beim einfachen, aber beliebten ESP-01 z.B. muss CH_PD auf 3,3V und GPIO_0 auf GND gesetzt werden, um ihn zu programmieren. Bei meinem ESP-201 muss zusätzlich noch GPIO_15 auf GND gelegt werden.
Meinen ESP-201 habe ich also so mit dem Adapter verbunden, damit ich ihn problemlos mit eigener Software bespielen konnte:
Mit 2 kleinen Minitastern lässt sich dieser preiswerte Adapter so ändern, dass ESP-201 Module sich direkt am USB-Port programmieren lassen, die 3,3 Volt sind schon vorhanden und für die Stromspitzen ist ein 1000uF Kondensator vorhanden, so das es nicht zu Einbrüchen beim programmieren kommt:
Espressif will auch zwei Module anbieten, auf denen der ESP32 verbaut ist und die für Entwickler einfacher benutzbar sind als der Chip allein: Der ESP-WROOM-02 ist äußerst klein, der WROOM-32 ist zwar größer, auf ihm sind aber alle GPIO-Pins verfügbar. Beide Module verfügen neben dem ESP32-Chip auch über 16 MByte Flashspeicher. Um die Entwicklung zu vereinfachen, bietet Espressif auch ein Demo-Board mit dem WROOM-32-Modul an.
Das 18 mm × 20 mm × 3 mm große Board wurde mit einem für Breadboards geeigneten Breakout-Board geliefert. An Bauteilen sind unter anderem ein 26 MHz- und ein 32 kHz-Taktgeber, ein 32 Mbit (4 Megabyte) großes EEPROM (EM25Q32) als SPI-Flash sowie jede Menge Hühnerfutter in SMD-Bauweise bestückt. Außerdem gibt es eine für Bluetooth und WLAN angepasste Antenne, die als Platinenbahn ausgeführt ist. Betrieben wird das System mit 3 bis 3,6 Volt. Die genauen Spezifikationen findet man im PDF zum ESP32-WROOM-03.
Eine der wichtigsten Neuerungen ist der zweite 32-Bit Prozessor (Tensilica L106), den Espressif dem SoC (System on Chip) spendiert hat. Damit wird der neue Chip nicht nur kraftvoller (bis zu 400 MIPS), sondern es fallen auch wichtige Beschränkungen des ESP8266 weg. So ist das Auslesen des analogen Eingangs oder die Programmierung von Verzögerungsschleifen beim ESP8266 in manchen Situationen nicht unproblematisch und soll manchmal zu falschen Werten beziehungsweise zum Reset des Controllers führen, wenn der Prozessor sich gleichzeitig um die WLAN-Kommunikation kümmern muss. Prinzipiell muss man bisher dafür sorgen, dass es im Programmablauf nicht zu Kollisionen kommt.

Mit einer Standard-Taktung von 160 MHz wird zudem der Takt für das Prozessor-Duo verdoppelt. Laut Espressif ist das Chip-Design sogar auf maximal 240 MHz ausgelegt. Getestet wurde das bisher aber noch nicht. Mit 400 MIPS dürfte sogar eine rudimentäre Spracherkennung möglich werden, die zur Zeit in viele Smart-Home Geräte eingebaut wird (Amazon Echo, Google Home). Erweitertes internes ROM, SRAM und die Möglichkeiten, über das schnelle Quad-SPI (QSPI) mit bis zu 80 MHz insgesamt 64 MByte Flash anzubinden, zeigen die Möglichkeiten des potenten Prozessor-Duos.
Das ROM für das Bootprogramm und Grundfunktionen wurde auf 128 kBytes aufgestockt - jeder der Cores kann dabei auf eigenes ROM zugreifen. An SRAM stehen jetzt 416 kBytes zur Verfügung (Heap & Data: 150 kBytes, Code: 60 kBytes). Unterstützt werden 32 Interrupt-Vektoren von etwa 80 Interrupt-Quellen. Wie beim ESP8266 können Programmcode und Daten in den externen Flash-Speicher ausgelagert werden. Der ESP32 unterstützt bis zu 64 MByte (ESP8266: 16 MByte)
Mit einer Erhöhung der Bandbreite auf 40 MHz im 802.11n-Standard und damit bis zu 150 MBit/s (nach Angaben von Espressif) soll endlich das Streaming von Videodaten über WLAN möglich werden. Audio-Streaming, wie man es für ein Internet-Radio oder das lokale Abspielen von Musik benötigt, dürften so kein Problem mehr sein. Eine Kamera könnte somit über das SDIO Interface für SD-Speicherkarten angebunden werden. Damit sind theoretisch 200 Mbps auf vier Datenbussen mit 50 MHz möglich. Na , lassen wir uns überraschen, was uns die ersten Ergebnisse bringen, wenn sich Hobbyanwender mit diesem leistungsfähigen Chip anfreunden. Mit Bluetooth 4.2 Low Energy (BLE) und Bluetooth Legacy erweitert der ESP32 seine Fähigkeiten im Funk um einen wichtigen Standard. Audio-Headsets und Bluetooth-Lautsprecher auf Basis des neuen Chips sind durchaus vorstellbar. Mit BLE werden nun auch stromsparende Wearables und Sensorbausteine möglich.
hier ein kleines Tutorial von GreatScott
das einen kleinen Einblick gibt vom einfachen ESP-201 für weniger als 2 Euro
RSS Feed
Ansprechpartner , Anschrift
DD7LP OVV M04
Christian Petersen
Lassensstieg 4
25853 Bohmstedt
Tel.04671-5101
mob.0170-1137601
E-Mail DD7LP@DARC.de