Arduino:
Lavorare con YAML
Come fare:
Lavorare direttamente con YAML su Arduino non è semplice come negli ambienti di programmazione di livello superiore a causa dei vincoli di memoria e dell’assenza di librerie native per l’elaborazione di YAML. Tuttavia, per progetti che richiedono l’analisi o la generazione di YAML, un approccio tipico comporta l’utilizzo di un computer di supporto (come un Raspberry Pi) o la conversione dei file YAML in un formato più adatto ad Arduino (come JSON) utilizzando script esterni. A scopo dimostrativo, concentriamoci su quest’ultimo approccio utilizzando una libreria popolare: ArduinoJson.
Passo 1: Converti la tua configurazione YAML in JSON. Puoi utilizzare strumenti online o utility da riga di comando come yq
.
File YAML (config.yaml
):
wifi:
ssid: "YourSSID"
password: "YourPassword"
Convertito in JSON (config.json
):
{
"wifi": {
"ssid": "YourSSID",
"password": "YourPassword"
}
}
Passo 2: Usa la libreria ArduinoJson per analizzare il file JSON nel tuo sketch Arduino. Prima di tutto, devi installare la libreria ArduinoJson tramite il Library Manager nell’IDE di Arduino.
Passo 3: Carica e analizza il JSON nel tuo codice. A causa dei limiti di memoria di Arduino, immagina che la stringa JSON sia memorizzata in una variabile o letta da una scheda SD.
Esempio di sketch Arduino:
#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() {
// Niente qui per questo esempio
}
Output alla esecuzione dello sketch:
SSID: YourSSID
Password: YourPassword
Questo approccio, che implica la conversione in JSON e sfrutta la libreria ArduinoJson, consente una gestione gestibile della configurazione YAML all’interno dei progetti Arduino, eludendo l’analisi diretta di YAML sul microcontrollore.