Så här väljer och använder du rätt ESP32 Wi-Fi/Bluetooth-modul för en industriell IoT-applikation (IIoT)

Av Jacob Beningo

Bidraget med av DigiKeys nordamerikanska redaktörer

I takt med att den industriella automatiseringen ökar arbetar ingenjörer i fabrikerna med att ansluta system till ett IoT som på många sätt har lämnat de äldre fabriksgolven bakom sig. För både nya och äldre system kan trådlös anslutning till IoT med Wi-Fi eller Bluetooth dock ske tämligen enkelt med ESP32-moduler och -satser.

ESP32, som skapats och utvecklats av Espressif Systems, är en serie strömsnåla microcontrollers av låg kostnad i ett systemchip med integrerad Wi-Fi och Bluetooth i dual-mode. Det är ett genombrott för automatiseringsingenjörer som inte vill fastna i alla nyanser av radiofrekvens- (RF) och trådlös design. Som en Wi-Fi/Bluetooth-kombinationsradio till låg kostnad har den vunnit popularitet inte bara bland entusiaster utan också bland IoT-utvecklare. Dess låga energiförbrukning och det stora antalet utvecklingsmiljöer med öppen källkod och bibliotek gör att den passar perfekt för alla slags utvecklare.

ESP32 finns dock i så många olika moduler och utvecklingskort att det kan vara svårt att välja rätt.

Den här artikeln introducerar ESP32-lösningar och visar hur utvecklare kan identifiera rätt modul och utvecklingskort för att börja ansluta sin applikation till IoT.

ESP32-modulen

ESP32-modulen är en integrerad och certifierad Wi-Fi/Bluetooth-allt-i-ett-lösning som inte bara tillhandahåller den trådlösa radion, den är också en processor på kortet med gränssnitt för anslutning till olika periferienheter. Processorn har i själva verket två processorkärnor vars driftsfrekvenser kan styras oberoende mellan 80 och 240 MHz. Processorns periferienheter gör det enkelt att ansluta till en rad externa gränssnitt som:

  • SPI
  • I2C
  • UART
  • I2S
  • Ethernet
  • SD-kort
  • Kapacitiv beröring

Det finns flera olika ESP32-moduler som en utvecklare kan välja beroende på applikationsbehoven. Den första och mest populära ESP32-modulen är ESP32-WROOM-32D, som arbetar i upp till 240 MHz (figur 1). Modulen innehåller en kretskortsantenn - bestående av själva ledningsbanorna - vilket förenklar implementeringen. Man behöver därför inte lägga till extra monteringsdetaljer och layoutkomplexitet som associeras med en IPEX-ansluten antenn. Om IPEX-anslutningsalternativet väljs finns det emellertid flera bra antennalternativ, t.ex. Inventek Systems W24P-U.

Bild av Espressif Systems ESP32-WROOM-32D-modulFigur 1: ESP32-WROOM-32D-modulen arbetar i hastigheter upp till 240 MHz och innehåller 8 MB SPI flashminne på kortet. (Bildkälla: Espressif Systems)

Modulen innehåller ett flashminne på 4 Mb och har 38 stift som är anordnade för att minimera modulens storlek, vilket gör den nästan kvadratisk. WROOM-32D är i själva verket helt stiftkompatibel med ESP-WROOM-32U (figur 2). WROOM-32U ersätter kretskortsantennen med en IPEX-kontakt, baserad på Hiroses U.FL-design. På så sätt sparar WROOM-32U kortutrymme och gör det möjligt för utvecklare att ansluta en extern antenn som de kan använda i sin produkt för optimala RF-egenskaper.

Bild av Espressif Systems ESP32-WROOM-32U-modulFigur 2: ESP32-WROOM-32U är stiftkompatibel med WROOM-32D, men ersätter den sistnämnda spårantennen på kortet med en IPEX-anslutning för en extern antenn, vilket möjliggör optimerade RF-egenskaper. (Bildkälla: Espressif Systems)

En intressant punkt med WROOM-32D-modulerna är att de också finns i olika flashminnesstorlekar. Modulerna finns i ytterligare minnesstödvarianter som ESP32-WROOM-32D med 8 MB och ESP-WROOM-32D med 16 MB.

Välja ett ESP32-utvecklingskort för industriell styrning

ESP32-modulerna är ett bra val när du utformar ett kort som ska användas i produktion eller där de kommer att läggas på ett kort som kommer att användas i stora volymer. För utveckling av fasta komponenter med låg volym på tillverkningsgolvet kan utvecklare använda ett ESP32-utvecklingskort. Dessa kort sträcker sig från mycket grundläggande "komma igång"-kort till sofistikerade kort som innehåller sekundära processorer och LCD-skärmar. Det finns några som också är väl lämpade för industriella automatiseringsapplikationer, förutsatt att enkelhet i utvecklingen är ett viktigt krav.

Det finns till exempel ESP32-DEVKITC-32D-F (figur 3). Detta är ett enkelt breakout-kort för WROOM-32D som har alla strömkonditionerings- och programmeringskretsar som en designer eller utvecklare behöver för att komma igång. Kortet drivs antingen via en inbyggd USB-mikrokontakt eller genom breakout-stiftlisten V-IN. Byglingar eller ledningar kan sedan användas för att ansluta olika komponenter till WROOM-32D.

Bild av Espressif Systems utvecklingskort ESP32-DEVKITC-32D-F.Figur 3: Utvecklingskortet ESP32-DEVKITC-32D-F innehåller breakout-stiftlister för anslutning till någon av WROOM-32D-stiften och kan drivas via USB för utvecklingsändamål. (Bildkälla: Espressif Systems)

Ytterligare ett exempel är Adafruit Industries Airlift ESP32-sköld. Detta inkluderar inte bara WROOM-32D, utan har också ytterligare utrymme för prototypkonstruktioner (figur 4). Utrymmet för prototypkonstruktioner kan användas för att lägga till anslutningar till andra sköldar förutom att lägga till anpassade kretsar. En utvecklare kan använda detta område för att bygga ingångs- och utgångskretsar för industriella automatiseringsapplikationer med låg spänning. Det finns också en SD-kortkontakt på kortet som gör det mycket lättare att utveckla en applikation för dataloggning.

Bild av Adafruit Airlift ESP32-sköldFigur 4: Med Adafruit Airlift ESP32-skölden kan konstruktörer utveckla prototyper av sin design eller bygga engångskretsar som kan användas i industriella automatiseringsapplikationer. Airlift innehåller utrymme för prototypkonstruktioner som kan användas för avsedda kretsar. (Bildkälla: Adafruit Industries)

Det kan finnas vissa industriella automatiseringstillämpningar där ett utvecklingskort med en extra processor används och ESP32 bara ger anslutning istället för att hantera hela applikationsbelastningen. I dessa applikationer kan utvecklingskortet eller produkten ha PMOD-expansionskontakter på kortet.

Istället för att anpassa ett PMOD-kort för ESP32, kan utvecklare utnyttja Digilents ESP32 PMOD-breakout-kort (figur 5).

ESP32 PMOD tillhandahåller en PMOD-standardkontakt tillsammans med följande:

  • En LED-indikator för ström
  • En användarknapp på kortet
  • 4-stift I/O-expansion
  • Byglingar för boot-konfiguration

Bild av Digilents ESP32 PMOD-kortFigur 5: Digilents ESP32 PMOD-kort tillhandahåller ESP32-modulen i ett expansionsformat som är enkelt att ansluta för användning med andra processorer och utvecklingsskort. (Bildkälla: Digilent)

Espressif Systems ESP-WROVER-KIT ger en komplett ESP32-utvecklingslösning med allt som utvecklare behöver för att utveckla en ESP32-baserad applikation (figur 6). WROVER innehåller till exempel en FT2232HL USB till serieomvandlare från FTDI, vilket gör det enkelt att programmera ESP32-modulen utan behov av specialanpassade programmeringsverktyg. Kortet innehåller också en 3,2-tums LCD-skärm, en microSD-kontakt, en RGB-LED och ett kameragränssnitt. Utvecklingskortet, liksom alla I/O, är också anpassat och lättillgängligt genom stiftlister.

Diagram över Espressif ESP-WROVER-KIT-kortFigur 6: Espressif ESP-WROVER-KIT-kort ger industriella automatiseringsutvecklare en ESP32-modul som har tillgång till en RGB-LED, microSD-plats, kamera, en LCD och lättillgänglig I/O-expansion. (Bildkälla: Espressif Systems)

När en utvecklare har bestämt vilken modul och vilket utvecklingskort som bäst passar tillämpningen måste lite tid ägnas åt vilken utvecklingsmiljö för ESP32 som bäst passar behoven.

Välja en ESP32-utvecklingsmiljö

ESP32 har blivit så populär att det finns flera olika utvecklingsmiljöer att välja mellan för att utveckla och programmera enheten. De mest populära utvecklingsverktygen inkluderar:

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

Den första miljön, Espressif IDF, är en utvecklingsverktygskedja för erfarna utvecklare av inbäddad programvara. Verktygskedjan innehåller flera användbara delar som till exempel en IDE för att utveckla applikationen, en kompilator, bibliotek och exempel. IDF använder FreeRTOS som grundläggande realtidsoperativsystem (RTOS) tillsammans med lwIP TCP/IP-stacken och TLS 1.2 för Wi-Fi.

För utvecklare som har minimal programmeringserfarenhet kan den populära Arduino IDE också användas för att utveckla en applikation och distribuera den till ESP32. Även om Arduino IDE är lite långsammare och mer otymplig än en professionell utvecklingsmiljö, erbjuder den många exempel och stöd för ESP32, vilket kan förenkla utvecklingen för nybörjare.

För utvecklare som är intresserade av att utveckla sin applikation i Python stöds ESP32 av MicroPython-kärnan med öppen källkod. Utvecklare kan ladda MicroPython på ESP32 och sedan utveckla Python-skript för sina applikationer. Detta kan göra det mycket enkelt att uppdatera applikationen direkt i en industriell miljö utan nödvändig expertis som normalt associeras med inbäddad utveckling.

Tips för att arbeta med ESP32

Att komma igång med ESP32 är inte svårt, och en sökning på webben ger detaljerade beskrivningar av hur man ställer in olika programvarumiljöer. Det finns dock många nyanser och beslut som krävs av utvecklare som arbetar med ESP32 för första gången. Här ger vi några användbara tips för att komma igång:

  • Identifiera och konfigurera noggrant en moduls startstift – MTDI, GPIO0, GPIO2, MTDO och GPIO5 – för att ladda en applikation från rätt minneskälla (internt flashminne, QSPI, ladda ner, aktivera/inaktivera felsökningsmeddelanden).
  • Ställ in baudhastigheten för den seriella utgången till samma baudhastighet som baudhastigheten för boot-programvaran i ESP32. Detta gör att ESP32-startmeddelanden och applikationens felsökningsmeddelanden kan övervakas utan att konfigurera om baud-hastigheten.
  • Användare som inte har erfarenhet av inbäddad programmering bör ”flasha” MicroPython på ESP32 så att applikationskoden kan skrivas med det användarvänliga Python-skriptspråket.
  • För applikationen kan du söka på Internet efter ESP32-exempel och -bibliotek för att påskynda applikationsutveckling och -integrering (det finns redan många bra exempel tillgängliga).
  • I designen bör man se till att bootstrapping-stiften kan användas för att starta i uppdateringsläget. Detta gör det mycket enkelt att uppdatera den fasta programvaran i fältet.

Utvecklare som följer dessa tips upptäcker att de kan spara en hel del tid och slippa onödiga problem vid första användningen av ESP32.

Slutsats

Som visats har ESP32 flera olika moduler och utvecklingskort som utvecklare kan utnyttja för att börja utveckla sin industriella IoT-tillämpning. Fördelen med att använda ESP32 för detta ändamål är att det förenklar utvecklingen genom att det eliminerar behovet av att förstå RF-kretsar och att certifiera den trådlösa mottagaren. ESP32 har också ett omfattande stöd, inte bara från modultillverkaren utan även inom professionella kretsar och av hobbyanvändare. Utvecklare som inte är bekanta med inbäddad programvara kan enkelt använda Arduino IDE eller programmera sin trådlösa applikation med MicroPython.

Sammanfattningsvis är ESP32 ett utmärkt val för att snabbt och effektivt ansluta industriell automatiseringsutrustning.

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.

Om skribenten

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo är konsult inom inbäddad programvara. Han har publicerat över 200 artiklar om utveckling av inbäddad programvara, och är en eftertraktad talare och teknisk utbildare med tre examina, däribland en master i teknik från University of Michigan.

Om utgivaren

DigiKeys nordamerikanska redaktörer