Hilfsklassen zum Bootstrapping von Arduino-Projekten.
In wenigen Minuten können Sie im Speicher lesen und darauf schreiben (im JSON-Format), Nachrichten lesen und an eine MQTT-Warteschlange senden, eine Verbindung zu WLAN herstellen, ohne Passwörter fest codieren zu müssen, und vieles mehr ...
Arduino Bootstrapper
möchte ein Ausgangspunkt für die Erstellung guter Projekte ohne Codeduplikationen sein.
Espressif ESP8266/ESP32
sind die Standardplattformen, aber Sie können problemlos Unterstützung für andere Plattformen und Boards hinzufügen.
Geschrieben für Arduino IDE und PlatformIO.
Wenn Ihnen Arduino Bootstrapper gefällt, geben Sie ihm einen Stern oder geben Sie einen Fork ab und leisten Sie einen Beitrag!
Öffnen Sie hier auf Github ein Problem. Ihre Fragen könnten für andere Benutzer nützlich sein.
Es gibt zwei Möglichkeiten, Ihre Software mit diesen Dienstprogrammen zu booten.
Intelligentes Thermostat, Solarstation, Glühwürmchen Luciferin, intelligenter Uhrenbeweger
Klonen Sie den Bootstrapper
git clone [email protected]:sblantipodi/arduino_bootstrapper.git
Bearbeiten Sie diese Datei einfach gemäß der Beschreibung. Dies dauert nur wenige Minuten
.
├── ...
├── examples # Project src folder
│ ├── ChangeName.cpp # Main file with loop() and setup() function, rename and copy it into your src folder
│ ├── ChangeName.h # Main header file, rename and copy it into your include folder
│ └── ...
├── src # Folder for core files, edit those files and contribute!
│ ├── BootstrapManager.h # Core header file with utility classes for bootstrapping
│ ├── QueueManager.h # Core header file with utility classes for Queue and MQTT management
│ ├── WifiManager.h # Core header file with utility classes for Wifi and OTA upload management
│ ├── Helpers.h # Core header file with helper classes
│ └── ...
├── platformio.ini # Configure all the required info (ex: Wifi device name, DNS gateway, ecc.)
├── secrets.ini.template # Configure password and rename the file in secrets.ini
└── ...
NOTIZ:
Sie sollten die Funktionen implementieren, die per *pointer an die Haupt-Bootstrap-Funktionen übergeben werden:
class BootstrapManager {
...
public:
void bootstrapSetup (
void (*manageDisconnectionFunction)(),
void (*manageHardwareButton)(),
void (*callback)( char *, byte*, unsigned int )
);
void bootstrapLoop (
void (*manageDisconnectionFunction)(),
void (*manageQueueSubscription)(),
void (*manageHardwareButton)()
);
...
};
manageDisconnections()
# OPTIONAL Geben Sie die Logik ein, die Sie benötigen, falls Ihr Mikrocontroller vom Netzwerk getrennt istmanageHardwareButton()
# OPTIONAL Geben Sie eine spezielle Anweisung für die Hardware-Tastenverwaltung bei Netzwerkunterbrechungen einmanageQueueSubscription()
# Abonnieren Sie die gewünschten MQTT-Themencallback()
# Rückruffunktion, die aufgerufen wird, wenn eine Nachricht aus der Warteschlange eintrifft Sie können Arduino Bootstrapper
auf zwei Arten in Ihre bestehenden Projekte importieren:
// For PlatformIO
Add `lib_deps` to your `platformio.ini`
lib_deps = ArduinoBootstrapper
// For ArduinoIDE
Simply import the Bootstrapper library from the library manager
git submodule add https://github.com/sblantipodi/arduino_bootstrapper.git arduino_bootstrapper
Für beide Importmethoden sollten Sie dann zusätzliche Verzeichnisse zu Ihrer platformio.ini
hinzufügen
lib_extra_dirs = arduino_bootstrapper
Kopieren und konfigurieren Sie ~/arduino_bootstrapper/secrets.ini.template
in secrets.ini.template
Bitte fügen Sie BootrapManager.h in Ihre Hauptheaderdatei ein:
# include " BootstrapManager.h "
und initialisieren Sie die BootstrapManager-Klasse:
BootstrapManager bootstrapManager;
Fügen Sie in Ihrer setup()
Funktion den Wifi-, MQTT- und OTA-Bootstrapper hinzu
bootstrapManager.bootstrapSetup(manageDisconnections, manageHardwareButton, callback);
Fügen Sie in Ihrer Funktion loop()
die Bootstrap-Manager-Funktion hinzu
bootstrapManager.bootstrapLoop(manageDisconnections, manageQueueSubscription, manageHardwareButton);
Bitte befolgen Sie die Anweisungen Bootstrap a project from scratch
ohne den anfänglichen Git-Klon-Teil.
Dieses Projekt verwendet Symlinks. Windows aktiviert Symlinks nicht standardmäßig. Um es zu aktivieren, führen Sie diesen Befehl über eine Admin-Konsole aus:
export MSYS=winsymlinks:nativestrict
Dieses Projekt unterstützt CI über GitHub Actions. Im Ordner .github/workflows
gibt es zwei Workflows
Wenn Sie diese Syntax verwenden:
git tag -a v1.0.0 -m "your commit msg";
git push origin --tags;
Der Text in der Commit-Nachricht ist die Beschreibung Ihrer Veröffentlichung.
Arduino Bootstrapper sucht nach einer secrets.ini
. Wenn Sie diese nicht konfigurieren, wird der Zugriffspunkt gestartet.
Sie können mit Ihrem Mobiltelefon eine Verbindung zum AP herstellen und zu http://192.168.4.1 gehen, um auf die GUI zuzugreifen
Dadurch können Sie alle Passwörter eingeben, ohne sie hart codieren zu müssen.
Dieses Programm ist unter der MIT-Lizenz lizenziert
Danke | Für |
---|---|
Für die CLion IDE-Lizenzen. |