Inhaltsverzeichnis:

ESP32 Code Generator - Wifi, BLE, Bluetooth - Gunook
ESP32 Code Generator - Wifi, BLE, Bluetooth - Gunook

Video: ESP32 Code Generator - Wifi, BLE, Bluetooth - Gunook

Video: ESP32 Code Generator - Wifi, BLE, Bluetooth - Gunook
Video: BLE with ESP32 tutorial part 1: the Server 2024, November
Anonim
ESP32-Codegenerator - Wifi, BLE, Bluetooth
ESP32-Codegenerator - Wifi, BLE, Bluetooth

Einführung

ESP32 ist ein kostengünstiger Dual-Prozessor-Chip mit Unterstützung für WiFi, Bluetooth Classic und BLE (Bluetooth Low Energy). Obwohl der Chip seit einigen Jahren auf dem Markt ist, ist die Codeunterstützung für Arduino immer noch nicht vollständig (Stand April 2018), aber dieser anweisbare und Codegenerator füllt die fehlenden BLE- und analogWrite-Funktionen aus.

Tipp: Der ESP32 verfügt nicht über eine 'Standard Arduino' analogWrite-Funktion. Dieser Codegenerator generiert jedoch Code, der ihn für Sie simuliert

Tipp: Die ESP-Code-Installation beinhaltet keine BLE-Unterstützung. Die hier beschriebene Installation beinhaltet BLE-Unterstützung

Diese Webseite behandelt die Einrichtung der Arduino IDE, um den ESP32 für BLE-, Bluetooth- oder WiFi-Verbindungen zu programmieren. Der pfodDesigner generiert Code für jeden dieser Verbindungstypen und generiert auch Code, um die fehlende analogWrite-Funktion zu simulieren.

ESP32 ist ein kostengünstiger Dual-Prozessor-Chip mit Unterstützung für WiFi, Bluetooth Classic und BLE (Bluetooth Low Energy). Obwohl der Chip seit einigen Jahren auf dem Markt ist, ist die Codeunterstützung für Arduino immer noch nicht vollständig (Stand April 2018), aber dieses Tutorial und der Codegenerator füllen die fehlenden BLE- und analogWrite-Funktionen aus Arduino IDE zum Programmieren des ESP32 für BLE-, Bluetooth- oder WiFi-Verbindungen. Der pfodDesigner generiert Code für jeden dieser Verbindungstypen und generiert auch Code, um die fehlende analogWrite-Funktion zu simulieren.

Das Arduino-Add-On unterstützt etwa 31 ESP32-Boards. Wenn Sie den pfodDesigner verwenden, müssen Sie Pin-Anschlüsse auswählen, die den auf Ihrem speziellen Board verfügbaren entsprechen. Das Sparkfun ESP32 Thing (oder Adafruit HUZZAH32 Feather) wird hier als ESP32-Beispielboard verwendet, aber Sie können den Code für jedes der 31 unterstützten ESP32-Boards verwenden.

Mit der kostenlosen Android-App pfodDesignerV3 wird das Steuerungsmenü (WYSIWYG) erstellt und anschließend der Code für den ESP32 generiert, entweder für eine BLE-, WiFi- oder Bluetooth-Verbindung. Nachdem Sie Ihr ESP32-Board programmiert haben, können Sie sich mit der pfodApp Android-App (kostenpflichtig) mit Ihrem ESP32 verbinden (über BLE oder WiFi oder Bluetooth) und Ihr Steuerungsmenü anzeigen und Ihren ESP32 steuern. Wenn Sie pfodApp nicht verwenden möchten, können Sie das generierte Coding dennoch als Grundlage für Ihre eigenen WiFi-, BLE- (Nordic UART) oder Bluetooth-Verbindungen verwenden, da es für jede dieser Verbindungsarten eine Stream (Print/Read)-Schnittstelle bereitstellt.

Schritt 1: Tipp: Installieren der Arduino-Unterstützung für den ESP32 mit BLE-Unterstützung

Ab April 2018 ist die Installation der Arduino ESP32-Unterstützung aufwendiger als bei den meisten anderen Boards und die mitgelieferten Codebibliotheken sind nicht vollständig. Sie können den Arduino Board Manager nicht verwenden, um die ESP32-Unterstützung zu installieren. Befolgen Sie diese Schritte, um Arduino für die ESP32-Programmierung einzurichten. Dadurch werden ESP32 und auch die BLE-Unterstützung installiert.

1 Suchen Sie den Pfad Ihres Arduino Sketchbook-Verzeichnisses. Öffnen Sie die Arduino IDE und suchen Sie unter Datei-> Einstellungen und oben auf diesem Bildschirm sehen Sie den Sketchbook-Speicherort.

2 Laden Sie diese ESP32_hardware.zip-Datei herunter und entpacken Sie sie an den Sketchbook-Speicherort. Es legt dort ein Hardware-Unterverzeichnis an. Für den unwahrscheinlichen Fall, dass Sie bereits ein Hardware-Unterverzeichnis an Ihrem Sketchbook-Speicherort haben, führen Sie dessen Inhalt mit diesem zusammen.

3 Installieren Sie die Xtensa- und ESP32-Tools. Hinweis: Dieser Download und die Installation dauern einige Zeit, um die ~0,5 Gig an Dateien zu verarbeiten. Gehen Sie in das Verzeichnis hardware\espressif\esp32\tools und führen Sie dann für Windows-Computer die Datei get.exe aus. Führen Sie für Mac- und Linux-Benutzer das Python-Skript get.py aus, um die Tools herunterzuladen. Navigieren Sie mit einem Terminal zum Ordner hardware/espressif/esp32/tools. Geben Sie dann Folgendes ein: python get.pyDas Python-Skript „get.py“lädt die Xtensa GNU-Tools und das ESP32 Software Development Kit (SDK) herunter und entpackt sie an den richtigen Ort.

Sie sollten ein paar neue Ordner im Verzeichnis „tools“sehen, einschließlich „sdk“und „xtensa-esp32-elf“, sobald dies erledigt ist.

Sobald dies abgeschlossen ist, schließen Sie Ihre Arduino IDE und öffnen Sie sie erneut. Sie sollten nun eine lange Liste von ESP32-Boards zur Auswahl unter dem Menü Tool->Boards haben. Wählen Sie „SparkFun ESP32 Thing“(oder „Adafruit ESP32 Feather“)

Sie können dann die Datei-Beispielliste öffnen, um eine Reihe von ESP32-Beispieldateien anzuzeigen

Der obige Prozess installiert einen Snapshot des Github-Codes für die ESP32- und BLE-Unterstützung, der in einer einzigen ZIP-Datei zusammengeführt wurde. Der von pfodDesigner generierte Code und die folgenden Beispiele verwenden diese Version dieser Bibliotheken. Wenn Sie die neueste Version mit möglicherweise anderen Funktionen und Fehlern möchten, laden Sie die ZIP-Datei der neuesten Version von https://github.com/espressif/arduino-esp32 herunter und entpacken Sie sie in hardware/espressif und benennen Sie die. um Ordner esp32 und dann für die BLE-Unterstützung eine ZIP-Datei der neuesten Version von https://github.com/espressif/arduino-esp32 herunterladen und in den Ordner esp32/libraries entpacken und in ESP32_BLE_Arduino umbenennen (falls erforderlich).

Schritt 2: Installieren der PfodParser-Bibliotheken für den ESP32

a) Laden Sie dann die pfodParser.zip-Bibliothek V3.23+, pfodDwgControls.zip und für ESP32 WiFi die pfodESP32BufferedClient.zip-Dateien auf Ihren Computer herunter, verschieben Sie sie auf Ihren Desktop oder einen anderen Ordner, den Sie leicht finden können.

b) Verwenden Sie dann die Arduino 1.8.2 IDE-Menüoption Sketch → Import Library → Add Library, um sie zu installieren. (Wenn Arduino die Installation nicht zulässt, weil die Bibliothek bereits vorhanden ist, suchen und löschen Sie die älteren Ordner pfodParser, pfodCmdParser oder pfodCHAP usw. und importieren Sie diese dann)

c) Stoppen und starten Sie die Arduino IDE und unter File->Examples sollten Sie nun die Bibliotheken pfodParser, pfodDwgControls und pfodESP32BufferedClient und eine Reihe von Beispielen sehen.

Schritt 3: Verwenden von PfodDesignerV3 für ESP32

Die kostenlose App pfodDesignerV3 (V3291+) unterstützt das Generieren von Code für den ESP32-Chip, um sich über BLE, WiFi oder Bluetooth Classic mit pfodApp (kostenpflichtig) zu verbinden.

Es gibt viele bestehende Tutorials zum Erstellen von Steuerelementen für Ihr Android-Handy, um eine Vielzahl von Boards mit pfodDesignerV3 zu steuern. Mit pfodDesignerV3 können Sie Steuerungen erstellen, die Ausgänge ein-/ausschalten oder pulsieren, Ausgänge über PWM steuern, den Zustand eines Eingangs- oder Analogwerts anzeigen, Daten und Untermenüs protokollieren und plotten und vieles mehr.

Tipp: Die ESP32-Arduino-Unterstützung umfasst Unterstützung für 31 verschiedene ESP32-Boards. Der pfodDesignerV3 bietet Ihnen Zugriff auf alle ESP32-I/O-Pins, aber nicht alle Boards verbinden alle ESP32-Pins mit Board-Pins. Sehen Sie in der Dokumentation Ihres Boards nach, welche Pins verfügbar sind, und sehen Sie sich die Datei pins_arduino.h im Verzeichnis hardware\espressif\esp32\variants Ihres Boards an.

Die pfodDesignerV3-Pin-Liste enthält Kommentare zur Verfügbarkeit und zur speziellen Verwendung von Pins für das Sparkfun ESP32 Thing und Adafruit HUZZAH32 – ESP32 Feather Boards.

In diesen Beispielen wird das Sparkfun ESP32 Thing Board verwendet und ein Schieberegler erstellt, um die Helligkeit der an Pin 5 angeschlossenen Onboard-LED Ihres Android-Handys zu steuern. Wenn Sie stattdessen das Adafruit HUZZAH32 - ESP32 Feather Board verwenden, wird die Onboard-LED an Pin 13 angeschlossen. Die oben installierte ESP32 Arduino-Unterstützung unterstützt Arduinos analogWrite nicht direkt. Stattdessen verfügt der ESP32 über 16 PWM-Kanäle, die Sie steuern und an jeden der Ausgänge anschließen können. Der pfodDesignerV3 generiert den erforderlichen Code, um den Kanal zuzuweisen und mit dem von Ihnen gewählten Ausgang zu verbinden. Installieren Sie den kostenlosen pfodDesignerV3 (V3291+) von Google Play.

Schritt 4: ESP32 BLE-Code-Generator

ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator
ESP32 BLE-Code-Generator

Starten Sie ein neues Menü

Klicken Sie auf die Schaltfläche Ziel, um das Zielgerät zu ändern.

Das erste Beispielziel ist ESP32 BLE. Klicken Sie also auf die Schaltfläche Bluetooth Low Energy.

Wählen Sie ESP32, das über BLE verbunden ist, und drücken Sie dann die Zurück-Taste des Mobiltelefons, um zum Hauptbildschirm zurückzukehren.

Schritt 5: Gestaltung des Menüs - die Eingabeaufforderung

Das Menü gestalten - die Aufforderung
Das Menü gestalten - die Aufforderung
Das Menü gestalten - die Aufforderung
Das Menü gestalten - die Aufforderung
Das Menü gestalten - die Aufforderung
Das Menü gestalten - die Aufforderung

Dieses einfache Beispiel enthält nur eine Eingabeaufforderung und ein einzelnes Steuerelement. Klicken Sie auf die Schaltfläche Eingabeaufforderung bearbeiten und dann auf die Schaltfläche Eingabeaufforderungstext bearbeiten, um den Eingabeaufforderungstext festzulegen.

Hier ist die Eingabeaufforderung auf „ESP32 Led“eingestellt. Klicken Sie auf das Häkchen, um Ihre Änderungen zu speichern und zum vorherigen Bildschirm zurückzukehren. Klicken Sie dann auf Hintergrundfarbe festlegen, um die Gesamtfarbe für das Menü der Steuerelemente auszuwählen.

Sie können für jedes Steuerelement verschiedene Farben auswählen. Für die Eingabeaufforderung stehen verschiedene andere Formate zur Verfügung. Hier ist der Hintergrund auf Blau eingestellt und die Schriftgröße ist +5 und der Text ist fett. Eine Vorschau der formatierten Eingabeaufforderung wird am unteren Rand des Bildschirms Eingabeaufforderung bearbeiten angezeigt.

Schritt 6: Gestaltung des Menüs - PWM-LED-Steuerung

Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung
Gestaltung des Menüs - PWM-LED-Steuerung

Verwenden Sie die Zurück-Taste des Mobiltelefons, um zum Hauptmenü zurückzukehren, und klicken Sie dann auf Menüelement hinzufügen, um ein Steuerelement oder Anzeigeelement hinzuzufügen.

Wählen Sie das Element PWM-Ausgang. Oben auf dem Bildschirm wird eine Vorschau des Steuerelements angezeigt.

Tipp: Der ESP32 verfügt nicht über eine 'Standard Arduino' analogWrite-Funktion. Dieser Codegenerator generiert jedoch Code, der ihn für Sie simuliert

Klicken Sie auf die Schaltfläche Edit Leading Text und ändern Sie „PWM Setting“in „Led“. Beachten Sie das Leerzeichen, um „Led“von der %-Angabe zu trennen.

Klicken Sie auf das Häkchen, um Ihre Bearbeitung zu speichern, und scrollen Sie dann nach unten zur Schaltfläche „Nicht mit einem E/A-Pin verbunden“.

Klicken Sie auf diese Schaltfläche, um eine Liste von Pins anzuzeigen, die als Ausgänge verwendet werden können.

Dies zeigt die speziellen Pins für die Sparkfun ESP32 Thing und Adafruit HUZZAH32 Feather Boards. Wählen Sie Pin 5, damit der Schieberegler die integrierte LED-Helligkeit des Sparkfun ESP32 Thing steuert. Wenn Sie das Adafruit HUZZAH32 Feather Board verwenden, wählen Sie stattdessen Pin 13 aus. Für andere Boards überprüfen Sie Ihre Board-Dokumentation und die Datei pins_arduino.h im Verzeichnis hardware\espressif\esp32\variants Ihres Boards

Wenn Sie dann alle anderen Formatierungseinstellungen für diesen Schieberegler vorgenommen haben, verwenden Sie die Zurück-Schaltfläche des Mobiltelefons, um zum Hauptmenü zurückzukehren, und klicken Sie auf Vorschaumenü, um zu sehen, wie das endgültige Menü auf Ihrem Mobiltelefon aussieht, wenn es von pfodApp angezeigt wird. Die Steuerelemente sind live, sodass Sie sie in der Vorschau verschieben können.

Schritt 7: Generieren Sie den ESP32-Code

Generieren Sie den ESP32-Code
Generieren Sie den ESP32-Code
Generieren Sie den ESP32-Code
Generieren Sie den ESP32-Code

Gehen Sie zurück zum Hauptmenü und scrollen Sie nach unten zur Schaltfläche Code generieren.

Klicken Sie auf die Schaltfläche Code generieren und dann auf die Schaltfläche Code in Datei schreiben, um den Code zu generieren

Beenden Sie pfodDesignerV3 und übertragen Sie den Code in /pfodAppRawData/pfodDesignerV3.txt von Ihrem Handy auf Ihren Computer. Siehe pfodAppForAndroidGettingStarted.pdf für Möglichkeiten, dies zu tun. Die WLAN-Dateiübertragungs-Pro-App von smarterDroid ist eine Möglichkeit, die Übertragung durchzuführen.

Mit der Schaltfläche „Ziel ändern“auf dem Bildschirm „Code generieren“können Sie zwischen ESP32 über BLE, ESP32 über Bluetooth und ESP32 über WLAN wechseln

Schritt 8: Ausführen der Beispiele

Ausführen der Beispiele
Ausführen der Beispiele

Mit der Schaltfläche „Ziel ändern“auf dem Bildschirm „Code generieren“können Sie zwischen ESP32 über BLE, ESP32 über Bluetooth und ESP32 über WLAN wechseln

So wurden aus obigem Design die folgenden drei Beispielskizzen generiert.

Ausführen des pfodESP32_BLE-Beispiels

Das Setzen des Targets auf ESP32 über BLE generiert den Code in pfodESP32_LED_BLE.ino Diese Skizze ist auch unter File->Examples->pfodParser verfügbar. Öffnen Sie dieses Beispiel, dann sollten Sie nach der Programmierung des Sparkfun ESP32 Thing (oder eines anderen ESP32-Boards) eine Verbindung dazu auf pfodApp herstellen (siehe pfodAppForAndroidGettingStarted.pdf für die Details) und eine Verbindung herstellen und in der Lage sein, die Helligkeit des Vorstand geführt.

TIPP: ESP32 verwendet dieselbe Bluetooth-Adresse sowohl für BLE als auch für Bluetooth. Wenn Sie also zuvor eine ESP32-Bluetooth-Verbindung in pfodApp eingerichtet haben, müssen Sie diese pfodApp-Bluetooth-Verbindung löschen, bevor Sie eine BLE-Verbindung einrichten, da pfodApp vorhandene Verbindungen filtert (nach Adresse) aus der Display-Liste der verfügbaren Geräte. Möglicherweise müssen Sie auch die Einstellungen Ihres Mobiltelefons öffnen und die ESP32-Bluetooth-Verbindung "vergessen", dann das Bluetooth des Mobiltelefons ausschalten und Ihr Telefon neu starten, um den Bluetooth-Stack zu löschen

TIPP: Die ESP32_BLE_Arduino-Bibliothek von Neil Kolban ist nicht kompatibel mit der BLEPeripheral-Bibliothek von Sandeep Mistry, die von einigen anderen von pfodDesigner generierten BLE-Zielen verwendet wird. Sie müssen also das BLEPeripheral-Verzeichnis (sofern vorhanden) aus Ihrem Arduino/Libraries-Verzeichnis entfernen, um ESP32 BLE-Skizzen zu kompilieren.

Ausführen des pfodESP32_Bluetooth-Beispiels

Das Setzen des Ziels auf ESP32 über Bluetooth generiert den Code in pfodESP32_LED_Bluetooth.ino Diese Skizze ist auch unter Datei->Beispiele->pfodParser verfügbar. Öffnen Sie dieses Beispiel und programmieren Sie dann das Sparkfun ESP32 Thing (oder ein anderes ESP32-Board). Sie müssen den ESP32 mit Ihrem Telefon koppeln, keine PIN-Nummer erforderlich. Stellen Sie dann auf pfodApp eine Verbindung dazu her (siehe pfodAppForAndroidGettingStarted.pdf für die Details) und stellen Sie eine Verbindung her und können Sie die Helligkeit der Platinen-LED einstellen.

Ausführen des pfodESP32_WiFi-Beispiels

Das Festlegen des Ziels auf ESP32 über WLAN generiert den Code in pfodESP32_LED_WiFi.ino Diese Skizze ist auch unter Datei->Beispiele->pfodParser verfügbar. Öffnen Sie dieses Beispiel, geben Sie den Namen und das Passwort Ihres Netzwerks ein und wählen Sie eine statische IP für dieses Gerät. Dann, nachdem Sie das Sparkfun ESP32 Thing (oder ein anderes ESP32-Board) programmiert haben, sollten Sie eine Verbindung dazu auf pfodApp herstellen (siehe pfodAppForAndroidGettingStarted.pdf für die Details) und eine Verbindung herstellen und die Helligkeit der Board-LED einstellen können.

Schritt 9: WLAN-Sicherheit

Wenn Sie sich über das Internet (über WLAN) mit dem ESP32 verbinden, ist die Sicherheit wichtig. Sie möchten zum Beispiel nicht, dass jeder Ihr Garagentor öffnen kann. Der Codegenerator und die pfodParser-Bibliothek unterstützen 128-Bit-Sicherheit. Diese Sicherheit verschlüsselt die Nachrichten nicht, sondern fügt jeder Nachricht einen kryptografischen Hash hinzu, um vor unbefugter Verbindung und Kontrolle zu schützen. Einzelheiten zur Implementierung dieser Sicherheit finden Sie unter SipHash Secure Challenge and Response.

Hinzufügen von 128-Bit-Sicherheit

Der Schutz vor unbefugten Benutzern, die über das Internet auf Ihr Gerät zugreifen, ist so einfach wie das Bearbeiten von #define pfodSecurityCode "", um Ihren eigenen Geheimcode hinzuzufügen. (bis zu 32 Hex-Ziffern)

Um beispielsweise den Sicherheitscode 173057F7A706AF9BBE65D51122A14CEE festzulegen, verwenden Sie #define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE"Natürlich sollten Sie Ihren eigenen Geheimcode verwenden. Wenn Sie Ihren eigenen Code in Ihrer pfodApp-Verbindung einrichten, können Sie und niemand anderes eine Verbindung herstellen.

Für eine gute Sicherheit ist ein langer Zufallscode erforderlich. pfodApp unterstützt bis zu 128 Bit als 32Hex-Ziffern.

Um Ihren eigenen Geheimcode zu generieren, können Sie hier einen zufälligen Geheimschlüssel-Generator herunterladen. Geheimschlüssel-Generator von hier. Dieses Programm generiert nicht nur zufällige Schlüssel, sondern schreibt sie auch als QR-Codes aus, damit Sie sie einfach und genau in Ihrer pfodApp-Verbindung einstellen können.

Sie können den QR-Code ausdrucken und an Ihr pfodDevice anhängen. Klicken Sie dann auf die Schaltfläche QR scannen im pfodApp WiFi-Verbindungsbildschirm, um das Passwort einzulesen.

Siehe A Simple WiFi/Arduino pfodDevice™ mit 128-Bit-Sicherheit für ein detailliertes Beispiel für die Verwendung des Schlüsselgenerators und des QR-Codes.

Abschluss

Dieses Tutorial hat gezeigt, wie Sie die Arduino IDE einrichten, um den ESP32 zu programmieren. Anschließend wurde mit der kostenlosen pfodDesigner-App ein Menü entworfen, um die Helligkeit der Onboard-LED und den generierten Code für die Verbindung mit dem ESP32 über BLE, Bluetooth oder WiFi zu steuern. Wenn Sie sich dann über die pfodApp apppfodApp App verbinden, sehen Sie das von Ihnen gestaltete Menü und können die Helligkeit der LED über einen Schieberegler steuern. Der pfodDesigner generiert den gesamten Arduino-Code, einschließlich der Simulation von Arduinos analogWrite. Es war keine Arduino-Codierung erforderlich. Die pfodApp kümmert sich um die gesamte Android-Seite, es ist keine Android-Codierung erforderlich.

Empfohlen: