TuxCore Skillset

ESP32 / ESP8266 Debug Template

prompt debug Guld

prompts/debug/esp-debug-template.md

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:

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:

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:

Fix:

I2C device findes ikke

Mulige årsager:

Fix:

HTTP/API request fejler

Mulige årsager:

Fix:

Compile error

Mulige årsager:

Fix:

Serial Monitor viser volapyk

Mulige årsager:

Fix:

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

Tags

esp32, esp8266, arduino, ino, debug, wiring, i2c, wifi, api, serial, tuxcore
esp32 esp8266 arduino debug wiring i2c wifi