Sommario:

Generatore di codice ESP32 - Wifi, BLE, Bluetooth: 9 passaggi
Generatore di codice ESP32 - Wifi, BLE, Bluetooth: 9 passaggi

Video: Generatore di codice ESP32 - Wifi, BLE, Bluetooth: 9 passaggi

Video: Generatore di codice ESP32 - Wifi, BLE, Bluetooth: 9 passaggi
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Novembre
Anonim
Generatore di codice ESP32 - Wifi, BLE, Bluetooth
Generatore di codice ESP32 - Wifi, BLE, Bluetooth

introduzione

ESP32 è un chip a doppio processore a basso costo, con supporto per WiFi, Bluetooth Classic e BLE (Bluetooth Low Energy). Sebbene il chip sia uscito da diversi anni, il supporto del codice per Arduino non è ancora completo (ad aprile 2018), ma questo generatore di istruzioni e codice riempie le funzioni BLE e analogWrite mancanti.

Suggerimento: ESP32 non ha una funzione analogWrite "standard Arduino". Tuttavia, questo generatore di codice genera codice che lo simula per te

Mancia: L'installazione del codice ESP non include il supporto BLE. L'installazione qui descritta include il supporto BLE

Questa pagina web tratterà la configurazione dell'IDE Arduino per programmare ESP32 per connessioni BLE, Bluetooth o WiFi. Il pfodDesigner genera codice per ciascuno di questi tipi di connessione e genera anche codice per simulare la funzione analogWrite mancante.

ESP32 è un chip a doppio processore a basso costo, con supporto per WiFi, Bluetooth Classic e BLE (Bluetooth Low Energy). Sebbene il chip sia uscito da un certo numero di anni, il supporto del codice per Arduino non è ancora completo (ad aprile 2018), ma questo tutorial e generatore di codice riempie le funzioni BLE e analogWrite mancanti. Arduino IDE per programmare ESP32 per connessioni BLE, Bluetooth o WiFi. Il pfodDesigner genera codice per ciascuno di questi tipi di connessione e genera anche codice per simulare la funzione analogWrite mancante.

L'add-on Arduino supporta circa 31 schede ESP32. Quando si utilizza pfodDesigner, sarà necessario scegliere connessioni pin che corrispondano a quelle disponibili sulla propria scheda. La Sparkfun ESP32 Thing (o Adafruit HUZZAH32 Feather) viene utilizzata qui come scheda ESP32 di esempio, ma è possibile utilizzare il codice per una qualsiasi delle 31 schede ESP32 supportate.

L'app gratuita pfodDesignerV3 per Android viene utilizzata per creare il menu di controllo (WYSIWYG) e quindi generare il codice per ESP32, sia per una connessione BLE, WiFi o Bluetooth. Dopo aver programmato la tua scheda ESP32 puoi quindi utilizzare l'app Android pfodApp (a pagamento) per connetterti al tuo ESP32 (tramite BLE o WiFi o Bluetooth) e visualizzare il menu di controllo e controllare il tuo ESP32. Se non desideri utilizzare pfodApp, puoi comunque utilizzare il codice generato come base per le tue connessioni WiFi, BLE (Nordic UART) o Bluetooth in quanto fornisce un'interfaccia Stream (stampa/lettura) a ciascuno di questi tipi di connessione.

Passaggio 1: Suggerimento: installazione del supporto Arduino per ESP32 con supporto BLE

Ad aprile 2018, l'installazione del supporto Arduino ESP32 è più complessa rispetto alla maggior parte delle altre schede e le librerie di codici fornite non sono complete. Non è possibile utilizzare Arduino Board manager per installare il supporto ESP32. Segui questi passaggi per configurare Arduino per la programmazione ESP32. Questo installerà ESP32 e anche il supporto BLE.

1 Trova il percorso della tua directory di posizione di Arduino Sketchbook. Apri Arduino IDE e guarda in File-> Preferenze e nella parte superiore di quella schermata vedrai la posizione dello Sketchbook.

2 Scarica questo file ESP32_hardware.zip e decomprimilo nella posizione di Sketchbook. Crea una sottodirectory hardware lì. Nel caso improbabile che tu abbia già una sottodirectory hardware nella posizione di Sketchbook, unisci i suoi contenuti con questa.

3 Installare gli strumenti Xtensa ed ESP32. Nota: il download e l'installazione richiedono un po' di tempo per elaborare i ~0.5Gig dei file. Vai alla directory hardware\espressif\esp32\tools, quindi per le macchine Windows esegui il file get.exe. Per gli utenti Mac e Linux, esegui lo script python get.py per scaricare gli strumenti. Utilizzando un terminale, accedere alla cartella hardware/espressif/esp32/tools. Quindi digitare: python get.pyLo script python "get.py" scaricherà gli strumenti Xtensa GNU e il kit di sviluppo software ESP32 (SDK) e li decomprimerà nella posizione corretta.

Dovresti vedere alcune nuove cartelle nella directory "tools", tra cui "sdk" e "xtensa-esp32-elf" una volta terminato.

Una volta completato, chiudi e riapri il tuo IDE Arduino e ora dovresti avere un lungo elenco di schede ESP32 tra cui scegliere nel menu Strumenti-> Schede. Scegli "SparkFun ESP32 Thing" (o "Adafruit ESP32 Feather")

È quindi possibile aprire l'elenco degli esempi di file per visualizzare un numero di file di esempio ESP32

Il processo sopra installa un'istantanea del codice github per il supporto ESP32 e BLE che sono stati uniti in un unico file zip. Il codice generato da pfodDesigner e gli esempi seguenti utilizzano questa versione di tali librerie. Se desideri l'ultima versione, con possibilmente un diverso set di funzionalità e bug, scarica lo zip dell'ultima versione di https://github.com/espressif/arduino-esp32 e decomprimilo in hardware/espressif e rinominalo cartella esp32 e quindi per il supporto BLE scaricare uno zip dell'ultima versione di https://github.com/espressif/arduino-esp32 e decomprimerlo nella cartella esp32/libraries e rinominarlo ESP32_BLE_Arduino (se necessario).

Passaggio 2: installazione delle librerie PfodParser per ESP32

a) Quindi scarica la libreria pfodParser.zip V3.23+, pfodDwgControls.zip e, per ESP32 WiFi, il pfodESP32BufferedClient.zip, zippa i file sul tuo computer, spostali sul desktop o in qualche altra cartella che puoi trovare facilmente.

b) Quindi utilizzare l'opzione di menu IDE Arduino 1.8.2 Schizzo → Importa libreria → Aggiungi libreria per installarli. (Se Arduino non ti consente di installarlo perché la libreria esiste già, trova ed elimina le vecchie cartelle pfodParser, pfodCmdParser o pfodCHAP ecc. e quindi importa queste)

c) Arresta e riavvia l'IDE Arduino e in File->Esempi dovresti ora vedere pfodParser, pfodDwgControls e le librerie pfodESP32BufferedClient e una serie di esempi.

Passaggio 3: utilizzo di PfodDesignerV3 per ESP32

L'app gratuita pfodDesignerV3 (V3291+) supporta la generazione di codice per il chip ESP32 per connettersi tramite BLE, WiFi o Bluetooth Classic a pfodApp (a pagamento).

Esistono molti tutorial esistenti su come creare controlli per il tuo cellulare Android per controllare una vasta gamma di schede utilizzando pfodDesignerV3. Con pfodDesignerV3 puoi creare controlli che attivano/disattivano le uscite o le pulsano, controllano le uscite tramite PWM, visualizzano lo stato di un ingresso o di un valore analogico, registrano e tracciano dati e sottomenu e molto altro.

Mancia: Il supporto ESP32 Arduino include il supporto per circa 31 diverse schede ESP32. Il pfodDesignerV3 ti dà accesso a tutti i pin I/O ESP32 ma non tutte le schede collegano tutti i pin ESP32 ai pin della scheda. Controlla la documentazione della tua scheda per sapere quali pin sono disponibili e guarda il file pins_arduino.h nella directory hardware\espressif\esp32\variants della tua scheda.

L'elenco dei pin pfodDesignerV3 include commenti sulla disponibilità e pin di uso speciale per le schede Sparkfun ESP32 Thing e Adafruit HUZZAH32 – ESP32 Feather.

Questi esempi utilizzano la scheda Sparkfun ESP32 Thing e creano uno slider per controllare la luminosità del LED integrato collegato al pin 5 dal tuo cellulare Android. Se invece stai usando la scheda Adafruit HUZZAH32 – ESP32 Feather allora il Led di bordo è collegato al pin 13. Il supporto ESP32 Arduino, installato sopra, non supporta direttamente l'analogWrite di Arduino. Invece l'ESP32 ha 16 canali PWM che puoi controllare e connettere a qualsiasi uscita. Il pfodDesignerV3 genera tutto il codice necessario per allocare il canale e collegarlo all'output scelto. Installa il pfodDesignerV3 gratuito (V3291+) da Google Play.

Passaggio 4: generatore di codice BLE ESP32

Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32
Generatore di codice BLE ESP32

Inizia un nuovo menu

Fare clic sul pulsante Target per modificare il dispositivo di destinazione.

Il primo obiettivo di esempio sarà ESP32 BLE, quindi fai clic sul pulsante Bluetooth Low Energy.

Seleziona ESP32 connesso tramite BLE, quindi premi il pulsante Indietro del cellulare per tornare alla schermata principale.

Passaggio 5: progettazione del menu - il prompt

Progettare il menu - il prompt
Progettare il menu - il prompt
Progettare il menu - il prompt
Progettare il menu - il prompt
Progettare il menu - il prompt
Progettare il menu - il prompt

Questo semplice esempio avrà solo un prompt e un singolo controllo. Fare clic sul pulsante Modifica prompt e quindi sul pulsante Modifica testo del prompt per impostare il testo del prompt.

Qui il prompt è impostato su "ESP32 Led". Fare clic sul pulsante di spunta per salvare le modifiche e tornare alla schermata precedente. Quindi fare clic su Imposta colore di sfondo per selezionare il colore generale per il menu dei controlli.

È possibile selezionare colori diversi per ogni controllo. Ci sono vari altri formati disponibili per il prompt. Qui lo sfondo è impostato su Blu e la dimensione del carattere è +5 e il testo è Grassetto. Un'anteprima del prompt formattato viene mostrata nella parte inferiore della schermata del prompt di modifica.

Passaggio 6: progettazione del menu - Controllo LED PWM

Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM
Progettazione del menu - Controllo LED PWM

Utilizzare il pulsante Indietro del cellulare per tornare al menu principale e quindi fare clic su Aggiungi voce di menu per aggiungere un controllo o visualizzare un elemento.

Seleziona la voce Uscita PWM. Nella parte superiore dello schermo viene mostrata un'anteprima del controllo.

Suggerimento: ESP32 non ha una funzione analogWrite "standard Arduino". Tuttavia, questo generatore di codice genera codice che lo simula per te

Fare clic sul pulsante Modifica testo iniziale e modificare "Impostazione PWM" in "Led" Notare lo spazio finale per separare "Led" dall'indicazione %.

Fare clic sul pulsante di spunta per salvare la modifica, quindi scorrere verso il basso fino al pulsante "Non connesso a un pin I/O".

Fare clic su quel pulsante per visualizzare un elenco di pin che possono essere utilizzati come output.

Questo mostra i pin di uso speciale per le schede Sparkfun ESP32 Thing e Adafruit HUZZAH32 Feather. Seleziona il pin 5 in modo che il controllo del cursore controlli la luminosità del led di bordo di Sparkfun ESP32 Thing. Se stai usando la scheda Adafruit HUZZAH32 Feather, seleziona invece il pin 13. Per altre schede controlla la documentazione della tua scheda e il file pins_arduino.h nella directory hardware\espressif\esp32\variants della tua scheda

Quindi, quando hai finito di effettuare qualsiasi altra impostazione di formattazione per questo dispositivo di scorrimento, usa il pulsante Indietro del cellulare per tornare al menu principale e fai clic su Anteprima Menu per vedere come apparirà il menu finale sul tuo telefonino quando viene visualizzato da pfodApp. I controlli sono attivi, quindi puoi spostarli nell'anteprima.

Passaggio 7: generare il codice ESP32

Genera il codice ESP32
Genera il codice ESP32
Genera il codice ESP32
Genera il codice ESP32

Torna al menu principale e scorri verso il basso fino al pulsante Genera codice.

Fare clic sul pulsante Genera codice e quindi fare clic sul pulsante Scrivi codice su file per generare il codice

Esci da pfodDesignerV3 e trasferisci il codice in /pfodAppRawData/pfodDesignerV3.txt dal tuo cellulare al computer. Vedere pfodAppForAndroidGettingStarted.pdf per i modi per farlo. L'app wifi file transfer pro di smarterDroid è un modo per eseguire il trasferimento.

Utilizzando il pulsante "Cambia destinazione" nella schermata Genera codice, puoi passare da ESP32 tramite BLE, ESP32 tramite Bluetooth ed ESP32 tramite WiFi

Passaggio 8: eseguire gli esempi

Esecuzione degli esempi
Esecuzione degli esempi

Utilizzando il pulsante "Cambia destinazione" nella schermata Genera codice, puoi passare da ESP32 tramite BLE, ESP32 tramite Bluetooth ed ESP32 tramite WiFi

Ecco come sono stati generati i seguenti tre schizzi di esempio dal progetto sopra.

Esecuzione dell'esempio pfodESP32_BLE

L'impostazione della destinazione su ESP32 tramite BLE genera il codice in pfodESP32_LED_BLE.ino Questo schizzo è disponibile anche in File->Esempi->pfodParser. Apri quell'esempio, quindi, dopo aver programmato Sparkfun ESP32 Thing (o un'altra scheda ESP32), dovresti quindi impostare una connessione ad esso su pfodApp (vedi pfodAppForAndroidGettingStarted.pdf per i dettagli) e connetterti ed essere in grado di regolare la luminosità del bordo guidato.

SUGGERIMENTO: ESP32 utilizza lo stesso indirizzo Bluetooth sia per BLE che per Bluetooth, quindi se hai precedentemente impostato una connessione Bluetooth ESP32 in pfodApp, devi eliminare quella connessione Bluetooth pfodApp prima di configurare una connessione BLE, poiché pfodApp filtra le connessioni esistenti (tramite indirizzo) dalla lista di visualizzazione dei dispositivi disponibili. Potrebbe anche essere necessario aprire le impostazioni del cellulare e "dimenticare" la connessione Bluetooth ESP32, quindi disattivare il Bluetooth del cellulare e riavviare il telefono per cancellare lo stack Bluetooth

SUGGERIMENTO: La libreria ESP32_BLE_Arduino di Neil Kolban non è compatibile con la libreria BLEPeripheral di Sandeep Mistry che viene utilizzata da altri target BLE generati da pfodDesigner. Quindi è necessario rimuovere la directory BLEPeripheral, (se esiste), dalla directory Arduino/librerie per compilare gli schizzi ESP32 BLE.

Esecuzione dell'esempio pfodESP32_Bluetooth

L'impostazione del target su ESP32 tramite Bluetooth genera il codice in pfodESP32_LED_Bluetooth.ino Questo sketch è disponibile anche in File->Esempi->pfodParser. Apri quell'esempio, quindi programma Sparkfun ESP32 Thing (o un'altra scheda ESP32). È necessario associare ESP32 al telefono, non è richiesto alcun numero pin. Quindi imposta una connessione ad esso su pfodApp (vedi pfodAppForAndroidGettingStarted.pdf per i dettagli) e connettiti e sarai in grado di regolare la luminosità del led della scheda.

Esecuzione dell'esempio pfodESP32_WiFi

L'impostazione del target su ESP32 tramite WiFi genera il codice in pfodESP32_LED_WiFi.ino Questo sketch è disponibile anche in File->Esempi->pfodParser. Apri quell'esempio e inserisci il nome e la password della tua rete e scegli un IP statico per questo dispositivo. Quindi, dopo aver programmato la Sparkfun ESP32 Thing (o un'altra scheda ESP32), dovresti impostare una connessione ad essa su pfodApp (vedi pfodAppForAndroidGettingStarted.pdf per i dettagli) e connetterti ed essere in grado di regolare la luminosità del led della scheda.

Passaggio 9: sicurezza WiFi

Se ci si connette a ESP32 tramite Internet (tramite Wi-Fi), la sicurezza è importante. Ad esempio, non vuoi che chiunque sia in grado di aprire la porta del tuo garage. Il generatore di codice e la libreria pfodParser supportano la sicurezza a 128 bit. Questa sicurezza non crittografa i messaggi ma aggiunge invece un hash crittografico a ciascun messaggio per proteggersi da connessioni e controlli non autorizzati. Vedere SipHash Secure Challenge and Response per i dettagli su come viene implementata questa sicurezza.

Aggiunta di sicurezza a 128 bit

Proteggersi da utenti non autorizzati che accedono al tuo dispositivo su Internet è facile come modificare#define pfodSecurityCode ""per aggiungere il tuo codice segreto. (fino a 32 cifre esadecimali)

Ad esempio per impostare un codice di sicurezza di 173057F7A706AF9BBE65D51122A14CEE dovresti usare #define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE"Naturalmente dovresti usare il tuo codice segreto. L'impostazione del proprio codice nella connessione pfodApp consente a te e a nessun altro di connetterti.

Un lungo codice casuale è necessario per una buona sicurezza. pfodApp supporta fino a 128 bit come 32 cifre esadecimali.

Per generare il tuo codice segreto puoi scaricare un Secret Key Generator casuale da quiSecret Key Generator da qui. Oltre a generare chiavi casuali, questo programma le scrive come codici QR in modo da poterle impostare facilmente e con precisione nella connessione pfodApp.

Puoi stampare il codice QR e allegarlo al tuo pfodDevice. Quindi fare clic sul pulsante Scan QR nella schermata di connessione WiFi pfodApp per leggere la password.

Vedere A Simple WiFi/Arduino pfodDevice™ con sicurezza a 128 bit per un esempio dettagliato dell'utilizzo del generatore di chiavi e del codice QR.

Conclusione

Questo tutorial ha mostrato come configurare l'IDE Arduino per programmare ESP32. Ha quindi utilizzato l'app gratuita pfodDesigner per progettare un menu per controllare la luminosità del led di bordo e il codice generato per la connessione all'ESP32 tramite BLE, Bluetooth o WiFi. Se poi ti colleghi tramite l'app pfodApp apppfodApp vedrai il menu che hai progettato e sarai in grado di controllare la luminosità del led tramite uno slider. Il pfodDesigner genera tutto il codice Arduino, inclusa la simulazione di analogWrite di Arduino. Non era richiesta alcuna codifica Arduino. La pfodApp si occupa di tutto il lato Android, non è richiesta alcuna codifica Android.

Consigliato: