Arduino:
Trabajando con YAML

Cómo hacerlo:

Trabajar directamente con YAML en Arduino no es tan sencillo como en entornos de programación de más alto nivel debido a las restricciones de memoria y la ausencia de bibliotecas nativas de procesamiento de YAML. Sin embargo, para proyectos que requieren análisis o generación de YAML, un enfoque típico implica el uso de un ordenador adicional (como una Raspberry Pi) o la conversión de archivos YAML a un formato más amigable para Arduino (como JSON) usando scripts externos. Para fines de demostración, centrémonos en este último enfoque usando una biblioteca popular: ArduinoJson.

Paso 1: Convierte tu configuración YAML a JSON. Puedes utilizar herramientas en línea o utilidades de línea de comandos como yq.

Archivo YAML (config.yaml):

wifi:
  ssid: "TuSSID"
  password: "TuContraseña"

Convertido a JSON (config.json):

{
  "wifi": {
    "ssid": "TuSSID",
    "password": "TuContraseña"
  }
}

Paso 2: Utiliza la biblioteca ArduinoJson para parsear el archivo JSON en tu boceto de Arduino. Primero, necesitas instalar la biblioteca ArduinoJson a través del Gestor de Bibliotecas en el Arduino IDE.

Paso 3: Carga y parsea el JSON en tu código. Debido a las limitaciones de almacenamiento de Arduino, imagina que la cadena JSON está almacenada en una variable o leída desde una tarjeta SD.

Boceto de Arduino de muestra:

#include <ArduinoJson.h>

const char* jsonConfig = "{\"wifi\":{\"ssid\":\"TuSSID\",\"password\":\"TuContraseña\"}}";

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

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

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

  const char* ssid = doc["wifi"]["ssid"]; // "TuSSID"
  const char* password = doc["wifi"]["password"]; // "TuContraseña"

  Serial.print("SSID: ");
  Serial.println(ssid);
  Serial.print("Contraseña: ");
  Serial.println(password);
}

void loop() {
  // Nada aquí para este ejemplo
}

Salida al ejecutar el boceto:

SSID: TuSSID
Contraseña: TuContraseña

Este enfoque, que implica la conversión a JSON y el aprovechamiento de la biblioteca ArduinoJson, permite un manejo manejable de la configuración YAML dentro de proyectos de Arduino, evitando el análisis directo de YAML en el microcontrolador.