ESP32 / ESP8266 Debug Template
Kategori
debug
Status
Guld
Bruges til
Denne prompt bruges når TuxCore skal fejlfinde ESP32/ESP8266 Arduino .ino projekter.
Den er god til:
- ESP forbinder ikke til WiFi
- I2C sensor findes ikke
- PN532 virker ikke
- GPS giver ingen data
- Kompas/IMU giver forkerte værdier
- API/HTTP request fejler
- Board kompilerer ikke
- Serial Monitor viser mærkelige data
- Pin mapping er forkert
- ESP32/ESP8266 board mismatch
Prompt
$esp $debug
Jeg har et ESP32/ESP8266 problem.
## Board
[ESP32 / ESP8266 / NodeMCU / ESP32-C6 / andet]
## Problem
[Beskriv hvad der ikke virker]
## Wiring / pin mapping
[indsæt hvilke pins der er forbundet til hvad]
## Serial Monitor output
[indsæt Serial Monitor output]
## Kode
[indsæt relevant .ino kode]
## Biblioteker
[indsæt libraries hvis kendt]
## Integration
- WiFi: [ja/nej]
- API/HTTP: [ja/nej]
- Home Assistant: [ja/nej]
- MQTT: [ja/nej - undgå hvis API ønskes]
- Sensor/modul: [PN532 / NEO-6M / HMC5883L / GY-91 / TFT / andet]
## Det jeg vil have
Svar med:
1. Hvad fejlen sandsynligvis skyldes.
2. Wiring/pin checks.
3. Library/board checks.
4. Serial Monitor test.
5. Minimal test sketch hvis relevant.
6. Præcis rettelse.
7. Næste testtrin.
Regler:
- Brug Arduino `.ino`, ikke ESPHome.
- Undgå MQTT hvis API/webhook ønskes.
- Brug dansk forklaring.
- Gør kode copy/paste-klar.
- Vis pin mapping tydeligt.
Eksempel på brug
$esp $debug
Min ESP8266 kan ikke finde mit HMC5883L kompas på I2C.
Jeg bruger D1 som SCL og D2 som SDA.
Her er Serial output og min kode.
Forventet output
Et godt svar bør indeholde:
- Sandsynlig årsag
- Pin/wiring check
- Board-specifik forskel mellem ESP32 og ESP8266
- Minimal testkode
- Serial Monitor trin
- API/WiFi test hvis relevant
Standard debug-trin
1. Tjek board
I Arduino IDE:
Tools → Board
Tjek at korrekt board er valgt.
2. Tjek baudrate
Standard:
Serial.begin(115200);
Serial Monitor skal også stå til:
115200 baud
3. Tjek strøm og GND
Alle moduler skal have:
VCC korrekt spænding
GND fælles med ESP
SDA/SCL eller SPI pins korrekt
4. Kør I2C scanner
#include <Wire.h>
#define I2C_SDA 21
#define I2C_SCL 22
void setup() {
Serial.begin(115200);
delay(1000);
Wire.begin(I2C_SDA, I2C_SCL);
Serial.println("Scanning I2C...");
byte count = 0;
for (byte address = 1; address < 127; address++) {
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at 0x");
if (address < 16) Serial.print("0");
Serial.println(address, HEX);
count++;
}
}
if (count == 0) {
Serial.println("No I2C devices found");
}
}
void loop() {
}
For ESP8266/NodeMCU bruges typisk:
#define I2C_SDA D2
#define I2C_SCL D1
Typiske pin mappings
ESP32
GPIO21 = SDA
GPIO22 = SCL
GPIO18 = SPI SCK
GPIO19 = SPI MISO
GPIO23 = SPI MOSI
GPIO5 = SPI CS
GPIO2 = onboard LED
ESP8266 / NodeMCU
D1 = GPIO5 = SCL
D2 = GPIO4 = SDA
D5 = GPIO14 = SCK
D6 = GPIO12 = MISO
D7 = GPIO13 = MOSI
D8 = GPIO15 = CS
Typiske fejl
WiFi forbinder ikke
Mulige årsager:
- Forkert SSID/password
- ESP8266 understøtter kun 2.4 GHz
- Dårligt signal
- Forkert WiFi mode
- Specialtegn i credentials
Fix:
- Brug 2.4 GHz
- Print WiFi status
- Test tæt på router
- Tjek credentials
I2C device findes ikke
Mulige årsager:
- SDA/SCL byttet
- Forkert board pin mapping
- Manglende fælles GND
- Forkert spænding
- Sensor bruger anden adresse
- Defekt ledning/modul
Fix:
- Kør I2C scanner
- Tjek wiring
- Tjek 3.3V/5V kompatibilitet
- Prøv kortere ledninger
HTTP/API request fejler
Mulige årsager:
- ESP er ikke på WiFi
- Forkert endpoint
- Server kan ikke nås fra ESP-netværket
- HTTPS/certifikatproblem
- API returnerer fejl
- Firewall blokerer
Fix:
- Print HTTP statuskode
- Print response body
- Test endpoint fra browser
- Brug HTTP lokalt ved test
- Tjek IP og port
Compile error
Mulige årsager:
- Forkert board valgt
- Forkert library
- ESP32-kode bruges på ESP8266
- Manglende include
- Forkert class/navn i library
Fix:
- Vælg korrekt board
- Installer library via Library Manager
- Brug board-specifik kode
- Del hele compile-fejlen
Serial Monitor viser volapyk
Mulige årsager:
- Forkert baudrate
- ESP resetter hele tiden
- Forkert USB-kabel
- Strømproblem
Fix:
- Match baudrate
- Prøv 115200
- Prøv andet kabel
- Tjek strømforsyning
Minimal WiFi test
#include <Arduino.h>
#include <WiFi.h>
const char* WIFI_SSID = "CHANGE_ME";
const char* WIFI_PASSWORD = "CHANGE_ME";
void setup() {
Serial.begin(115200);
delay(1000);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting");
unsigned long start = millis();
while (WiFi.status() != WL_CONNECTED && millis() - start < 20000) {
Serial.print(".");
delay(500);
}
Serial.println();
if (WiFi.status() == WL_CONNECTED) {
Serial.print("Connected. IP: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("WiFi failed.");
}
}
void loop() {
}
For ESP8266 skift include til:
#include <ESP8266WiFi.h>
Sikkerhedsregler
- Del ikke WiFi-passwords i repo eller chat.
- Del ikke API tokens.
- Print ikke secrets i Serial Monitor.
- Brug lokalnet/API/webhook fremfor MQTT når brugeren ønsker det.
- Eksponér ikke ESP direkte mod internettet uden god grund.
Tags
esp32, esp8266, arduino, ino, debug, wiring, i2c, wifi, api, serial, tuxcore