Arduino:
Työskentely YAML:n kanssa
Kuinka:
YAMLin käyttäminen suoraan Arduinossa ei ole yhtä suoraviivaista kuin korkeamman tason ohjelmointiympäristöissä muistirajoitusten ja natiivien YAML-käsittelykirjastojen puuttumisen vuoksi. Kuitenkin projekteille, jotka vaativat YAMLin jäsentämistä tai generointia, tyypillinen lähestymistapa sisältää avustavan tietokoneen käytön (kuten Raspberry Pi) tai YAML-tiedostojen muuntamisen Arduino-ystävällisempään muotoon (kuten JSON) käyttäen ulkoisia skriptejä. Demonstrointitarkoituksessa keskitymme jälkimmäiseen lähestymistapaan käyttäen suosittua kirjastoa: ArduinoJson.
Vaihe 1: Muunna YAML-määrityksesi JSON-muotoon. Voit käyttää online-työkaluja tai komentorivin apuohjelmia, kuten yq
.
YAML-tiedosto (config.yaml
):
wifi:
ssid: "YourSSID"
salasana: "YourPassword"
Muunnettu JSON-muotoon (config.json
):
{
"wifi": {
"ssid": "YourSSID",
"salasana": "YourPassword"
}
}
Vaihe 2: Käytä ArduinoJson-kirjastoa jäsentämään JSON-tiedosto Arduino-luonnoksessasi. Ensin sinun täytyy asentaa ArduinoJson-kirjasto kirjastohallinnan kautta Arduino IDE:ssa.
Vaihe 3: Lataa ja jäsenä JSON koodissasi. Arduino-laitteen tallennustilan rajoitusten vuoksi kuvittele, että JSON-merkkijono on tallennettu muuttujaan tai luettu SD-kortilta.
Esimerkki Arduino-luonnoksesta:
#include <ArduinoJson.h>
const char* jsonConfig = "{\"wifi\":{\"ssid\":\"YourSSID\",\"salasana\":\"YourPassword\"}}";
void setup() {
Serial.begin(9600);
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, jsonConfig);
if (error) {
Serial.print(F("deserializeJson() epäonnistui: "));
Serial.println(error.f_str());
return;
}
const char* ssid = doc["wifi"]["ssid"]; // "YourSSID"
const char* salasana = doc["wifi"]["salasana"]; // "YourPassword"
Serial.print("SSID: ");
Serial.println(ssid);
Serial.print("Salasana: ");
Serial.println(salasana);
}
void loop() {
// Ei mitään tässä esimerkissä
}
Tuloste luonnoksen suorittamisen jälkeen:
SSID: YourSSID
Salasana: YourPassword
Tämä lähestymistapa, joka sisältää muuntamisen JSON-muotoon ja ArduinoJson-kirjaston hyödyntämisen, mahdollistaa hallittavan YAML-määritysten käsittelyn Arduino-projekteissa, ohittaen suoran YAML-jäsentämisen mikrokontrollerissa.