Indholdsfortegnelse:

ESP32 -kodegenerator - Wifi, BLE, Bluetooth: 9 trin
ESP32 -kodegenerator - Wifi, BLE, Bluetooth: 9 trin

Video: ESP32 -kodegenerator - Wifi, BLE, Bluetooth: 9 trin

Video: ESP32 -kodegenerator - Wifi, BLE, Bluetooth: 9 trin
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
ESP32 Kodegenerator - Wifi, BLE, Bluetooth
ESP32 Kodegenerator - Wifi, BLE, Bluetooth

Introduktion

ESP32 er en billig dual processor -chip med understøttelse af WiFi, Bluetooth Classic og BLE (Bluetooth Low Energy). Selvom chippen har været ude i en årrække, er kodestøtte til Arduino stadig ikke fuldstændig (som i april 2018), men denne instruerbare og kodegenerator udfylder de manglende BLE- og analogWrite -funktioner.

Tip: ESP32 har ikke en 'standard Arduino' analogWrite -funktion. Men denne kodegenerator genererer kode, der simulerer den for dig

Tip: Installationen af ESP -koden inkluderer ikke BLE -understøttelse. Installationen beskrevet her inkluderer BLE -understøttelse

Denne webside dækker opsætning af Arduino IDE til programmering af ESP32 til BLE-, Bluetooth- eller WiFi -forbindelser. PfodDesigner genererer kode for hver af disse forbindelsestyper og genererer også kode for at simulere den manglende analogWrite -funktion.

ESP32 er en billig dual processor -chip med understøttelse af WiFi, Bluetooth Classic og BLE (Bluetooth Low Energy). Selvom chippen har været ude i en årrække, er kodestøtte til Arduino stadig ikke fuldført (som i april 2018), men denne vejledning og kodegenerator udfylder de manglende BLE- og analogWrite -funktioner. Denne webside dækker opsætning af Arduino IDE til at programmere ESP32 til BLE-, Bluetooth- eller WiFi -forbindelser. PfodDesigner genererer kode for hver af disse forbindelsestyper og genererer også kode for at simulere den manglende analogWrite -funktion.

Arduino-tilføjelsen understøtter omkring 31 ESP32-kort. Når du bruger pfodDesigner, skal du vælge pin -forbindelser, der matcher dem, der er tilgængelige på dit bestemte bord. Sparkfun ESP32 Thing (eller Adafruit HUZZAH32 Feather) bruges her som eksempel på ESP32 board, men du kan bruge koden til et hvilket som helst af de 31 understøttede ESP32 boards.

Den gratis pfodDesignerV3 Android -app bruges til at oprette kontrolmenuen (WYSIWYG) og derefter generere koden til ESP32, enten til en BLE-, WiFi- eller Bluetooth -forbindelse. Efter at have programmeret dit ESP32 -kort, kan du derefter bruge pfodApp Android -appen (betalt) til at oprette forbindelse til din ESP32 (via BLE eller WiFi eller Bluetooth) og vise din kontrolmenu og styre din ESP32. Hvis du ikke vil bruge pfodApp, kan du stadig bruge den genererede kodede som grundlag for dine egne WiFi-, BLE (Nordic UART) eller Bluetooth -forbindelser, da det giver en Stream (print/læs) grænseflade til hver af disse forbindelsestyper.

Trin 1: Tip: Installation af Arduino -understøttelsen til ESP32 med BLE -understøttelse

I april 2018 er installationen af Arduino ESP32 -understøttelsen mere involveret end for de fleste andre bestyrelser, og de medfølgende kodebiblioteker er ikke komplette. Du kan ikke bruge Arduino Board manager til at installere ESP32 support. Følg disse trin for at konfigurere Arduino til ESP32 -programmering. Dette installerer ESP32 og også BLE -understøttelsen.

1 Find stien til din Arduino Sketchbook -lokaliseringskatalog. Åbn Arduino IDE, og kig under File-> Preferences, og øverst på skærmen vil du se Sketchbook-placeringen.

2 Download denne ESP32_hardware.zip -fil, og pak den ud til Sketchbook -placeringen. Det opretter en hardware-undermappe der. I det usandsynlige tilfælde, at du allerede har en hardware-undermappe i din Sketchbook-placering, skal du flette dens indhold med denne.

3 Installer Xtensa- og ESP32 -værktøjerne. Bemærk: Denne download og installation tager noget tid at behandle ~ 0,5Gig filer. Gå til biblioteket hardware / espressif / esp32 / tools, og kør derefter Get.exe -filen for Windows -maskiner. For Mac- og Linux -brugere skal du køre get.py python -scriptet for at downloade værktøjerne. Brug en terminal til at navigere til mappen hardware/espressif/esp32/tools. Skriv derefter: python get.py "get.py" python -scriptet vil downloade Xtensa GNU -værktøjerne og ESP32 -softwareudviklingskittet (SDK) og pakke dem ud til den rigtige placering.

Du bør se et par nye mapper i mappen "værktøjer", herunder "sdk" og "xtensa-esp32-elf", når det er gjort.

Når dette er fuldført, skal du lukke og genåbne din Arduino IDE, og du skulle nu have en lang liste over ESP32-kort at vælge imellem i menuen Værktøj-> Tavler. Vælg "SparkFun ESP32 Thing" (eller "Adafruit ESP32 Feather")

Du kan derefter åbne listen Fileksempler for at se et antal ESP32-eksempelfiler

Processen ovenfor installerer et øjebliksbillede af github -koden til ESP32- og BLE -understøttelsen, som er blevet fusioneret til en enkelt zip -fil. Den pfodDesigner -genererede kode og eksemplerne herunder bruger denne version af disse biblioteker. Hvis du vil have den nyeste version med muligvis et andet sæt funktioner og fejl, skal du downloade zip'en til den nyeste version af https://github.com/espressif/arduino-esp32 og pakke den ud til hardware/espressif og omdøbe den mappe esp32 og derefter for BLE-understøttelsen downloade en zip af den nyeste version af https://github.com/espressif/arduino-esp32 og pakke den ud til mappen esp32/biblioteker og omdøbe den til ESP32_BLE_Arduino (hvis det er nødvendigt).

Trin 2: Installation af PfodParser Libraries til ESP32

a) Download derefter pfodParser.zip -biblioteket V3.23+, pfodDwgControls.zip og, for ESP32 WiFi, pfodESP32BufferedClient.zip, zip -filer til din computer, flyt dem til dit skrivebord eller en anden mappe, du let kan finde.

b) Brug derefter Arduino 1.8.2 IDE -menupunktet Skitse → Importer bibliotek → Tilføj bibliotek for at installere dem. (Hvis Arduino ikke lader dig installere det, fordi biblioteket allerede findes, skal du finde og slette de ældre pfodParser-, pfodCmdParser- eller pfodCHAP etc -mapper og derefter importere disse)

c) Stop og genstart Arduino IDE og under Fil-> Eksempler skal du nu se pfodParser, pfodDwgControls og pfodESP32BufferedClient-biblioteker og en række eksempler.

Trin 3: Brug af PfodDesignerV3 til ESP32

Den gratis pfodDesignerV3 (V3291+) app understøtter generering af kode til ESP32 -chippen, der skal tilsluttes via BLE, WiFi eller Bluetooth Classic til pfodApp (betalt).

Der er mange eksisterende selvstudier om, hvordan du opretter kontroller til din Android -mobil for at styre en lang række boards ved hjælp af pfodDesignerV3. Med pfodDesignerV3 kan du oprette kontroller, der tænder/slukker output eller pulserer dem, styrer output via PWM, viser tilstanden for en input eller analog værdi, log- og plotdata og undermenuer og meget mere.

Tip: ESP32 Arduino -understøttelsen inkluderer understøttelse af omkring 31 forskellige ESP32 -kort. PfodDesignerV3 giver dig adgang til alle ESP32 I/O -benene, men ikke alle kort forbinder alle ESP32 -stifterne til kortstifter. Tjek din tavles dokumentation for hvilke pins der er tilgængelige, og se pins_arduino.h -filen under din tavles hardware / espressif / esp32 / variants bibliotek.

pfodDesignerV3 pin -liste indeholder kommentarer om tilgængelighed og pins til særlig brug til Sparkfun ESP32 Thing og Adafruit HUZZAH32 - ESP32 Feather Boards.

Disse eksempler bruger Sparkfun ESP32 Thing board og skaber en skyder til at styre lysstyrken på den indbyggede LED tilsluttet pin 5 fra din Android -mobil. Hvis du i stedet bruger Adafruit HUZZAH32 - ESP32 Feather board, så er den indbyggede LED forbundet til pin 13. ESP32 Arduino support, installeret ovenfor, understøtter ikke Arduinos analogWrite direkte. I stedet har ESP32 16 PWM -kanaler, som du kan styre og tilslutte til alle udgange. PfodDesignerV3 genererer al den nødvendige kode for at allokere kanalen og slutte den til dit valgte output. Installer den gratis pfodDesignerV3 (V3291+) fra Google Play.

Trin 4: ESP32 BLE -kodegenerator

ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator
ESP32 BLE -kodegenerator

Start en ny menu

Klik på knappen Mål for at ændre målenheden.

Det første eksempelmål vil være ESP32 BLE, så klik på knappen Bluetooth Low Energy.

Vælg ESP32 tilsluttet via BLE, og tryk derefter på mobilens tilbageknap for at komme tilbage til hovedskærmen.

Trin 5: Design af menuen - Prompt

Design af menuen - Prompt
Design af menuen - Prompt
Design af menuen - Prompt
Design af menuen - Prompt
Design af menuen - Prompt
Design af menuen - Prompt

Dette enkle eksempel har kun en prompt og en enkelt kontrol. Klik på knappen Rediger prompt og derefter på knappen Rediger prompttekst for at angive promptteksten.

Her er prompten indstillet til "ESP32 Led". Klik på afkrydsknappen for at gemme dig redigeringer og vende tilbage til den forrige skærm. Klik derefter på Indstil baggrundsfarve for at vælge den over alle farve til menuen med kontroller.

Du kan vælge forskellige farver for hver kontrol. Der er forskellige andre formater til rådighed for prompten. Her er baggrunden indstillet til blå, og skriftstørrelsen er +5, og teksten er fed. En forhåndsvisning af den formaterede prompt vises nederst på skærmbilledet til redigering.

Trin 6: Design af menuen - PWM Led Control

Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control
Design af menuen - PWM Led Control

Brug mobilens tilbage -knap til at vende tilbage til hovedmenuen, og klik derefter på Tilføj menupunkt for at tilføje et kontrolelement eller visningselement.

Vælg elementet PWM Output. Et eksempel på kontrolelementet vises øverst på skærmen.

Tip: ESP32 har ikke en 'standard Arduino' analogWrite -funktion. Men denne kodegenerator genererer kode, der simulerer den for dig

Klik på knappen Rediger ledende tekst, og skift "PWM -indstilling" til "Led" Bemærk det efterfølgende mellemrum for at adskille "Led" fra % -indikationen.

Klik på afkrydsknappen for at gemme din redigering, og rul derefter ned til knappen "Ikke forbundet til en I/O -pin".

Klik på knappen for at få vist en liste over stifter, der kan bruges som output.

Dette viser de særlige brugsstifter til Sparkfun ESP32 Thing og Adafruit HUZZAH32 Feather boards. Vælg pin 5, så skyderkontrollen styrer Sparkfun ESP32 Thing's indbyggede lysstyrke. Hvis du bruger Adafruit HUZZAH32 Feather board, skal du vælge pin 13 i stedet. For andre tavler tjek din tavles dokumentation og pins_arduino.h -filen under dit tavles hardware / espressif / esp32 / varianter bibliotek

Når du derefter er færdig med at foretage andre formateringsindstillinger for denne skyder, skal du bruge mobilens tilbage -knap til at gå tilbage til hovedmenuen og klikke på Preview -menuen for at se, hvordan den sidste menu vil se ud på din mobil, når den vises af pfodApp. Kontrolelementerne er live, så du kan flytte dem i forhåndsvisningen.

Trin 7: Generer ESP32 -koden

Generer ESP32 -koden
Generer ESP32 -koden
Generer ESP32 -koden
Generer ESP32 -koden

Gå tilbage til hovedmenuen, og rul ned til knappen Generer kode.

Klik på knappen Generer kode, og klik derefter på knappen Skriv kode til fil for at generere koden

Afslut pfodDesignerV3, og overfør koden i /pfodAppRawData/pfodDesignerV3.txt fra din mobil til din computer. Se pfodAppForAndroidGettingStarted.pdf for at se, hvordan du gør dette. Wifi -filoverførselspro -appen af smarterDroid er en måde at overføre på.

Ved hjælp af knappen "Skift mål" på skærmen Generer kode kan du skifte mellem ESP32 via BLE, ESP32 via Bluetooth og ESP32 via WiFi

Trin 8: Kørsel af eksemplerne

Kører eksemplerne
Kører eksemplerne

Ved hjælp af knappen "Skift mål" på skærmen Generer kode kan du skifte mellem ESP32 via BLE, ESP32 via Bluetooth og ESP32 via WiFi

Sådan blev de følgende tre eksempelskitser genereret ud fra ovenstående design.

Kører eksemplet pfodESP32_BLE

Indstilling af målet til ESP32 via BLE genererer koden i pfodESP32_LED_BLE.ino Denne skitse er også tilgængelig under Fil-> Eksempler-> pfodParser. Åbn dette eksempel, og efter programmering af Sparkfun ESP32 Thing (eller et andet ESP32 -kort) skal du derefter oprette en forbindelse til det på pfodApp (se pfodAppForAndroidGettingStarted.pdf for detaljer) og tilslutte og kunne justere lysstyrken på bestyrelsen førte.

TIP: ESP32 bruger den samme bluetooth -adresse til både BLE og Bluetooth, så hvis du tidligere har oprettet en ESP32 Bluetooth -forbindelse i pfodApp, skal du slette den pfodApp Bluetooth -forbindelse, før du opretter en BLE -forbindelse, da pfodApp filtrerer eksisterende forbindelser (ved adresse) fra visningslisten over tilgængelige enheder. Du skal muligvis også åbne din mobils indstilling og 'glemme' ESP32 Bluetooth -forbindelsen og derefter slukke for mobilens Bluetooth og genstarte din telefon for at rydde Bluetooth -stakken

TIP: ESP32_BLE_Arduino -biblioteket fra Neil Kolban er ikke kompatibelt med BLEPeripheral -biblioteket fra Sandeep Mistry, som bruges af nogle andre BLE -mål genereret af pfodDesigner. Så du skal fjerne BLEPeripheral -biblioteket, (hvis det findes), fra din Arduino/biblioteksmappe for at kompilere ESP32 BLE -skitser.

Kører pfodESP32_Bluetooth -eksemplet

Indstilling af målet til ESP32 via Bluetooth genererer koden i pfodESP32_LED_Bluetooth.ino Denne skitse er også tilgængelig under Fil-> Eksempler-> pfodParser. Åbn det eksempel, og programmer derefter Sparkfun ESP32 Thing (eller et andet ESP32 -kort). Du skal parre ESP32 med din telefon, intet pinkode kræves. Opret derefter en forbindelse til den på pfodApp (se pfodAppForAndroidGettingStarted.pdf for detaljer) og tilslut og kunne justere lysstyrken på tavlen.

Kører pfodESP32_WiFi -eksemplet

Indstilling af målet til ESP32 via WiFi genererer koden i pfodESP32_LED_WiFi.ino Denne skitse er også tilgængelig under Fil-> Eksempler-> pfodParser. Åbn det eksempel, og indsæt dit netværks navn og adgangskode, og vælg en statisk IP for denne enhed. Derefter, efter programmering af Sparkfun ESP32 Thing (eller et andet ESP32 -kort), skal du oprette en forbindelse til den på pfodApp (se pfodAppForAndroidGettingStarted.pdf for detaljer) og tilslutte og kunne justere lysstyrken på kortets LED.

Trin 9: WiFi -sikkerhed

Hvis du opretter forbindelse til ESP32 via internettet (via wifi), er sikkerhed vigtig. Du vil ikke have, at hvem som helst f.eks. Kan åbne din garageport. Kodegeneratoren og pfodParser -biblioteket understøtter 128 bit sikkerhed. Denne sikkerhed krypterer ikke meddelelserne, men tilføjer i stedet en kryptografisk hash til hver besked for at beskytte mod ikke-autoriseret forbindelse og kontrol. Se SipHash Secure Challenge and Response for detaljer om, hvordan denne sikkerhed implementeres.

Tilføjelse af 128bit sikkerhed

Sikring mod uautoriserede brugere, der får adgang til din enhed via internettet, er lige så let som at redigere#define pfodSecurityCode "" for at tilføje din egen hemmelige kode. (op til 32 sekskantede cifre)

For eksempel for at angive en sikkerhedskode på 173057F7A706AF9BBE65D51122A14CEE ville du bruge#define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE" Selvfølgelig skal du bruge din egen hemmelige kode. Hvis du indstiller din egen kode i din pfodApp-forbindelse, kan du og ingen andre oprette forbindelse.

En lang tilfældig kode er nødvendig for god sikkerhed. pfodApp understøtter op til 128bits som 32Hex -cifre.

For at generere din egen hemmelige kode kan du downloade en tilfældig Secret Key Generator herfra Secret Key Generator herfra. Udover at generere tilfældige nøgler, skriver dette program dem ud som QR -koder, så du nemt og præcist kan indstille dem i din pfodApp -forbindelse.

Du kan udskrive QR -koden og vedhæfte den til din pfodDevice. Klik derefter på knappen Scan QR i pfodApp WiFi -forbindelsesskærmen for at læse adgangskoden.

Se En simpel WiFi/Arduino pfodDevice ™ med 128 bit sikkerhed for et detaljeret eksempel på brug af nøglegeneratoren og QR -koden.

Konklusion

Denne vejledning har vist, hvordan du konfigurerer Arduino IDE til at programmere ESP32. Den brugte derefter den gratis pfodDesigner -app til at designe en menu til at styre lysstyrken på den indbyggede LED og genererede kode til tilslutning til ESP32 via BLE, Bluetooth eller WiFi. Hvis du derefter opretter forbindelse via pfodApp apppfodApp -appen, ser du den menu, du har designet, og kan styre LED'ens lysstyrke via en skyder. PfodDesigner genererer al Arduino -kode, herunder simulering af Arduinos analogWrite. Ingen Arduino -kodning var påkrævet. PfodApp tager sig af hele Android -siden, ingen Android -kodning kræves.

Anbefalede: