PlatformIO Infosammlung

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

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