PlatformIO Infosammlung: Unterschied zwischen den Versionen
Tut (Diskussion | Beiträge) |
Tut (Diskussion | Beiträge) (→Temporäre Dateien nicht archivieren (.gitignore / seafile-ignore.txt)) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Private Credentials (z.B. Wifi-Passwort) ablegen == | == Private Credentials (z.B. Wifi-Passwort) ablegen == | ||
+ | Damit private Credentials wie Passwörter oder API-KEYs nicht versehentlich mit einem Projekt mitveröffentlicht werden, bietet es sich an, diese in einer speziellen Stelle im Home/User-Verzeichnis abzulegen und nur per Include ins Projekt zu holen. | ||
+ | |||
+ | |||
Im Home (Unix/Linux/MacOS) bzw. User (Windows) Verzeichnis gibt es einen versteckten '''.platformio''' Ordner. | Im Home (Unix/Linux/MacOS) bzw. User (Windows) Verzeichnis gibt es einen versteckten '''.platformio''' Ordner. | ||
Zeile 6: | Zeile 9: | ||
Unter Mac/Linux/Unix ist der Pfad '''~/.platformio/'''. Beim Mac-Finder muss ggf. '''Command + Shift + .''' gedrückt werden, damit die versteckten Ordner sichtbar werden. | Unter Mac/Linux/Unix ist der Pfad '''~/.platformio/'''. Beim Mac-Finder muss ggf. '''Command + Shift + .''' gedrückt werden, damit die versteckten Ordner sichtbar werden. | ||
− | Unter diesem '.platformio' Ordner nun folgende Ordnerstruktur mit der MyCreds.h-Datei erstellen: <pre>.platformio/lib/MyCreds/MyCreds.h</pre> | + | Unter diesem '''.platformio''' Ordner nun folgende Ordnerstruktur mit der MyCreds.h-Datei erstellen: |
+ | <pre>.platformio/lib/MyCreds/MyCreds.h</pre> | ||
+ | |||
+ | Es können auch mehrere Dateien mit anderen Namen im MyCreds-Ordner liegen, z.B. eine '''MyCredsHackffm.h'''. | ||
+ | |||
+ | Diese Datei bekommt dann z.B. folgenden Inhalt: | ||
+ | |||
+ | <pre> | ||
+ | #ifndef WIFI_SSID | ||
+ | #define WIFI_SSID "MyWiFiSSID" | ||
+ | #define WIFI_PASSWORD "MyWiFiPassword" | ||
+ | #endif | ||
+ | </pre> | ||
+ | |||
+ | Im PlatformIO-Projekt kann man dann einfach auf diese Credentials zugreifen: | ||
+ | <pre> | ||
+ | #include <WiFi.h> | ||
+ | #include <MyCreds.h> | ||
+ | |||
+ | ... | ||
+ | |||
+ | void setup() { | ||
+ | ... | ||
+ | WiFi.mode(WIFI_STA); | ||
+ | WiFi.begin(WIFI_SSID, WIFI_PASSWORD); | ||
+ | while (WiFi.status() != WL_CONNECTED) { | ||
+ | Serial.print('.'); | ||
+ | delay(500); | ||
+ | } | ||
+ | Serial.print("IP address: "); | ||
+ | Serial.println(WiFi.localIP()); | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == Temporäre Dateien nicht archivieren (.gitignore / seafile-ignore.txt) == | ||
+ | Bei jedem Kompilieren werden viele temporäre Dateien erzeugt, insbesondere werden die Bibliotheken komplett geladen. Das macht sich nicht gut, wenn man seine Projekte in GIT oder auch Cloudspeichern ablegen will - gerne kommen Cloudspeicher da durcheinander, wenn sehr viele Dateien beim Build-Prozess umgebaut werden. Das kann man mit entsprechenden Ingore-Dateien verhindern: | ||
+ | |||
+ | === Seafile === | ||
+ | Die seafile-ignore.txt Datei muss ins Hauptverzeichnis der Seafile-Bibliothek, wo irgendwo das PlatformIO-Projekt liegt. Der Inhalt bei mir: | ||
+ | <pre> | ||
+ | # put in Seafile library root folder, otherwise will not have effect | ||
+ | */.pio/ | ||
+ | */.git/ | ||
+ | </pre> | ||
+ | |||
+ | === GIT === | ||
+ | Die .gitignore Datei muss ins GIT-Projekt-Hauptverzeichnis. Ich nutze folgenden Inhalt: | ||
+ | <pre> | ||
+ | .pio | ||
+ | .vscode/.browse.c_cpp.db* | ||
+ | .vscode/c_cpp_properties.json | ||
+ | .vscode/launch.json | ||
+ | .vscode/ipch | ||
+ | </pre> |
Version vom 17. September 2024, 14:12 Uhr
Inhaltsverzeichnis
Private Credentials (z.B. Wifi-Passwort) ablegen
Damit private Credentials wie Passwörter oder API-KEYs nicht versehentlich mit einem Projekt mitveröffentlicht werden, bietet es sich an, diese in einer speziellen Stelle im Home/User-Verzeichnis abzulegen und nur per Include ins Projekt zu holen.
Im Home (Unix/Linux/MacOS) bzw. User (Windows) Verzeichnis gibt es einen versteckten .platformio Ordner.
Der Pfad unter Windows ist: C:\Users\<USERNAME>\.platformio.
Unter Mac/Linux/Unix ist der Pfad ~/.platformio/. Beim Mac-Finder muss ggf. Command + Shift + . gedrückt werden, damit die versteckten Ordner sichtbar werden.
Unter diesem .platformio Ordner nun folgende Ordnerstruktur mit der MyCreds.h-Datei erstellen:
.platformio/lib/MyCreds/MyCreds.h
Es können auch mehrere Dateien mit anderen Namen im MyCreds-Ordner liegen, z.B. eine MyCredsHackffm.h.
Diese Datei bekommt dann z.B. folgenden Inhalt:
#ifndef WIFI_SSID #define WIFI_SSID "MyWiFiSSID" #define WIFI_PASSWORD "MyWiFiPassword" #endif
Im PlatformIO-Projekt kann man dann einfach auf diese Credentials zugreifen:
#include <WiFi.h> #include <MyCreds.h> ... void setup() { ... WiFi.mode(WIFI_STA); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(500); } Serial.print("IP address: "); Serial.println(WiFi.localIP()); ... }
Temporäre Dateien nicht archivieren (.gitignore / seafile-ignore.txt)
Bei jedem Kompilieren werden viele temporäre Dateien erzeugt, insbesondere werden die Bibliotheken komplett geladen. Das macht sich nicht gut, wenn man seine Projekte in GIT oder auch Cloudspeichern ablegen will - gerne kommen Cloudspeicher da durcheinander, wenn sehr viele Dateien beim Build-Prozess umgebaut werden. Das kann man mit entsprechenden Ingore-Dateien verhindern:
Seafile
Die seafile-ignore.txt Datei muss ins Hauptverzeichnis der Seafile-Bibliothek, wo irgendwo das PlatformIO-Projekt liegt. Der Inhalt bei mir:
# put in Seafile library root folder, otherwise will not have effect */.pio/ */.git/
GIT
Die .gitignore Datei muss ins GIT-Projekt-Hauptverzeichnis. Ich nutze folgenden Inhalt:
.pio .vscode/.browse.c_cpp.db* .vscode/c_cpp_properties.json .vscode/launch.json .vscode/ipch