INHOUDSOPGAWE:

ESP32 -kodeopwekker - Wifi, BLE, Bluetooth: 9 stappe
ESP32 -kodeopwekker - Wifi, BLE, Bluetooth: 9 stappe

Video: ESP32 -kodeopwekker - Wifi, BLE, Bluetooth: 9 stappe

Video: ESP32 -kodeopwekker - Wifi, BLE, Bluetooth: 9 stappe
Video: Урок 9. Bluetooth LE. ESP-32. Android. 2024, November
Anonim
ESP32 -kodeopwekker - Wifi, BLE, Bluetooth
ESP32 -kodeopwekker - Wifi, BLE, Bluetooth

Inleiding

ESP32 is 'n goedkoop dubbelverwerker -chip met ondersteuning vir WiFi, Bluetooth Classic en BLE (Bluetooth Low Energy). Alhoewel die chip al 'n aantal jare uit is, is kodeondersteuning vir Arduino nog nie volledig nie (soos in April 2018), maar hierdie instruksies en kodegenerator vul die ontbrekende BLE- en analogWrite -funksies in.

Wenk: Die ESP32 het nie 'n 'standaard Arduino' -analogWrite -funksie nie. Hierdie kodegenerator genereer egter kode wat dit vir u simuleer

Wenk: Die installering van die ESP -kode bevat nie BLE -ondersteuning nie. Die installasie wat hier beskryf word, bevat BLE -ondersteuning

Hierdie webblad dek die opstel van die Arduino IDE om die ESP32 vir BLE-, Bluetooth- of WiFi -verbindings te programmeer. Die pfodDesigner genereer kode vir elk van hierdie verbindingstipes en genereer ook kode om die ontbrekende analogWrite -funksie te simuleer.

ESP32 is 'n goedkoop dubbelverwerker -chip met ondersteuning vir WiFi, Bluetooth Classic en BLE (Bluetooth Low Energy). Alhoewel die chip al 'n paar jaar uit is, is kodeondersteuning vir Arduino nog nie voltooi nie (soos in April 2018), maar hierdie tutoriaal en kodegenerator vul die ontbrekende BLE- en analogWrite -funksies in. Hierdie webblad dek die opstel van die Arduino IDE om die ESP32 te programmeer vir BLE-, Bluetooth- of WiFi -verbindings. Die pfodDesigner genereer kode vir elk van hierdie verbindingstipes en genereer ook kode om die ontbrekende analogWrite -funksie te simuleer.

Die Arduino-byvoeging ondersteun ongeveer 31 ESP32-borde. As u die pfodDesigner gebruik, moet u pin -verbindings kies wat pas by die beskikbare op u spesifieke bord. Die Sparkfun ESP32 -ding (of Adafruit HUZZAH32 -veer) word hier gebruik as die voorbeeld ESP32 -bord, maar u kan die kode vir enige van die 31 ondersteunde ESP32 -borde gebruik.

Die gratis pfodDesignerV3 Android -app word gebruik om die bedieningsmenu (WYSIWYG) te skep en dan die kode vir die ESP32 te genereer, hetsy vir 'n BLE-, WiFi- of Bluetooth -verbinding. Nadat u u ESP32 -bord geprogrammeer het, kan u die pfodApp Android -app (betaal) gebruik om aan te sluit op u ESP32 (via BLE of WiFi of Bluetooth) en u bedieningsmenu te wys en u ESP32 te beheer. As u nie pfodApp wil gebruik nie, kan u steeds die gegenereerde kodering gebruik as basis vir u eie WiFi-, BLE (Nordic UART) of Bluetooth -verbindings, aangesien dit 'n stroom (druk/lees) koppelvlak bied vir elk van hierdie verbindingstipes.

Stap 1: Wenk: Die installering van die Arduino -ondersteuning vir die ESP32 met BLE -ondersteuning

Vanaf April 2018 is die installering van die Arduino ESP32 -ondersteuning meer by die meeste ander borde betrokke, en die verskafde kodebiblioteke is nie voltooi nie. U kan nie die Arduino Board -bestuurder gebruik om die ESP32 -ondersteuning te installeer nie. Volg hierdie stappe om Arduino op te stel vir ESP32 -programmering. Dit installeer ESP32 en ook die BLE -ondersteuning.

1 Vind die pad van u Arduino Sketchbook -liggingslys. Maak Arduino IDE oop en kyk onder File-> Preferences en bo-aan die skerm sal u die Sketchbook-ligging sien.

2 Laai hierdie ESP32_hardware.zip -lêer af en pak dit uit na die Sketchbook -ligging. Dit skep 'n hardeware-subgids daar. In die onwaarskynlike geval dat u reeds 'n hardeware-subgids in u Sketchbook-ligging het, kombineer die inhoud daarvan met hierdie.

3 Installeer die Xtensa en ESP32 Tools. Opmerking: die aflaai en installering neem 'n rukkie om die ~ 0.5Gig lêers te verwerk. Gaan na die hardeware / espressif / esp32 / tools -gids, en voer dan die Windows -masjien vir Windows -masjiene uit. Vir Mac- en Linux -gebruikers, voer die get.py -python -script uit om die gereedskap af te laai. Navigeer met behulp van 'n terminale na die hardeware/espressif/esp32/tools -lêergids. Tik dan: python get.py Die "get.py" python -script sal die Xtensa GNU -gereedskap en die ESP32 sagteware -ontwikkelingsstel (SDK) aflaai en dit op die regte plek uitpak.

U moet 'n paar nuwe vouers in die gids 'gereedskap' sien, insluitend 'sdk' en 'xtensa-esp32-elf' sodra dit klaar is.

Sodra dit voltooi is, maak u Arduino IDE oop en heropen, en u moet nou 'n lang lys ESP32-borde hê om uit te kies onder die menu Tool-> Boards. Kies “SparkFun ESP32 Thing” (of “Adafruit ESP32 Feather”)

U kan dan die lêer-voorbeelde-lys oopmaak om 'n aantal ESP32-voorbeeldlêers te sien

Bogenoemde proses installeer 'n momentopname van die github -kode vir die ESP32- en BLE -ondersteuning wat saamgevoeg is tot 'n enkele zip -lêer. Die deur pfodDesigner gegenereerde kode en die voorbeelde hieronder gebruik hierdie weergawe van die biblioteke. As u die nuutste weergawe wil hê, moontlik met 'n ander stel funksies en foute, laai dan die zip van die nuutste weergawe van die https://github.com/espressif/arduino-esp32 af en pak dit uit na hardware/espressif en hernoem die map esp32 en laai dan vir die BLE-ondersteuning 'n zip van die nuutste weergawe van die https://github.com/espressif/arduino-esp32 af en pak dit uit na die map esp32/biblioteke en hernoem dit ESP32_BLE_Arduino (indien nodig).

Stap 2: Installeer die PfodParser Libraries vir die ESP32

a) Laai dan die pfodParser.zip -biblioteek V3.23+, pfodDwgControls.zip af en, vir ESP32 WiFi, die pfodESP32BufferedClient.zip, zip -lêers na u rekenaar, skuif dit na u lessenaar of na 'n ander gids wat u maklik kan vind.

b) Gebruik dan die Arduino 1.8.2 IDE -kieslysopsie Skets → Invoerbiblioteek → Voeg biblioteek by om dit te installeer. (As Arduino u nie toelaat om dit te installeer nie omdat die biblioteek reeds bestaan, vind en verwyder dan die ouer pfodParser-, pfodCmdParser- of pfodCHAP ens -vouers en voer dit dan in)

c) Stop en herbegin die Arduino IDE en onder File-> Voorbeelde moet u nou pfodParser, pfodDwgControls en pfodESP32BufferedClient-biblioteke en 'n aantal voorbeelde sien.

Stap 3: Gebruik PfodDesignerV3 vir ESP32

Die gratis app pfodDesignerV3 (V3291+) ondersteun die generering van kode vir die ESP32 -chip om via BLE, WiFi of Bluetooth Classic aan pfodApp (betaal) te koppel.

Daar is baie bestaande tutoriale oor hoe om kontroles vir u Android -selfoon te skep om 'n wye verskeidenheid borde met pfodDesignerV3 te beheer. Met pfodDesignerV3 kan u kontroles skep wat uitsette aan/af skakel of dit pols, uitsette beheer via PWM, die toestand van 'n invoer of analoog waarde vertoon, log- en plotdata en sub-spyskaarte en nog baie meer.

Wenk: Die ESP32 Arduino -ondersteuning bevat ondersteuning vir ongeveer 31 verskillende ESP32 -borde. Die pfodDesignerV3 gee u toegang tot al die ESP32 I/O -penne, maar nie alle borde koppel al die ESP32 -penne aan boordpenne nie. Gaan die dokumentasie van u bord na waarvoor penne beskikbaar gestel word, en sien die lêer pins_arduino.h onder die hardeware / espressif / esp32 / variante -gids van u bord.

pfodDesignerV3 -penlys bevat opmerkings oor beskikbaarheid en penne vir spesiale gebruik vir die Sparkfun ESP32 Thing en Adafruit HUZZAH32 - ESP32 veerplanke.

Hierdie voorbeelde gebruik die Sparkfun ESP32 -dingbord en skep 'n skuifbalk om die helderheid van die ingeboude LED wat aan pen 5 gekoppel is vanaf u Android -selfoon te beheer. As u in plaas daarvan die Adafruit HUZZAH32 - ESP32 veerbord gebruik, word die ingeboude LED aan pen 13 gekoppel. Die ESP32 Arduino -ondersteuning, hierbo geïnstalleer, ondersteun nie Arduino se analogWrite direk nie. In plaas daarvan het die ESP32 16 PWM -kanale wat u kan beheer en aan enige van die uitsette kan koppel. Die pfodDesignerV3 genereer al die nodige kode om die kanaal toe te ken en dit aan u gekose uitset te koppel. Installeer die gratis pfodDesignerV3 (V3291+) van Google Play.

Stap 4: ESP32 BLE -kodeopwekker

ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker
ESP32 BLE -kodeopwekker

Begin 'n nuwe spyskaart

Klik op die teikenknoppie om die teikenapparaat te verander.

Die eerste voorbeelddoelwit is ESP32 BLE, dus klik op die Bluetooth Lae Energie -knoppie.

Kies ESP32 wat via BLE gekoppel is en druk dan op die terugknoppie van die selfoon om terug te keer na die hoofskerm.

Stap 5: Ontwerp die spyskaart - die opdrag

Die ontwerp van die spyskaart - die prompt
Die ontwerp van die spyskaart - die prompt
Die ontwerp van die spyskaart - die prompt
Die ontwerp van die spyskaart - die prompt
Die ontwerp van die spyskaart - die prompt
Die ontwerp van die spyskaart - die prompt

Hierdie eenvoudige voorbeeld sal slegs 'n vinnige en 'n enkele kontrole hê. Klik op die knoppie Wysig opdrag en dan op die knoppie Wysig teks om die teks in te stel.

Hier word die prompt op "ESP32 Led" gestel. Klik op die tik -knoppie om u wysigings te stoor en terug te keer na die vorige skerm. Klik dan op die agtergrondkleur stel om die algehele kleur vir die bedieningsmenu te kies.

U kan verskillende kleure vir elke kontrole kies. Daar is verskillende ander formate beskikbaar vir die prompt. Hier is die agtergrond op blou gestel en die lettergrootte is +5 en die teks is vet. Onderaan die skerm vir redigering word 'n voorskou van die geformateerde opdrag gegee.

Stap 6: Ontwerp die spyskaart - PWM Led Control

Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control
Die ontwerp van die spyskaart - PWM Led Control

Gebruik die terugknoppie van die selfoon om terug te keer na die hoofkieslys en klik dan op Voeg menu -item by om 'n bedienings- of vertoonitem by te voeg.

Kies die item PWM -uitvoer. Bo -aan die skerm word 'n voorskou van die bedieningspaneel getoon.

Wenk: Die ESP32 het nie 'n 'standaard Arduino' -analogWrite -funksie nie. Hierdie kodegenerator genereer egter kode wat dit vir u simuleer

Klik op die knoppie Bewerk voorste teks en verander "PWM -instelling" na "Led" Let op die agterste spasie om "Led" van die % -aanwysing te skei.

Klik op die tik -knoppie om u wysiging te stoor en blaai dan af na die knoppie "Nie gekoppel aan 'n I/O -pen nie".

Klik op die knoppie om 'n lys penne te vertoon wat as uitsette gebruik kan word.

Dit toon die spesiale gebruikspelde vir die Sparkfun ESP32 Thing en Adafruit HUZZAH32 veerborde. Kies pen 5 sodat die skuifknoppie die helderheid aan boord van die Sparkfun ESP32 Thing beheer. As u die Adafruit HUZZAH32 veerplank gebruik, kies dan pen 13. Vir ander planke, kyk na u borddokumentasie en die lêer pins_arduino.h onder die hardeware / espressif / esp32 / variante -gids van u bord

As u dan enige ander opmaakinstellings vir hierdie skuifbalk gemaak het, gebruik die terugknoppie van die selfoon om terug te gaan na die hoofkieslys en klik op Voorskou -kieslys om te sien hoe die finale spyskaart op u selfoon sal lyk as dit deur pfodApp vertoon word. Die kontroles is regstreeks, sodat u dit in die voorskou kan skuif.

Stap 7: Genereer die ESP32 -kode

Genereer die ESP32 -kode
Genereer die ESP32 -kode
Genereer die ESP32 -kode
Genereer die ESP32 -kode

Gaan terug na die hoofkieslys en blaai af na die knoppie Genereer kode.

Klik op die knoppie Genereer kode en klik dan op die knoppie Skryf kode na lêer om die kode te genereer

Verlaat die pfodDesignerV3 en dra die kode oor in /pfodAppRawData/pfodDesignerV3.txt van u selfoon na u rekenaar. Sien pfodAppForAndroidGettingStarted.pdf vir maniere om dit te doen. Die wifi -lêeroordragpro -app deur smarterDroid is een manier om die oordrag te doen.

Met die knoppie "Verander doel" op die skerm Generate Code, kan u tussen ESP32 skakel via BLE, ESP32 via Bluetooth en ESP32 via WiFi

Stap 8: Gebruik die voorbeelde

Gebruik die voorbeelde
Gebruik die voorbeelde

Met die knoppie "Verander doel" op die skerm Generate Code, kan u wissel tussen ESP32 via BLE, ESP32 via Bluetooth en ESP32 via WiFi

Dit is hoe die volgende drie voorbeeldsketse uit die bostaande ontwerp gegenereer is.

Gebruik die pfodESP32_BLE -voorbeeld

Deur die teiken op ESP32 via BLE te stel, word die kode in pfodESP32_LED_BLE.ino gegenereer. Hierdie skets is ook beskikbaar onder File-> Voorbeelde-> pfodParser. Maak die voorbeeld oop en dan, nadat u die Sparkfun ESP32 -ding (of ander ESP32 -bord) geprogrammeer het, moet u 'n verbinding daaraan op pfodApp opstel (sien pfodAppForAndroidGettingStarted.pdf vir die besonderhede) en kan u die helderheid van die raad gelei.

WENK: ESP32 gebruik dieselfde Bluetooth -adres vir beide BLE en Bluetooth, dus as u voorheen 'n ESP32 Bluetooth -verbinding in pfodApp opgestel het, moet u die pfodApp Bluetooth -verbinding verwyder voordat u 'n BLE -verbinding instel, aangesien pfodApp bestaande verbindings filter (deur adres) uit die lys met beskikbare toestelle. Miskien moet u ook die instelling van u selfoon oopmaak en die ESP32 Bluetooth -verbinding 'vergeet' en dan die selfoon se Bluetooth afskakel en u telefoon herlaai om die Bluetooth -stapel te verwyder

WENK: Die ESP32_BLE_Arduino -biblioteek van Neil Kolban is nie versoenbaar met die BLEPerifere biblioteek van Sandeep Mistry nie, wat gebruik word deur ander BLE -teikens wat deur pfodDesigner gegenereer word. U moet dus die BLEPeripheral -gids (as dit bestaan) uit u Arduino/biblioteke -gids verwyder om ESP32 BLE -sketse saam te stel.

Gebruik die pfodESP32_Bluetooth -voorbeeld

Deur die teiken op ESP32 via Bluetooth te stel, word die kode in pfodESP32_LED_Bluetooth.ino gegenereer. Hierdie skets is ook beskikbaar onder File-> Voorbeelde-> pfodParser. Maak die voorbeeld oop en programmeer dan die Sparkfun ESP32 -ding (of 'n ander ESP32 -bord). U moet die ESP32 met u telefoon koppel, geen speldnommer nodig nie. Stel dan 'n verbinding daaraan op pfodApp (sien pfodAppForAndroidGettingStarted.pdf vir die besonderhede) en maak 'n verbinding en kan die helderheid van die bord gelei.

Gebruik die pfodESP32_WiFi -voorbeeld

Deur die teiken op ESP32 via WiFi te stel, genereer die kode in pfodESP32_LED_WiFi.ino Hierdie skets is ook beskikbaar onder File-> Voorbeelde-> pfodParser. Maak die voorbeeld oop en voeg die naam en wagwoord van u netwerk in en kies 'n statiese IP vir hierdie toestel. Nadat u die Sparkfun ESP32 Thing (of ander ESP32 -bord) geprogrammeer het, moet u 'n verbinding hiermee op pfodApp opstel (sien pfodAppForAndroidGettingStarted.pdf vir die besonderhede) en kan u die helderheid van die bord -LED aanpas en in staat wees om dit aan te pas.

Stap 9: WiFi -sekuriteit

As u via die internet (via wifi) met die ESP32 verbind, is sekuriteit belangrik. U wil byvoorbeeld nie hê dat enigiemand u motorhuisdeur kan oopmaak nie. Die kodegenerator en die pfodParser -biblioteek ondersteun sekuriteit van 128 bis. Hierdie sekuriteit versleutelt nie die boodskappe nie, maar voeg 'n kriptografiese hash by elke boodskap om te beskerm teen ongemagtigde verbinding en beheer. Sien SipHash Secure Challenge and Response vir besonderhede oor hoe hierdie sekuriteit geïmplementeer word.

Voeg 128bit -sekuriteit by

Om teen ongemagtigde gebruikers toegang tot u toestel via die internet te beveilig, is net so maklik as om#definieer pfodSecurityCode te "" om u eie geheime kode by te voeg. (tot 32 heks -syfers)

Byvoorbeeld, om 'n sekuriteitskode van 173057F7A706AF9BBE65D51122A14CEE in te stel, gebruik u#define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE" U moet natuurlik u eie geheime kode gebruik. Deur u eie kode in u pfodApp-verbinding in te stel, kan u, en niemand anders nie, verbinding maak.

'N Lang ewekansige kode is nodig vir goeie sekuriteit. pfodApp ondersteun tot 128 bit as 32Hex syfers.

Om u eie geheime kode te genereer, kan u 'n ewekansige geheime sleutelopwekker hier aflaai. Behalwe dat dit ewekansige sleutels genereer, skryf hierdie program dit ook as QR -kodes, sodat u dit maklik en akkuraat in u pfodApp -verbinding kan stel.

U kan die QR -kode uitdruk en dit aan u pfodDevice heg. Klik dan op die Scan QR -knoppie in die pfodApp WiFi -verbindingsskerm om die wagwoord in te lees.

Sien 'n Eenvoudige WiFi/Arduino pfodDevice ™ met 128 -bits beveiliging vir 'n gedetailleerde voorbeeld van die gebruik van die sleutelopwekker en die QR -kode.

Afsluiting

Hierdie handleiding het getoon hoe u die Arduino IDE instel om die ESP32 te programmeer. Daarna gebruik hy die gratis pfodDesigner -app om 'n spyskaart te ontwerp om die helderheid van die ingeboude LED en gegenereerde kode te beheer om via BLE, Bluetooth of WiFi aan te sluit op die ESP32. As u dan via die pfodApp -apppfodApp -app aansluit, sien u die spyskaart wat u ontwerp het en kan u die helderheid van die LED via 'n skuifknop beheer. Die pfodDesigner genereer al die Arduino -kode, insluitend die simulasie van Arduino se analogWrite. Geen Arduino -kodering was nodig nie. Die pfodApp sorg vir al die Android -kant, geen Android -kodering is nodig nie.

Aanbeveel: