ESP-Tipp: ESPBASE lib
Ich möchte eine ganz hilfreiche Bibliothek für die ESP-Programmierung von Pedro Albuquerque vorstellen: die ESPBASE lib.
ESPBASE lib — ein Grundtemplate
Der Autor selbst schreibt über ESPBASE:
library to build ESP8266/ESP32 projects using OTA and Web config
This lib was created to simplify the creation of any new project from scratch but starting with many Wifi and Web functionalities already available to be used in code with minimum configuration effort.
ESPBASE entstand aus einem früheren Projekt des Autors, das tatsächlich eher Vorlagencharakter hat. Man hat es sich komplett als,Projekt kopiert und dann für sich selbst angepasst. ESPBASE ist eine Neuentwicklung und kann nun per Include als Bibliothek in das eigene Projekt eingebunden werden.
Funktionalitäten
Die Library bietet einige nützliche Grundfunktionen für die Entwicklung von IoT-Sensoren. Im Gegensatz zu anderen Bibliotheken ist ESPBASE sehr leichtgewichtig und überschaubar und unterstützt sowohl ESP32- als auch ESP8266-Module.
Folgende Features bietet die Library:
- Over-the-Air (OTA) Upload des Sourcecodes
- Speichen von Konfigurationsdaten im EEPROM
- Webserver, um die Konfigurationsdaten zu ändern (z.B. WLAN-Einstellungen)
- Access-Point-Modus, wenn die WLAN-Konfiguration fehlt oder nicht funktioniert
- NTP Konfiguration für die lokale Zeit und Zeitzone
Download
Das Projekt ist auf GitHub unter der GNU General Public License v3.0 verfügbar.
Wer mit Platform.io arbeitet, kann die Bibliothek über die folgende URL einbinden: https://github.com/Pedroalbuquerque/ESPBASE/archive/master.zip
In den Beispielen der Bibliothek ist dafür eine vollständiges Beispiel einer platformio.ini
Im Projekt nutzen
Um die Bibliothek nutzen zu können, müssen einige wenige Schritte gemacht werden.
- Die Bibliothek ins Projekt einbinden
- Im Quellcode die Bibliothek inkludieren:
#include <ESPBASE.h> - Objekt als globale Variable anlegen:
ESPBASE Esp; - In der Funktion setup() muss nun die Bibliothek initialisiert werden:
Esp.initialize(); - Danach in der loop()-Funktion an erster Stelle noch die folgenden Zeilen:
// OTA request handling
ArduinoOTA.handle();
// WebServer requests handling
server.handleClient();
// feed de DOG :)
customWatchdog = millis();
Hier ein komplettes Beispiel aus dem Projekt:
Ähnliche Bibliotheken
Folgende Bibliotheken verfolgen ein ähnliches Ziel. Diese will ich mir in Zukunft auch einmal anschauen. Wenn jemand Erfahrung mit diesen Erweiterungen oder weitere Tipps hat, gerne einen Kommentar dazu hinterlassen.