Taula de continguts:

Generador de codi ESP32: Wifi, BLE, Bluetooth: 9 passos
Generador de codi ESP32: Wifi, BLE, Bluetooth: 9 passos

Vídeo: Generador de codi ESP32: Wifi, BLE, Bluetooth: 9 passos

Vídeo: Generador de codi ESP32: Wifi, BLE, Bluetooth: 9 passos
Vídeo: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, De novembre
Anonim
Generador de codi ESP32: Wifi, BLE, Bluetooth
Generador de codi ESP32: Wifi, BLE, Bluetooth

Introducció

ESP32 és un xip de doble processador de baix cost, amb suport per a WiFi, Bluetooth Classic i BLE (Bluetooth Low Energy). Tot i que el xip ha estat fora des de fa uns quants anys, el suport de codi per a Arduino encara no està complet (a l’abril de 2018), però aquest generador de codi i instructiu omple les funcions BLE i analogWrite que falten.

Consell: l'ESP32 no té una funció analogWrite 'Arduino estàndard'. No obstant això, aquest generador de codi genera codi que el simula per a vosaltres

Consell: La instal·lació del codi ESP no inclou suport BLE. La instal·lació descrita aquí inclou suport BLE

Aquesta pàgina web cobrirà la configuració de l’IDE Arduino per programar l’ESP32 per a connexions BLE, Bluetooth o WiFi. El pfodDesigner genera codi per a cadascun d’aquests tipus de connexió i també genera codi per simular la funció analogWrite que falta.

ESP32 és un xip de doble processador de baix cost, amb suport per a WiFi, Bluetooth Classic i BLE (Bluetooth Low Energy). Tot i que el xip ja no funciona des de fa uns quants anys, el suport de codi per a Arduino encara no està complet (a l’abril de 2018), però aquest tutorial i generador de codi omple les funcions BLE i analogWrite que falten. Arduino IDE per programar l’ESP32 per a connexions BLE, Bluetooth o WiFi. El pfodDesigner genera codi per a cadascun d’aquests tipus de connexió i també genera codi per simular la funció analogWrite que falta.

El complement Arduino admet unes 31 plaques ESP32. Quan utilitzeu pfodDesigner, haureu de triar connexions de pin que coincideixin amb les disponibles al vostre tauler concret. El Sparkfun ESP32 Thing (o Adafruit HUZZAH32 Feather) s'utilitza aquí com a tauler ESP32 d'exemple, però podeu utilitzar el codi per a qualsevol de les 31 plaques ESP32 compatibles.

L'aplicació gratuïta pfodDesignerV3 per a Android s'utilitza per crear el menú de control (WYSIWYG) i després generar el codi per a l'ESP32, ja sigui per a una connexió BLE, WiFi o Bluetooth. Després d’haver programat el tauler ESP32, podeu utilitzar l’aplicació pfodApp per a Android (de pagament) per connectar-vos al vostre ESP32 (mitjançant BLE o WiFi o Bluetooth) i mostrar el menú de control i controlar el vostre ESP32. Si no voleu utilitzar pfodApp, podeu utilitzar el codi generat com a base per a les vostres pròpies connexions WiFi, BLE (UART nòrdica) o Bluetooth, ja que proporciona una interfície Stream (imprimir / llegir) a cadascun d’aquests tipus de connexions..

Pas 1: Consell: Instal·lació del suport Arduino per a l'ESP32 amb suport BLE

A l'abril de 2018, la instal·lació del suport ESP32 d'Arduino està més implicada que la majoria de les altres plaques i les biblioteques de codis subministrades no estan completes. No podeu utilitzar el gestor de la placa Arduino per instal·lar el suport ESP32. Seguiu aquests passos per configurar Arduino per a la programació ESP32. Això instal·larà ESP32 i també el suport BLE.

1 Cerqueu el camí d'accés del directori d'ubicacions de l'Arduino Sketchbook. Obriu Arduino IDE i mireu a Fitxer-> Preferències i a la part superior d’aquesta pantalla veureu la ubicació del Quadern de bocet.

2 Baixeu aquest fitxer ESP32_hardware.zip i descomprimiu-lo a la ubicació de Sketchbook. Hi crea un subdirectori de maquinari. En el cas improbable que ja tingueu un subdirectori de maquinari a la ubicació de Sketchbook, combineu-ne el contingut amb aquest.

3 Instal·leu les eines Xtensa i ESP32. Nota: Aquesta descàrrega i instal·lació triga un temps a processar ~ 0,5 Gig de fitxers. Aneu al directori hardware / espressif / esp32 / tools i, a continuació, a les màquines Windows executeu el fitxer get.exe. Per als usuaris de Mac i Linux, executeu l'script python get.py per descarregar les eines. Amb un terminal, aneu a la carpeta hardware / espressif / esp32 / tools. A continuació, escriviu: python get.py L'escriptura python "get.py" descarregarà les eines Xtensa GNU i el kit de desenvolupament de programari ESP32 (SDK) i les descomprimirà a la ubicació adequada.

Hauríeu de veure algunes carpetes noves al directori "eines", incloses "sdk" i "xtensa-esp32-elf" un cop acabades.

Un cop completat, tanqueu i torneu a obrir el vostre IDE Arduino i ara hauríeu de tenir una llarga llista de taules ESP32 per triar al menú Eines-> Taules. Trieu "SparkFun ESP32 Thing" (o "Adafruit ESP32 Feather")

A continuació, podeu obrir la llista Exemples de fitxers per veure diversos exemples de fitxers ESP32

El procés anterior instal·la una instantània del codi github per al suport ESP32 i BLE que s’han combinat en un únic fitxer zip. El codi generat per pfodDesigner i els exemples següents utilitzen aquesta versió d’aquestes biblioteques. Si voleu la versió més recent, possiblement amb un conjunt de funcions i errors diferents, descarregueu el zip de la versió més recent de https://github.com/espressif/arduino-esp32 i descomprimiu-la a hardware / espressif i canvieu el nom de carpeta esp32 i, a continuació, per al suport BLE, descarregueu un zip de la versió més recent de https://github.com/espressif/arduino-esp32 i descomprimiu-la a la carpeta esp32 / libraries i canvieu-la amb el nom ESP32_BLE_Arduino (si cal).

Pas 2: Instal·lació de les biblioteques PfodParser per a l'ESP32

a) A continuació, descarregueu la biblioteca pfodParser.zip V3.23 +, pfodDwgControls.zip i, per a ESP32 WiFi, el fitxer pfodESP32BufferedClient.zip, zip al vostre ordinador, moveu-los a l’escriptori o a qualsevol altra carpeta que pugueu trobar fàcilment.

b) A continuació, utilitzeu l'opció de menú IDE d'Arduino 1.8.2 Esbós → Importa biblioteca → Afegeix biblioteca per instal·lar-los. (Si Arduino no us permet instal·lar-lo perquè la biblioteca ja existeix, cerqueu i suprimiu les antigues carpetes pfodParser, pfodCmdParser o pfodCHAP, etc. i després importeu-les)

c) Atureu i reinicieu l'IDE d'Arduino i a Fitxer-> Exemples ara hauríeu de veure les biblioteques pfodParser, pfodDwgControls i pfodESP32BufferedClient i diversos exemples.

Pas 3: utilitzar PfodDesignerV3 per ESP32

L’aplicació gratuïta pfodDesignerV3 (V3291 +) admet la generació de codi per al xip ESP32 per connectar-se a través de BLE, WiFi o Bluetooth Classic a pfodApp (de pagament).

Hi ha molts tutorials sobre com crear controls per al vostre mòbil Android per controlar una àmplia gamma de taules mitjançant pfodDesignerV3. Amb pfodDesignerV3 podeu crear controls que activen / desactiven les sortides o els impulsen, controlen les sortides mitjançant PWM, mostren l’estat d’una entrada o valor analògic, registren i dibuixen dades i submenús i molt més.

Consell: El suport ESP32 Arduino inclou suport per a 31 taules ESP32 diferents. El pfodDesignerV3 us dóna accés a tots els pins d'E / S ESP32, però no totes les plaques connecten tots els pins ESP32 als pins de placa. Consulteu la documentació del tauler per saber quins pins estan disponibles i consulteu el fitxer pins_arduino.h al directori hardware / espressif / esp32 / variants del tauler.

La llista de pins de pfodDesignerV3 inclou comentaris sobre disponibilitat i pins d’ús especial per a les plaques Ploma Sparkfun ESP32 Thing i Adafruit HUZZAH32 - ESP32.

Aquests exemples fan servir el tauler de coses Sparkfun ESP32 i creen un control lliscant per controlar la brillantor del LED integrat connectat al pin 5 des del vostre mòbil Android. Si feu servir la placa Adafruit HUZZAH32 - ESP32 Feather, el LED integrat està connectat al pin 13. El suport ESP32 Arduino, instal·lat a sobre, no admet directament l'analogrite d'Arduino. En canvi, l'ESP32 té 16 canals PWM que podeu controlar i connectar a qualsevol de les sortides. El pfodDesignerV3 genera tot el codi necessari per assignar el canal i connectar-lo a la sortida escollida. Instal·leu el pfodDesignerV3 (V3291 +) gratuït de Google Play.

Pas 4: Generador de codi ESP32 BLE

Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE
Generador de codis ESP32 BLE

Inicieu un menú nou

Feu clic al botó de destinació per canviar el dispositiu de destinació.

El primer exemple de destinació serà ESP32 BLE, així que feu clic al botó Bluetooth de baix consum.

Seleccioneu ESP32 connectat mitjançant BLE i, a continuació, premeu el botó enrere del mòbil per tornar a la pantalla principal.

Pas 5: dissenyar el menú: el símbol del sistema

Disseny del menú: el símbol del sistema
Disseny del menú: el símbol del sistema
Disseny del menú: el símbol del sistema
Disseny del menú: el símbol del sistema
Disseny del menú: el símbol del sistema
Disseny del menú: el símbol del sistema

Aquest exemple senzill només tindrà un avís i un control únic. Feu clic al botó Edita la sol·licitud i, a continuació, al botó Edita el text de la sol·licitud per configurar el text de la sol·licitud.

Aquí el missatge es defineix com a "ESP32 Led". Feu clic al botó de selecció per desar les modificacions i tornar a la pantalla anterior. A continuació, feu clic a Estableix el color de fons per seleccionar el color sobre tots els colors del menú de controls.

Podeu seleccionar diferents colors per a cada control. Hi ha diversos altres formats disponibles per a la sol·licitud. Aquí el fons es defineix en Blau i la mida de la lletra és +5 i el text en negreta. Es mostra una previsualització de la sol·licitud amb format a la part inferior de la pantalla de sol·licitud d’edició.

Pas 6: dissenyar el menú: control de leds PWM

Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM
Disseny del menú: control de leds PWM

Utilitzeu el botó Enrere del mòbil per tornar al menú principal i feu clic a Afegeix un element de menú per afegir un element de control o de visualització.

Seleccioneu l'element de sortida PWM. Es mostra una previsualització del control a la part superior de la pantalla.

Consell: l'ESP32 no té una funció analogWrite 'Arduino estàndard'. No obstant això, aquest generador de codi genera un codi que el simula

Feu clic al botó Edita el text principal i canvieu "Configuració PWM" a "Led". Tingueu en compte l'espai final per separar "Led" de la indicació%.

Feu clic al botó de selecció per desar l'edició i desplaceu-vos cap avall fins al botó "No està connectat a un pin d'E / S".

Feu clic a aquest botó per mostrar una llista de pins que es poden utilitzar com a sortides.

Es mostren els pins d'ús especial per a les plaques Sparkfun ESP32 Thing i Adafruit HUZZAH32 Feather. Seleccioneu el pin 5 perquè el control lliscant controli la brillantor del LED incorporat de l’Sparkfun ESP32 Thing. Si feu servir el tauler Feather Adafruit HUZZAH32, seleccioneu el pin 13 al seu lloc. Per a altres taulers, consulteu la documentació dels vostres taulers i el fitxer pins_arduino.h al directori de maquinari / espressif / esp32 / variants del tauler.

Després, quan hàgiu acabat de configurar qualsevol altre paràmetre de format per a aquest control lliscant, utilitzeu el botó Enrere del mòbil per tornar al menú principal i feu clic a Menú de vista prèvia per veure com serà el menú final al vostre mòbil quan es mostri a pfodApp. Els controls estan actius perquè els pugueu moure a la previsualització.

Pas 7: Genereu el codi ESP32

Genereu el codi ESP32
Genereu el codi ESP32
Genereu el codi ESP32
Genereu el codi ESP32

Torneu al menú principal i desplaceu-vos cap avall fins al botó Generar codi.

Feu clic al botó Genera codi i, a continuació, feu clic al botó Escriu codi a fitxer per generar el codi

Sortiu de pfodDesignerV3 i transfereu el codi a /pfodAppRawData/pfodDesignerV3.txt des del mòbil a l’ordinador. Consulteu pfodAppForAndroidGettingStarted.pdf per saber com fer-ho. L’aplicació de transferència de fitxers wifi per smarterDroid és una manera de fer la transferència.

Amb el botó "Canvia l'objectiu" de la pantalla Genera codi, podeu canviar entre ESP32 mitjançant BLE, ESP32 per Bluetooth i ESP32 per WiFi

Pas 8: Execució dels exemples

Execució dels exemples
Execució dels exemples

Amb el botó "Canvia l'objectiu" de la pantalla Genera codi, podeu canviar entre ESP32 mitjançant BLE, ESP32 per Bluetooth i ESP32 per WiFi

Així es van generar els tres esbossos d’exemple següents a partir del disseny anterior.

Execució de l'exemple pfodESP32_BLE

Si definiu la destinació a ESP32 mitjançant BLE es genera el codi a pfodESP32_LED_BLE.ino Aquest esbós també està disponible a Fitxer-> Exemples-> pfodParser. Obriu aquest exemple i, després de programar l’Sparkfun ESP32 Thing (o una altra placa ESP32), haureu de configurar-hi una connexió a pfodApp (consulteu pfodAppForAndroidGettingStarted.pdf per obtenir més informació) i connectar-vos i poder ajustar la brillantor de la tauler dirigit.

SUGGERIMENT: ESP32 utilitza la mateixa adreça bluetooth tant per BLE com per Bluetooth, de manera que si heu configurat prèviament una connexió Bluetooth ESP32 a pfodApp, heu de suprimir aquesta connexió Bluetooth abans de configurar una connexió BLE, ja que pfodApp filtra les connexions existents (per adreça) de la llista de visualització de dispositius disponibles. És possible que també hàgiu d’obrir la configuració del vostre mòbil i “oblidar” la connexió Bluetooth ESP32 i desactivar el Bluetooth del mòbil i reiniciar el telèfon per esborrar la pila Bluetooth

SUGGERIMENT: La biblioteca ESP32_BLE_Arduino de Neil Kolban no és compatible amb la biblioteca BLEPeripheral de Sandeep Mistry, que és utilitzada per alguns altres objectius BLE generats per pfodDesigner. Per tant, heu d’eliminar el directori BLEPeripheral (si existeix) del directori Arduino / libraries per compilar esbossos BLE ESP32.

Execució de l'exemple pfodESP32_Bluetooth

Si configureu la destinació a ESP32 mitjançant Bluetooth es genera el codi a pfodESP32_LED_Bluetooth.ino Aquest esbós també està disponible a Fitxer-> Exemples-> pfodParser. Obriu aquest exemple i, a continuació, programa el Sparkfun ESP32 Thing (o una altra placa ESP32). Heu d’aparellar l’ESP32 amb el vostre telèfon, sense que calgui cap número de pin. A continuació, configureu-hi una connexió a pfodApp (consulteu pfodAppForAndroidGettingStarted.pdf per obtenir més informació) i connecteu-vos i podreu ajustar la brillantor del led de la placa.

Execució de l'exemple pfodESP32_WiFi

Establir la destinació a ESP32 mitjançant WiFi genera el codi a pfodESP32_LED_WiFi.ino Aquest esbós també està disponible a Fitxer-> Exemples-> pfodParser. Obriu aquest exemple i introduïu el nom i la contrasenya de la vostra xarxa i trieu una IP estàtica per a aquest dispositiu. Després, després de programar l’Sparkfun ESP32 Thing (o una altra placa ESP32), heu d’establir-hi una connexió a pfodApp (consulteu pfodAppForAndroidGettingStarted.pdf per obtenir més informació), connectar-vos i poder ajustar la brillantor del led de la placa.

Pas 9: seguretat WiFi

Si us connecteu a l’ESP32 a través d’Internet (via wifi), la seguretat és important. No voleu que qualsevol persona pugui obrir la porta del garatge, per exemple. El generador de codi i la biblioteca pfodParser admeten seguretat de 128 bits. Aquesta seguretat no xifra els missatges, sinó que afegeix un hash criptogràfic a cada missatge per protegir-lo contra la connexió i el control no autoritzats. Consulteu SipHash Secure Challenge and Response per obtenir informació sobre com s’implementa aquesta seguretat.

S’afegeix seguretat de 128 bits

Assegurar-se que els usuaris no autoritzats accedeixin al vostre dispositiu per Internet és tan fàcil com editar # define pfodSecurityCode "" per afegir el vostre propi codi secret. (fins a 32 dígits hexadecimals)

Per exemple, per establir un codi de seguretat de 173057F7A706AF9BBE65D51122A14CEE, hauríeu d'utilitzar # define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE" Per descomptat, hauríeu d'utilitzar el vostre propi codi secret. Establir el vostre propi codi a la vostra connexió pfodApp us permetrà connectar-vos, i a ningú més.

Per a una bona seguretat, cal un codi aleatori llarg. pfodApp admet fins a 128 bits com a dígits de 32 hex.

Per generar el vostre propi codi secret, podeu descarregar un generador de claus secretes aleatòries des d’aquí. Generador de claus secretes des d’aquí. A més de generar claus aleatòries, aquest programa les escriu com a codis QR perquè pugueu configurar-les fàcilment i amb precisió a la vostra connexió pfodApp.

Podeu imprimir el codi QR i adjuntar-lo al dispositiu pfodDevice. A continuació, feu clic al botó Escaneja QR a la pantalla de connexió WiFi de pfodApp per llegir la contrasenya.

Consulteu Un senzill WiFi / Arduino pfodDevice ™ amb seguretat de 128 bits per obtenir un exemple detallat d’utilitzar el generador de claus i el codi QR.

Conclusió

Aquest tutorial ha mostrat com configurar l'IDE Arduino per programar l'ESP32. A continuació, va utilitzar l’aplicació gratuïta pfodDesigner per dissenyar un menú per controlar la brillantor del led incorporat i del codi generat per connectar-se a l’ESP32 mitjançant BLE, Bluetooth o WiFi. Si després us connecteu a través de l’aplicació pfodApp, veureu el menú que heu dissenyat i podreu controlar la brillantor del led mitjançant un control lliscant. El pfodDesigner genera tot el codi Arduino, inclosa la simulació de analogWrite d'Arduino. No calia cap codificació Arduino. El pfodApp s’encarrega de tota la part d’Android, sense necessitat de codificar Android.

Recomanat: