Arduino:
Att Arbeta med YAML

Hur man gör:

Att arbeta med YAML direkt på Arduino är inte lika rakt på sak som i miljöer med högre programmeringsnivå på grund av begränsningar i minne och frånvaro av inbyggda YAML-behandlingsbibliotek. Men, för projekt som kräver YAML-tolkning eller generering är en typisk metod att använda en kompanjonsdator (som en Raspberry Pi) eller konvertera YAML-filer till ett format som är mer vänligt för Arduino (som JSON) med hjälp av externa skript. För demonstrationsändamål, låt oss fokusera på det senare tillvägagångssättet genom att använda ett populärt bibliotek: ArduinoJson.

Steg 1: Konvertera din YAML-konfiguration till JSON. Du kan använda verktyg online eller kommandoradsverktyg som yq.

YAML-fil (config.yaml):

wifi:
  ssid: "YourSSID"
  password: "YourPassword"

Omvandlad till JSON (config.json):

{
  "wifi": {
    "ssid": "YourSSID",
    "password": "YourPassword"
  }
}

Steg 2: Använd ArduinoJson-biblioteket för att tolka JSON-filen i din Arduino-sketch. Först måste du installera ArduinoJson-biblioteket via bibliotekshanteraren i Arduino IDE.

Steg 3: Ladda och tolka JSON i din kod. På grund av Arduinos lagringsbegränsningar, föreställ dig att JSON-strängen är lagrad i en variabel eller läses från ett SD-kort.

Exempel på Arduino-sketch:

#include <ArduinoJson.h>

const char* jsonConfig = "{\"wifi\":{\"ssid\":\"YourSSID\",\"password\":\"YourPassword\"}}";

void setup() {
  Serial.begin(9600);

  StaticJsonDocument<200> doc;
  DeserializationError error = deserializeJson(doc, jsonConfig);

  if (error) {
    Serial.print(F("deserializeJson() failed: "));
    Serial.println(error.f_str());
    return;
  }

  const char* ssid = doc["wifi"]["ssid"]; // "YourSSID"
  const char* password = doc["wifi"]["password"]; // "YourPassword"

  Serial.print("SSID: ");
  Serial.println(ssid);
  Serial.print("Password: ");
  Serial.println(password);
}

void loop() {
  // Inget här för detta exempel
}

Utskrift vid körning av sketchen:

SSID: YourSSID
Password: YourPassword

Detta tillvägagångssätt, som innebär konvertering till JSON och användning av ArduinoJson-biblioteket, möjliggör hantering av YAML-konfiguration inom Arduino-projekt på ett hanterbart sätt, genom att kringgå direkt YAML-tolkning på mikrokontrollern.