Selecteren en gebruiken van de juiste ESP32 Wi-Fi/Bluetooth-module voor industriële IoT-toepassingen

Door Jacob Beningo

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Naarmate de industriële automatisering steeds sneller verloopt, proberen technici systemen in productieruimten te verbinden met een IoT dat in veel opzichten oudere fabrieksomgevingen heeft achtergelaten. Draadloze IoT-connectiviteit via Wi-Fi of Bluetooth is echter voor zowel nieuwe als oudere systemen relatief eenvoudig te realiseren met behulp van ESP32 modules en kits.

ESP32, een reeks betaalbare, energiezuinige system-on-a-chip microcontrollers met geïntegreerde Wi-Fi en dual-mode Bluetooth, is ontwikkeld en ontworpen door Espressif Systems en is een baanbrekende ontwikkeling voor automatiseringsengineers die zich geïnteresseerd zijn in de details van radiofrequentie (RF) en draadloze ontwerpen. Deze voordelige Wi-Fi/Bluetooth-comboradio is populair bij zowel hobbyisten als IoT-ontwikkelaars. Dankzij het lage energieverbruik en de vele open source ontwikkelingsomgevingen en bibliotheken is ESP32 zeer interessant voor verschillende ontwikkelaars.

Maar ESP32 wordt geleverd in zó veel verschillende modules en ontwikkelingsboards dat het moeilijk kan zijn om de juiste te kiezen.

In dit artikel worden ESP32-oplossingen geïntroduceerd en wordt uitgelegd hoe ontwikkelaars met de juiste module en het juiste ontwikkelingsboard hun toepassing met het IoT kunnen verbinden.

De ESP32 module

De ESP32 module is een alomvattende, geïntegreerde en gecertificeerde Wi-Fi/Bluetooth-oplossing die niet alleen een draadloze radio, maar ook een ingebouwde processor bevat met interfaces voor verbinding met verschillende randapparaten. De frequenties van de twee processorkernen kunnen onafhankelijk worden geregeld tussen 80 megahertz (MHz) en 240 MHz. Dankzij de peripherals van de processor kan eenvoudig een reeks externe interfaces worden aangesloten, zoals:

  • SPI
  • I2C
  • UART
  • I2S
  • Ethernet
  • SD-kaarten
  • Capacitief touchscreen

Ontwikkelaars hebben de keuze uit verschillende ESP32 modules, afhankelijk van hun toepassingsbehoeften. De eerste en meest populaire ESP32 module is de ESP32-WROOM-32D, met een frequentie tot 240 MHz (Afbeelding 1). De module bevat een PCB trace-antenne, die de implementatie vereenvoudigt. Bovendien kan zo gebruikt van extra hardware en de complexe lay-out van een IPEX-antenne worden voorkomen. Als echter de IPEX-connectoroptie wordt geselecteerd, zijn er voldoende goede antenne-opties beschikbaar, zoals de W24P-Uvan Inventek Systems.

Afbeelding van de ESP32-WROOM-32D module van Espressif SystemsAfbeelding 1: De ESP32-WROOM-32D module werkt tot 240 MHz en bevat een ingebouwde SPI flash van 8 Mbyte. (Bron afbeelding: Espressif Systems)

De module bevat een flashgeheugen van 4 megabyte (Mbyte) en heeft 38 pennen die zijn gerangschikt om de nagenoeg vierkante module zo klein mogelijk te maken. De WROOM-32D en de ESP-WROOM-32U bevatten volledig compatibele pennen (Afbeelding 2). De WROOM-32U vervangt de ingebouwde PCB trace-antenne met een IPEX-connector, gebaseerd op het U.FL ontwerp van Hirose. Hierdoor wordt printruimte bespaard en kunnen ontwikkelaars een externe antenne aansluiten die ze binnen hun product kunnen plaatsen voor optimale RF-eigenschappen.

Afbeelding van de ESP32-WROOM-32U module van Espressif SystemsAfbeelding 2: De ESP32-WROOM-32U en de WROOM-32D hebben compatibele pennen, maar de ingebouwde trace-antenne op de ESP32-WROOM-32U wordt vervangen met een IPEX-connector voor een externe antenne, voor geoptimaliseerde RF-eigenschappen. (Bron afbeelding: Espressif Systems)

Ook interessant is dat de WROOM-32D modules met verschillende flashgeheugens worden geleverd. De modules ondersteunen extra geheugen, zoals de ESP32-WROOM-32D met 8 Mbyte en de ESP-WROOM-32D met 16 Mbyte.

Selecteren van een ESP32 ontwikkelingsboard voor industriële regeling

ESP32 modules zijn een uitstekende keuze bij het ontwerpen van een printplaat die in productie gaat of op printplaten die in massaproductie worden gebruikt. Voor de ontwikkeling van kleine hoeveelheden apparaten op de productievloer kunnen ontwikkelaars gebruik maken van een ESP32 ontwikkelingsboard. Deze boards variëren van zeer eenvoudige starterboards tot geavanceerde boards met secundaire processors en lcd-schermen. Ook zijn er enkele die uitstekend geschikt zijn voor industriële automatiseringstoepassingen, ervan uitgaande dat eenvoud van ontwikkeling een belangrijke vereiste is.

Een voorbeeld is de ESP32-DEVKITC-32D-F (Afbeelding 3). Dit is een eenvoudig breakout-board voor de WROOM-32D met alle power conditioning en programmeercircuits die een ontwerper of ontwikkelaar nodig heeft om aan de slag te kunnen. Het board wordt gevoed via een ingebouwde USB-microconnector of via de V-IN breakout-header. Jumpers of draden kunnen vervolgens worden gebruikt om verschillende componenten op de WROOM-32D aan te sluiten.

Afbeelding van het ESP32-DEVKITC-32D-F ontwikkelingsboard van Espressif SystemsAfbeelding 3: Het ESP32-DEVKITC-32D-F ontwikkelingsboard bevat breakout-headers voor aansluiting op de WROOM-32D-pennen en kan voor ontwikkelingsdoeleinden worden gevoed via USB. (Bron afbeelding: Espressif Systems)

Een ander voorbeeld is de Airlift ESP32 Shield van Adafruit Industries. Deze bestaat niet alleen uit de WROOM-32D, maar heeft ook extra prototyperuimte (Afbeelding 4). De prototyperuimte kan worden gebruikt om verbindingen aan andere shields toe te voegen, naast het toevoegen van aangepaste elektronica. Een ontwikkelaar zou deze ruimte kunnen gebruiken om ingangs- en uitgangsschakelingen te bouwen voor industriële automatiseringstoepassingen met een laag voltage. Ook is er een ingebouwde SD-kaartconnector wat het ontwikkelen van een toepassing voor datalogging veel eenvoudiger maakt.

Afbeelding van de Airlift ESP32 Shield van AdafruitAfbeelding 4: Met de Airlift ESP32 Shield van Adafruit kunnen ontwikkelaars een prototype maken van hun eigen ontwerp of eenmalige schakelingen bouwen voor gebruik in industriële automatiseringstoepassingen. De Airlift bevat prototyperuimte die kan worden gebruikt voor gespecialiseerde elektronica. (Bron afbeelding: Adafruit Industries)

Voor sommige industriële automatiseringstoepassingen wordt een ontwikkelingsboard met een extra processor gebruikt en dient de ESP32 alleen voor connectiviteit, in plaats van verwerking van de hele toepassingsbelasting. In dergelijke toepassingen kan het ontwikkelingsboard of het product voorzien zijn van PMOD-uitbreidingsconnectors.

In plaats van een PMOD-board speciaal voor de ESP32 te ontwikkelen, kunnen ontwikkelaars het ESP32 PMOD breakoutboard van Digilent gebruiken (Afbeelding 5).

De ESP32 PMOD is uitgerust met een standaard PMOD-connector, samen met:

  • een aan/uit-ledindicator
  • een ingebouwde gebruikersknop
  • vier-pens I/O-uitbreiding
  • jumpers voor opstartconfiguratie

Afbeelding van het ESP32 PMOD-board van DigilentAfbeelding 5: Het ESP32 PMOD-board van Digilent bevat de ESP32 module in een eenvoudig aan te sluiten uitbreidingsvorm voor gebruik met andere processors en ontwikkelingsboards. (Bron afbeelding: Digilent)

De ESP-WROVER-KIT van Espressif Systems biedt a volledige ESP32-ontwikkelingsoplossing met alles wat ontwerpers nodig hebben om een op ESP32 gebaseerde toepassing te ontwerpen (Afbeelding 6). De WROVER bevat bijvoorbeeld een FT2232HL USB-serieel-omvormer van FTDI waardoor de ESP32 module eenvoudig te programmeren is zonder speciale programmeringstools. Het board bevat ook een ingebouwd 8 cm lcd-scherm, een microSD-connector, een RGB-led en een camera-interface. Alle I/O’s op het ontwikkelingsboard zijn gemakkelijk toegankelijk via penheaders.

Schema van de ESP-WROVER-KIT-board van EspressifAfbeelding 6: Het ESP-WROVER-KIT board van Espressif is een ESP module voor industriële automatiseringsontwikkelaars en is uitgerust met een RGB-led, microSD-sleuf, camera, een lcd en eenvoudig toegankelijke I/O-uitbreiding. (Bron afbeelding: Espressif Systems)

Zodra ontwerpers hebben besloten welke module en welk ontwikkelingsboard het beste bij hun toepassing past, moeten ze de beste ESP32 ontwikkelingsomgeving voor hun behoeften kiezen.

Selecteren van een ESP32 ontwikkelingsomgeving

De ESP32 is zo populair geworden dat er verschillende ontwikkelingsomgevingen zijn om het component te ontwikkelen en te programmeren. Tot de populairste ontwikkelingstools behoren onder andere:

  • het IoT Development Framework (IDF) van Espressif
  • de IDE van Arduino
  • MicroPython

De eerste omgeving, de IDF van Espressif, is een ontwikkelingstoolchain voor ervaren ontwikkelaars van embedded software. De toolchain bevat verschillende nuttige onderdelen zoals een IDE om de toepassing te ontwikkelen, een compiler, bibliotheken en voorbeelden. De IDF gebruikt FreeRTOS als basis real-time besturingssysteem (RTOS) samen met de lwIP TCP/IP stack en TLS 1.2 voor Wi-Fi.

Ontwikkelaars met minimale programmeerervaring kunnen de populaire IDE van Arduino gebruiken om een ESP32 toepassing te ontwikkelen en te implementeren. Hoewel de IDE van Arduino wat langzamer en minder elegant dan een professionele ontwikkelingsomgeving, biedt deze veel voorbeelden en ondersteuning voor de ESP32 die heel nuttig kunnen zijn voor nieuwkomers.

Ten slotte wordt voor ontwikkelaars die geïnteresseerd zijn in het ontwikkelen van hun toepassing in Python de ESP32 ondersteund door de open source MicroPython-kernel. Ontwikkelaars kunnen MicroPython op de ESP32 laden en vervolgens Python-scripts voor hun toepassing ontwikkelen. Hierdoor kan de toepassing heel eenvoudig direct in industriële omgevingen worden bijgewerkt en is er minder expertise nodig die normaal gesproken vereist is voor embedded ontwikkeling.

Tips voor het werken met ESP32

Leren werken met ESP32 is niet moeilijk en als je even op internet zoekt, vind je al snel gedetailleerde uitleg over het installeren van de verschillende software-omgevingen. Ontwikkelaars die voor het eerst met ESP32 werken, hebben echter te maken met veel nuances en beslissingen. Hier zijn een paar tips om snel van start te kunnen:

  • Identificeer en configureer zorgvuldig de opstartpennen van een module (MTDI, GPIO0, GPIO2, MTDO en GPIO5) om een toepassing vanaf de juiste geheugenbron te laden (interne flash, QSPI, download, in/uitschakelen van debugberichten).
  • Stel de baudrate van de seriële uitgang in op dezelfde baudrate als die van de ESP32-opstartfirmware. Hierdoor kunnen de ESP32-opstartberichten en de foutopsporingsberichten van de toepassing worden bewaakt zonder dat de baudrate opnieuw hoeft te worden geconfigureerd.
  • Gebruikers die geen ervaring hebben met embedded software kunnen het beste ‘flash’ MicroPython op de ESP32 zetten, zodat de toepassingscode kan worden geschreven in de eenvoudig te leren Python scripttaal.
  • Zoek op internet naar ESP32-voorbeelden en -bibliotheken voor de toepassing, om de ontwikkeling en integratie te versnellen (er zijn al veel goede voorbeelden beschikbaar).
  • Zorg bij het ontwerp dat de bootstrapping-pennen kunnen worden gebruikt om in de updatemodus op te starten. Hierdoor wordt het heel eenvoudig om firmware op locatie bij te werken.

Ontwikkelaars die voor het eerst met ESP32 werken, zullen merken dat deze tips heel wat ergernis en tijd kunnen besparen.

Conclusie

Zoals is gebleken, heeft ESP32 verschillende modules en ontwikkelingsboards die ontwikkelaars kunnen gebruiken om hun industriële IoT-toepassing te ontwerpen. Het voordeel van het gebruik van ESP32 is dat het de ontwikkeling vereenvoudigt omdat er geen kennis van RF-circuits en certificering van de draadloze ontvanger vereist is. ESP32 wordt ook breed ondersteund, niet alleen door de fabrikant van de module, maar ook door professionals en hobbyisten. Ontwikkelaars die niet bekend zijn met embedded software kunnen eenvoudig de IDE van Arduino gebruiken of hun draadloze toepassing met MicroPython programmeren.

Al met al is ESP32 een uitstekende keuze voor het snel en efficiënt verbinden van industriële automatiseringsapparatuur.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is een embedded software consultant. Hij heeft meer dan 200 artikelen over embedded software ontwikkelingstechnieken gepubliceerd, is een veelgevraagde spreker en technische trainer en heeft drie universitaire graden, waaronder een Masters of Engineering bij de University of Michigan.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey