Image of Fejlfinding af almindelige problemer med Arduino IDE - Serie om Luftkvalitets monitoreringsstation, Afsnit 11

Felsökning av vanliga problem med Arduino IDE - Serie om luftkvalitetsövervakningsstation, Avsnitt 11

  • March 18, 2025
  • |
  • Teofil Corad

Lektionsmål

Målet med den här lektionen är att ge dig de nödvändiga färdigheterna för att identifiera och lösa vanliga problem som kan uppstå vid kodning för ESP32 och interaktion med sensorer. Vi kommer att täcka felsökningstekniker och lösningar på fel relaterade till kod, hårdvaruanslutningar och biblioteksanvändning.


Introduktion

När du börjar programmera och arbeta med din ESP32 och sensorer är det viktigt att vara förberedd på möjliga fel. Debugging är en kritisk färdighet som säkerställer att din kod fungerar korrekt och att din hårdvara fungerar som den ska.

I den här lektionen går vi igenom de vanligaste felen och lösningarna, så att du snabbt och effektivt kan diagnostisera och lösa problem.


Vanliga problem och lösningar

1. Bibliotek ej hittat eller kompileringsfel

Symtom:

  • Felmeddelanden som indikerar att ett bibliotek inte kan hittas.
  • Funktioner från ett bibliotek är inte definierade.

Möjliga orsaker:

  • Det nödvändiga biblioteket är inte installerat.
  • Bibliotekets version är inte kompatibel med din kod.

Lösningar:

  • Kontrollera biblioteksinstallationen:
    • Gå till Sketch > Include Library > Manage Libraries… i Arduino IDE och sök efter det nödvändiga biblioteket. Om det inte är installerat, installera det via Library Manager.
  • Verifiera #include-satser:
    • Se till att namnet i #include-direktivet stämmer överens med det installerade biblioteket. Till exempel, om du använder Adafruit AHT10, ska din kod innehålla:
    #include <Adafruit_AHTX0.h>
  • Uppdatera bibliotek:
    • Kontrollera efter uppdateringar i Library Manager och uppdatera både boards och bibliotek för att undvika kompatibilitetsproblem.

2. Sensor svarar inte eller initieras inte

Symtom:

  • Felmeddelanden som "Failed to find AHT10 chip” eller "No data from sensor."
  • Sensorvärden visas inte i Serial Monitor.

Möjliga orsaker:

  • Felaktiga eller lösa ledningsanslutningar.
  • Strömförsörjningsproblem.
  • Sensormodulen är inte korrekt initierad.

Lösningar:

  • Kontrollera ledningsanslutningar:

    • Se till att alla anslutningar är korrekta mellan ESP32 och sensorn.
    • För AHT10-sensorn ska anslutningarna vara:
      • VCC → 3.3V på ESP32
      • GND → GND på ESP32
      • SDA → GPIO21 (ESP32:s SDA-pin)
      • SCL → GPIO22 (ESP32:s SCL-pin)
  • Verifiera strömförsörjning:

    • Se till att sensorn får tillräcklig ström. AHT10 fungerar på 3.3V från ESP32.
  • Initieringskod:

    • Kontrollera att aht.begin() anropas korrekt i setup()-funktionen:
    if (!aht.begin()) {
      Serial.println("Failed to find AHT10 chip");
      while (1) { delay(10); } // Stopper programmet, hvis initialisering fejler
    }

3. Felaktiga eller oväntade sensorvärden

Symtom:

  • Sensorvärden är inkonsekventa eller slumpmässiga.

Möjliga orsaker:

  • Felaktig sensorkalibrering.
  • Elektriskt brus/interferens.
  • Logikfel i databehandling.

Lösningar:

  • Kontrollera sensorns kalibrering:

    • AHT10 är normalt förkalibrerad, men se till att koden inte oavsiktligt ändrar kalibreringsdata.
  • Säkerställ korrekt datahantering:

    • Kontrollera att getEvent() används korrekt för att läsa data:
    sensors_event_t humidity_event;
    sensors_event_t temp_event;
    aht_humidity->getEvent(&humidity_event);
    aht_temp->getEvent(&temp_event);
    
    Serial.print("Temperature: ");
    Serial.print(temp_event.temperature);
    Serial.println(" °C");
    
    Serial.print("Humidity: ");
    Serial.print(humidity_event.relative_humidity);
    Serial.println(" % rH");

4. Serial Monitor visar inga data

Symtom:

  • Ingen utdata i Serial Monitor.
  • Utdatan stämmer inte överens med förväntad data.

Möjliga orsaker:

  • Felaktig baud rate inställning.
  • Serial output är inte initierad.
  • USB-kabel eller anslutning är defekt.

Lösningar:

  • Kontrollera baud rate:

    • Baud-hastigheten i Serial Monitor måste matcha värdet i Serial.begin().
    Serial.begin(115200);  // Sørg for at Serial Monitor også er sat til 115200 baud
     
    • Verifiera seriell initiering:

      • Se till att Serial.begin() anropas i setup():
      void setup() {
        Serial.begin(115200);
      }
      
  • Kontrollera kablar och anslutningar:

    • Prova en annan USB-kabel eller en annan port, eftersom vissa kablar endast stöder laddning och inte dataöverföring.

Felsökningstips

Använd Serial.print() för felsökning

  • Infoga Serial.print()-satser i koden för att följa exekveringsflödet och spåra variabler.

Granska felmeddelanden noggrant

  • Arduino IDE ger ofta precisa felbeskrivningar som kan hjälpa till att lokalisera problemet.

Kontrollera dokumentationen

  • Läs sensor-datasheets och bibliotekens dokumentation för att förstå korrekt användning och felsökning.

 


Lista över nödvändiga komponenter:

 


Sammanfattning

I den här lektionen har du lärt dig om de vanligaste problemen som kan uppstå vid programmering av ESP32 och användning av sensorer. Vi har täckt biblioteksfel, sensorinitiering, felaktiga avläsningar och Serial Monitor-problem.

Genom att använda en systematisk metod för felsökning kan du effektivt identifiera och lösa problem, så att din kod och hårdvara fungerar optimalt.

Kom ihåg: Felsökning är en iterativ process. Bli inte frustrerad – varje fel du löser för dig närmare ett framgångsrikt projekt! 

Lämna en kommentar

Observera att kommentarer måste godkännas innan de publiceras.