Lektionsmål
Målet med den här lektionen är att ge dig de färdigheter du behöver för att identifiera och lösa vanliga problem som kan uppstå när du skriver kod för ESP32 och arbetar med sensorer. Vi går igenom felsökningstekniker och lösningar på fel som rör kod, hårdvaruanslutningar och användning av bibliotek.
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. Felsökning är en avgörande färdighet som säkerställer att koden fungerar korrekt och att hårdvaran arbetar 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. Biblioteket hittas inte eller kompileringsfel
Symtom:
- Felmeddelanden som anger 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.
- Biblioteksversionen ä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 installerar du det via Library Manager.
-
Verifiera
#include-satser:- Se till att namnet i
#include-direktivet stämmer överens med det installerade biblioteket. Om du till exempel använder Adafruit AHT10ska koden innehålla:
#include <Adafruit_AHTX0.h>
- Se till att namnet i
-
Uppdatera bibliotek:
- Kontrollera om det finns uppdateringar i Library Manager och uppdatera både kort och bibliotek för att undvika kompatibilitetsproblem.
2. Sensorn 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 kabelanslutningar.
- Problem med strömförsörjningen.
- Sensormodulen är inte korrekt initierad.
Lösningar:
-
Kontrollera kabelanslutningarna:
- Se till att alla anslutningar mellan ESP32 och sensorn är korrekta.
- För AHT10-sensorn ska anslutningarna vara:
- VCC → 3.3V på ESP32
- GND → GND på ESP32
- SDA → GPIO21 (ESP32:s SDA-stift)
- SCL → GPIO22 (ESP32:s SCL-stift)
-
Kontrollera strömförsörjningen:
- Se till att sensorn får tillräckligt med ström. AHT10 drivs med 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 }
- Kontrollera att
3. Felaktiga eller oväntade sensorvärden
Symtom:
- Sensorvärdena är inkonsekventa eller slumpmässiga.
Möjliga orsaker:
- Felaktig sensorkalibrering.
- Elektriskt brus eller störningar.
- Logikfel i databehandlingen.
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");
- Kontrollera att
4. Serial Monitor visar inga data
Symtom:
- Ingen utmatning i Serial Monitor.
- Utmatningen stämmer inte överens med förväntade data.
Möjliga orsaker:
- Felaktig baudhastighets inställning.
- Seriell utmatning är inte initierad.
- USB-kabeln eller anslutningen är defekt.
Lösningar:
-
Kontrollera baudhastigheten:
- Baudhastigheten 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
-
Kontrollera den seriella initieringen:
- Se till att
Serial.begin()anropas i setup():
void setup() { Serial.begin(115200); } - Se till att
- Baudhastigheten i Serial Monitor måste matcha värdet i
-
Kontrollera kablar och anslutningar:
- Prova en annan USB-kabel eller en annan port eftersom vissa kablar bara 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.
Läs felmeddelanden noggrant
- Arduino IDE ger ofta exakta felbeskrivningar som kan hjälpa dig att hitta problemet.
Kontrollera dokumentationen
- Läs sensorernas datablad och bibliotekens dokumentation för att förstå korrekt användning och felsökning.
Lista över nödvändiga komponenter:
![]() |
AHT10 temperatur- och luftfuktighetsmätare med hög precision |
![]() |
TTGO T-Display ESP32 16MB med WiFi, Bluetooth och 1.1" LCD-färgskärm |
![]() |
Dupontkablar, 40 st |
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 gått igenom biblioteksfel, sensorinitiering, felaktiga avläsningar och problem med Serial Monitor.
Genom att använda ett systematiskt arbetssätt 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 lyckat projekt!
Om mätningarna: Stationen i den här serien mäter temperatur och relativ luftfuktighet med AHT10. Det är mätningar av inomhusklimatet, inte direkta mätningar av CO2, VOC eller partiklar. Seriens benämning ”luftkvalitetsövervakning” ska förstås med denna begränsning.


