Arduino:
Loggning

Hur gör man:

Arduino kommer inte med ett inbyggt loggningsbibliotek som vissa andra miljöer, men du kan implementera grundläggande loggning till Seriell-konsolen med minimal ansträngning. Här är ett snabbt exempel för att komma igång:

void setup() {
  // Starta seriell kommunikation med den angivna baudhastigheten
  Serial.begin(9600);

  // Vänta på att seriellporten ansluter - bara nödvändigt på vissa kort
  while (!Serial) {
    ; // vänta på att seriellporten ska ansluta. Behövs för native USB
  }

  // Logga ett informativt meddelande som indikerar att installationsprocessen är klar
  Serial.println("Installationen klar!");
}

void loop() {
  // Enkel loggare som skriver ut drifttiden varje sekund
  static unsigned long lastLogTime = 0;
  unsigned long currentMillis = millis();

  if (currentMillis - lastLogTime >= 1000) {
    lastLogTime = currentMillis;
    Serial.print("Drifttid (ms): ");
    Serial.println(currentMillis);

    // Här kan du även lägga till felloggar, varningar eller annan info.
  }
  
  // Resten av din programlogik här...
}

Exempel på Seriell Utdata:

Installationen klar!
Drifttid (ms): 1000
Drifttid (ms): 2000
Drifttid (ms): 3000
...

Fördjupning:

Historiskt sett var loggning på mikrokontrollers inte lika enkelt som på ett fullfjädrat operativsystem. Begränsade resurser innebar att varje byte räknades och utvecklare behövde vara noga med att inte tilltäppa systemet. Med ankomsten av mer kapabla kort och Arduino-plattformen som förenklade processen, har loggning blivit mer tillgänglig.

Medan koden ovan demonstrerar loggning via Seriellt interface, inkluderar andra metoder skrivning till ett SD-kort, att sända data över nätverk till en fjärrserver, eller till och med utskrift till en liten LCD-skärm.

Att implementera ett loggningssystem innebär att man måste ta hänsyn till saker som rotation, allvarlighetsnivå (info, debug, varning, fel) och påverkan på prestanda. På en Arduino kan du behöva vara medveten om minnesbegränsningar när du loggar komplexa datastrukturer. För fjärrloggning är även säkerheten för de överförda loggarna en oro.

Mer sofistikerade lösningar som Syslog, en bred accepterad loggningsstandard, existerar utanför Arduino-världen, men man kan integrera tredjepartsbibliotek som erbjuder liknande funktionalitet med olika grad av komplexitet och resurskrav.

Se även: