Auswahl und Einsatz des richtigen ESP32-Wi-Fi/Bluetooth-Moduls für eine industrielle IoT-Anwendung

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Die industrielle Automatisierung nimmt immer mehr an Fahrt auf, und in vielen Fabrikhallen sind Automatisierungstechniker damit beschäftigt, Systeme mit dem IoT zu verbinden, die dazu führen, das ältere Fabriken in vielerlei Hinsicht technisch abgehängt werden. Allerdings haben sich für neue wie ältere Systeme die drahtlosen Anbindungsmöglichkeiten an das IoT per Wi-Fi oder Bluetooth durch ESP32-Module und entsprechende Kits ziemlich vereinfacht.

Erdacht und entwickelt von Espressif Systems, bedeutet ESP32 – eine Reihe von preisgünstigen Low-Power-SoC-Mikrocontrollern mit integriertem Wi-Fi und Dual-Mode Bluetooth – einen echten Durchbruch für Automatisierungstechniker, die nicht darauf erpicht sind, sich in die Feinheiten von Hochfrequenz- (HF) und Wireless-Designs einzuarbeiten. Als preisgünstige Wi-Fi/Bluetooth-Kombifunklösung wird ESP32 nicht nur bei Hobbytechnikern immer beliebter, sondern auch bei professionellen IoT-Entwicklern. Mit ihrem geringen Energieverbrauch, zahlreichen Open-Source-Entwicklungsumgebungen und den Bibliotheken eignen sich die Bausteine hervorragend für Entwickler auf allen Ebenen.

Allerdings gibt es für ESP32 derart viele Module und Entwicklungsboards, dass die richtige Auswahl zu einer schwierigen Angelegenheit werden kann.

Dieser Artikel stellt ESP32-Lösungen vor und zeigt, wie Entwickler das richtige Modul und Entwicklungsboard auswählen können, damit sie erfolgreich mit der IoT-Einbindung Ihrer Anwendung loslegen können.

Das ESP32-Modul

Das ESP32-Modul ist eine integrierte und zertifizierte Wi-Fi/Bluetooth-Komplettlösung, die nicht nur die drahtlose Funktechnik enthält, sondern auch einen eigenen Prozessor mit Schnittstellen zur Verbindung mit verschiedenen Peripheriegeräten. Der Prozessor verfügt eigentlich über zwei Verarbeitungskerne, deren Arbeitsfrequenzen unabhängig voneinander zwischen 80 Megahertz (MHz) und 240 MHz festgelegt werden können. Die Peripheriekomponenten des Prozessors erleichtern die Einbindung über eine Reihe von externen Schnittstellen, zum Beispiel:

  • SPI
  • I2C
  • UART
  • I2S
  • Ethernet
  • SD-Karten
  • Kapazitive Touch-Funktion

Dem Entwickler stehen je nach geplanter Anwendung mehrere unterschiedliche ESP32-Module zur Auswahl. Das erste um am häufigsten eingesetzte ESP32-Modul ist das ESP32-WROOM-32D, das mit maximal 240 MHz arbeiten kann (Abbildung 1). Das Modul enthält eine Antenne in Form einer Leiterbahn auf der Platine, was die Implementierung vereinfacht. Damit entfällt im Vergleich zur Verwendung eines IPEX-Antennenanschlusses auch die Notwendigkeit zusätzlicher Hardware, und das Layout ist weniger komplex. Wenn die Entscheidung allerdings zugunsten eines IPEX-Anschlusses fällt, stehen dafür viele gute Antennenoptionen zur Auswahl, zum Beispiel die von Inventek Systems stammende W24P-U.

Abbildung des Moduls ESP32-WROOM-32D von Espressif SystemsAbbildung 1: Das Modul ESP32-WROOM-32D arbeitet mit Geschwindigkeiten bis 240 MHz und enthält 8 Mbyte bordeigenen SPI-Flash. (Bildquelle: Espressif Systems)

Das Modul enthält 4 Megabyte (Mbyte) Flash und besitzt 38 Pins, deren Anordnung die Modulgröße minimiert und es nahezu quadratisch aussehen lässt. Tatsächlich ist das WROOM-32D vollständig pinkompatibel mit dem ESP-WROOM-32U (Abbildung 2). Beim WROOM-32U gibt es anstelle der Leiterbahn-Antenne auf der Platine einen IPEX-Anschluss, der auf dem U.FL-Design von Hirose basiert. Dadurch wird beim WROOM-32U Platinenfläche eingespart, und es ermöglicht Entwicklern das Anschließen einer externen Antenne, die sie innerhalb ihres Produktes so anordnen können, dass optimale HF-Eigenschaften erreicht werden.

Abbildung des Moduls ESP32-WROOM-32U von Espressif SystemsAbbildung 2: Das ESP32-WROOM-32U ist pinkompatibel mit dem WROOM-32D. Allerdings bietet es anstelle von dessen Leiterbahn-Antenne einen IPEX-Anschluss für eine externe Antenne, wodurch sich optimale HF-Eigenschaften erzielen lassen. (Bildquelle: Espressif Systems)

Ein interessanter Aspekt bei den WROOM-32D-Modulen: Sie sind mit verschiedenen Flash-Speichergrößen erhältlich. Die Module gibt es in Ausführungen mit zusätzlichem Speicher, zum Beispiel das ESP32-WROOM-32D mit 8 Mbyte und das ESP-WROOM-32D mit 16 Mbyte.

Auswahl eines ESP32-Entwicklungsboards für die industrielle Steuerung

Die ESP32-Module sind eine gute Wahl, wenn es um die Entwicklung einer Platine für den Einsatz in der Produktion geht oder wenn die Module auf einer Platine platziert werden sollen, die in großen Stückzahlen eingesetzt wird. Für die Entwicklung niedriger Stückzahlen im Fertigungsbereich können Entwickler dagegen ein ESP32-Entwicklungsboard einsetzen. Diese Boards gibt es von ganz einfachen „Einsteiger“-Boards bis hin zu ausgefeilten Boards, die Sekundärprozessoren und LCDs enthalten. Hier einige Boards, die sich gut für Anwendungen in der industriellen Automatisierung eignen, wo die möglichst einfache Entwicklung eine wesentliche Anforderung ist.

Da gibt es zum Beispiel das ESP32-DEVKITC-32D-F (Abbildung 3). Dabei handelt es sich um eine einfache Breakout-Karte für das WROOM-32D, das über sämtliche Leistungskonditionierungs- und Programmierschaltungen verfügt, die ein Designer oder Entwickler für den Einstieg benötigt. Die Stromversorgung des Boards erfolgt entweder über einen integrierten Mikro-USB-Anschluss oder über die V-IN-Breakout-Steckleiste. Mithilfe von Jumpern oder Drähten lassen sich dann verschiedene Komponenten mit dem WROOM-32D verbinden.

Abbildung des Entwicklungsboards ESP32-DEVKITC-32D-F von Espressif SystemsAbbildung 3: Das Entwicklungsboard ESP32-DEVKITC-32D-F enthält Breakout-Steckleisten zur Verbindung mit jedem der WROOM-32D-Pins. Seine Stromversorgung für Entwicklungszwecke kann per USB erfolgen. (Bildquelle: Espressif Systems)

Ein weiteres Beispiel ist das von Adafruit Industries angebotene Airlift ESP32 Shield. Es enthält nicht nur das WROOM-32D, sondern bietet auch zusätzlichen Platz für das Protyping (Abbildung 4). Dieser Prototyping-Bereich kann verwendet werden, um Verbindungen zu anderen Shields herzustellen, aber auch für zusätzliche anwenderspezifische Schaltungen. Ein Entwickler könnte in diesem Bereich Eingangs- und Ausgangsschaltungen für Niederspannungsanwendungen zur industriellen Automatisierung aufbauen. Zusätzlich gibt es auf der Platine einen SD-Karten-Steckverbinder, der die Entwicklung einer Datenprotokollierungsanwendung erheblich vereinfacht.

Abbildung des ESP32 Shield von Adafruit AirliftAbbildung 4: Das ESP32 Shield von Adafruit Airlift ermöglicht Entwicklern das Prototyping ihrer Entwürfe oder den Aufbau von einmaligen Schaltungen, die in Anwendungen zur industriellen Automatisierung genutzt werden können. Das Airlift Shield bietet Prototyping-Fläche, die für dedizierte Schaltungen verwendet werden kann. (Bildquelle: Adafruit Industries)

In einigen Anwendungen zur industriellen Automatisierung wird das Entwicklungsboard mit einem zusätzlichen Prozessor verwendet, und das ESP32-Modul dient dann lediglich der Konnektivität, anstatt die gesamte Rechenlast der Anwendung zu tragen. Für solche Anwendungen kann das Entwicklungsboard oder -produkt mit bordeigenen PMOD-Erweiterungsanschlüssen ausgestattet sein.

Entwickler müssen dazu kein eigenes PMOD-Board für das ESP32 entwickeln, sondern können die von Digilent angebotene Breakout-Karte ESP32 PMOD verwenden (Abbildung 5).

Die ESP32 PMOD bietet zusätzlich zu einem PMOD-Standardanschluss folgende Merkmale:

  • eine LED zur Anzeige der Stromversorgung
  • eine bordeigene Bedientaste
  • 4-Pin-I/O-Erweiterung
  • Jumper zur Boot-Konfiguration

Abbildung der ESP32 PMOD-Karte von DigilentAbbildung 5: Die ESP32 PMOD-Karte von Digilent enthält das ESP32-Modul in einem einfach anzuschließenden Erweiterungsformat, das zusammen mit anderen Prozessoren und Entwicklungsboards verwendet werden kann.  (Bildquelle: Digilent)

Das von Espressif Systems entwickelte ESP-WROVER-KIT bietet eine vollständige ESP32-Entwicklungslösung mit allem, was Designer zur Schaffung einer ESP32-basierten Anwendung benötigen (Abbildung 6). So enthält das WROVER-Board beispielsweise den USB-zu-Seriell-Wandler FT2232HL von FTDI, der die Programmierung des ESP32-Moduls erleichtert, ohne dass dazu spezielle Programmiertools benötigt werden. Außerdem enthält das Board eine integrierte 3,2-Zoll-LCD-Anzeige, einen microSD-Steckverbinder, eine RGB-LED sowie eine Kameraschnittstelle. Das Entwicklungsboard enthält auch alle I/O-Möglichkeiten, die über Pin-Stiftleisten bequem zugänglich sind.

Blockschaltbild des ESP-WROVER-KIT-Boards von EspressifAbbildung 6: Das ESP-WROVER-KIT-Board von Espressif bietet Entwicklern in der industriellen Automatisierung ein ESP32-Modul, das Zugriff auf eine RGB-LED, einen microSD-Steckplatz, eine Kamera und leicht zugängliche I/O-Erweiterungen hat. (Bildquelle: Espressif Systems)

Nachdem sich ein Entwickler für ein Modul und Entwicklungsboard entschieden hat, das sich am besten für seine Anwendung eignet, muss er noch etwas Zeit in die Auswahl der optimal geeigneten Entwicklungsumgebung für das ESP32-Modul investieren.

Auswahl einer ESP32-Entwicklungsumgebung

Das ESP32-Modul erfreut sich inzwischen so großer Beliebtheit, dass es mehrere unterschiedliche Entwicklungsumgebungen gibt, mit denen sich das Modul erkunden und programmieren lässt. Zu den beliebtesten Entwicklungstools zählen:

  • das Espressif IoT Development Framework (IDF)
  • Arduino IDE
  • MicroPython

Die erste Umgebung, das Espressif IDF, ist eine Entwicklungs-Toolchain für erfahrene Entwickler von Embedded-Software. Die Toolchain umfasst mehrere nützliche Elemente, darunter eine IDE zur Entwicklung der Anwendung, einen Compiler, Bibliotheken und Beispiele. Das IDF verwendet FreeRTOS als grundlegendes Echtzeit-Betriebssystem (RTOS) in Verbindung mit einem lwIP TCP/IP-Stack und TLS 1.2 für Wi-Fi.

Entwickler mit minimaler Erfahrung im Programmieren können auch die beliebte Arduino IDE verwenden, um eine Anwendung zu entwickeln und diese für das ESP32 bereitzustellen. Zwar ist die Arduino IDE ein wenig langsamer und schwerfälliger als eine professionelle Entwicklungsumgebung, sie bietet jedoch eine Menge Beispiele und Support für das ESP32, was die Entwicklung für Neueinsteiger deutlich vereinfachen kann.

Schließlich gibt es für Entwickler, die an der Entwicklung ihrer Anwendung in Python interessiert sind, das als Open Source zugängliche MicroPython-Kernel, das ebenfalls das ESP32 unterstützt. Entwickler können MicroPython auf das ESP32 laden und dann Python-Skripts für ihre Anwendung erstellen. Das kann die On-the-Fly-Aktualisierung der Anwendung in einem industriellen Setting sehr vereinfachen. Außerdem sinkt der Bedarf an Expertise, die normalerweise erst bei der Entwicklung von Embedded-Lösungen entsteht.

Tipps und Tricks zum Arbeiten mit ESP32

Der Einstieg bei ESP32 ist nicht kompliziert, und im Internet lassen sich detaillierte Beschreibungen finden, wie die verschiedenen Software-Umgebungen eingerichtet werden müssen. Allerdings gibt es viele Feinheiten und Entscheidungen, die Entwickler bei ihrem Einstieg in die Entwicklung mit dem ESP32 beachten müssen. Es folgen einige „Tipps und Tricks“ für den Einstieg:

  • Identifizieren und konfigurieren Sie sorgfältig die Boot-Pins eines Moduls – MTDI, GPIO0, GPIO2, MTDO und GPIO5 –, um eine Anwendung aus der korrekten Speicherquelle (interner Flash, QSPI, Download, Enable/Disable-Debugging-Meldungen) zu laden.
  • Stellen Sie die serielle Baudrate auf dieselbe Baudrate wie in der Boot-Firmware des ESP32 ein. Das ermöglicht die Überwachung der ESP32-Boot-Meldungen, ohne dass dazu die Baudrate umkonfiguriert werden muss.
  • Benutzer ohne Embedded-Programmiererfahrung sollten MicroPython auf das ESP32 „flashen“, damit der Anwendungscode in der leicht erlernbaren Skriptsprache von Python geschrieben werden kann.
  • Suchen Sie für die Anwendung im Internet nach ESP32-Beispielen und -Bibliotheken, um die Anwendungsentwicklung und -integration zu beschleunigen (im Internet sind bereits zahlreiche gute Beispiele erhältlich).
  • Achten Sie beim Design darauf, dass die Bootstrapping-Pins zum Booten in den Aktualisierungsmodus verwendet werden können. Dadurch wird die Aktualisierung der Firmware am Einsatzort erheblich erleichtert.

Entwickler, die sich an diese „Tipps und Tricks“ halten, werden feststellen, dass sie damit ziemlich viel Zeit und Ärger sparen können, wenn sie zum ersten Mal mit ESP32 arbeiten.

Fazit

Wie dieser Artikel gezeigt hat, gibt es für ESP32 mehrere unterschiedliche Module und Entwicklungsboards, die Entwickler für ihren Einstieg in die Entwicklung ihrer industriellen IoT-Anwendung verwenden können. Der Vorteil der Verwendung von ESP32 für diesen Zweck liegt in der Vereinfachung der Entwicklung, denn es erfordert keine näheren Kenntnisse der HF-Schaltungen, und die Zertifizierung des Wireless-Empfängers entfällt. ESP32 wird außerdem umfassend unterstützt, und zwar nicht nur von den Modulherstellern, sondern auch von den Communities der Profi- und Hobby-Entwickler. Entwickler ohne Vorkenntnisse bei Embedded-Software können ganz einfach die Arduino IDE nutzen oder ihre Wireless-Anwendung mit MicroPython programmieren.

Zusammenfassend lässt sich sagen, dass ESP32 eine hervorragende Option zur schnellen und effizienten Vernetzung von Ausrüstung zur industriellen Automatisierung ist.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey