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>
- Se till att namnet i
-
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 }
- Kontrollera att
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");
- Kontrollera att
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); } - Se till att
- Baud-hastigheten 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 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:
![]() |
AHT10 Hög precision temperatur- och fuktighetssensor |
![]() |
TTGO T-Display ESP32 16MB med WiFi, Bluetooth och 1.1" färg LCD-skärm |
![]() |
Dupont kablar 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 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!


