Kaynağa Gözat

README.md

master
gituser 1 hafta önce
ebeveyn
işleme
39c6315d01
2 değiştirilmiş dosya ile 251 ekleme ve 2 silme
  1. 1
    0
      .settings/org.eclipse.core.resources.prefs
  2. 250
    2
      README.md

+ 1
- 0
.settings/org.eclipse.core.resources.prefs Dosyayı Görüntüle

@@ -1,3 +1,4 @@
eclipse.preferences.version=1
encoding/HtmlPages.h=UTF-8
encoding/LEDLamp.ino=UTF-8
encoding/README.md=UTF-8

+ 250
- 2
README.md Dosyayı Görüntüle

@@ -1,3 +1,251 @@
# LEDLamp
# LEDLamp – ESP8266 WLAN LED Controller

Wemos D1 Mini Frimware zur Steuerung einer RGBW-LED-Lampe
## Übersicht

**LEDLamp** ist ein ESP8266-Projekt für den Wemos D1 Mini, das eine integrierte LED über eine Weboberfläche und WebSockets steuert.

Das Gerät arbeitet in zwei Modi:

1. **Access Point (AP) Modus**

* Erstkonfiguration des WLANs
* Captive Portal für die WLAN-Einrichtung
* Speicherung der Zugangsdaten im EEPROM

2. **Station (STA) Modus**

* Verbindung mit dem konfigurierten WLAN
* Bereitstellung einer Steuerungs-Webseite
* Echtzeit-Kommunikation über WebSockets

---

## Funktionen

* WLAN-Konfiguration über Captive Portal
* Speicherung der WLAN-Daten im EEPROM
* Automatische Wiederverbindung bei WLAN-Verlust
* Steuerung der integrierten LED
* WebSocket-basierte Echtzeitkommunikation
* Zurücksetzen der WLAN-Konfiguration per WebSocket-Befehl
* Zustandsbasierte Anwendung (State Machine)

---

## Hardware

### Unterstützte Hardware

* Wemos D1 Mini (ESP8266)
* Andere ESP8266-Boards (ggf. Anpassung des LED-Pins erforderlich)

### Verwendeter Pin

| Funktion | Pin |
| ----------- | ------------------------ |
| Interne LED | LED_BUILTIN (D4 / GPIO2) |

---

## Verwendete Bibliotheken

* ESP8266WebServer
* WebSocketsServer
* EEPROM
* DNSServer
* ArduinoJson

---

## Projektstruktur

```text
LEDLamp.ino
├── States.h
├── Commands.h
├── HtmlPages.h
└── weitere Projektdateien
```

---

## Erster Start

Beim ersten Start sind keine WLAN-Daten gespeichert.

Das Gerät startet deshalb automatisch im Access-Point-Modus.

### Access Point

```text
SSID: Wemos_Setup
Passwort: admin123
```

### Einrichtung

1. Mit dem WLAN `Wemos_Setup` verbinden.
2. Browser öffnen.
3. Captive Portal erscheint automatisch.
4. Heim-WLAN auswählen bzw. eingeben.
5. Zugangsdaten speichern.
6. Das Gerät startet automatisch neu.
7. Anschließend verbindet sich der ESP mit dem konfigurierten WLAN.

---

## Netzwerkdienste

### HTTP Server

Port:

```text
80
```

### WebSocket Server

Port:

```text
81
```

---

## WebSocket-Kommandos

### LED einschalten

```json
{
"cmd": "SWITCH_LED",
"val": "on"
}
```

Antwort:

```text
LED ON
```

---

### LED ausschalten

```json
{
"cmd": "SWITCH_LED",
"val": "off"
}
```

Antwort:

```text
LED OFF
```

---

### WLAN-Konfiguration zurücksetzen

```json
{
"cmd": "RESET_WIFI_CFG"
}
```

Antwort:

```text
Wifi_Reset_Success
```

Danach wird das Gerät automatisch neu gestartet und kehrt in den AP-Modus zurück.

---

## Zustandsmaschine

Die Anwendung verwendet folgende Zustände:

| Zustand | Beschreibung |
| ---------------- | ----------------------------------- |
| STATE_BOOT | Initialisierung |
| STATE_CONNECTING | Verbindung mit WLAN wird aufgebaut |
| STATE_AP_MODE | Access Point + Captive Portal aktiv |
| STATE_STA_MODE | Normalbetrieb im WLAN |
| STATE_ERROR | Fehlerzustand |

---

## Ablauf

```text
BOOT
├─ WLAN-Konfiguration vorhanden?
├─ Nein
│ └─ AP_MODE
└─ Ja
└─ CONNECTING
├─ Erfolgreich
│ └─ STA_MODE
└─ Timeout
└─ AP_MODE
```

---

## EEPROM-Speicher

Folgende Daten werden dauerhaft gespeichert:

```cpp
struct Config {
char ssid[32];
char pass[64];
bool valid;
};
```

---

## Sicherheitshinweise

* Das Standard-AP-Passwort sollte für produktive Anwendungen geändert werden.
* WLAN-Zugangsdaten werden unverschlüsselt im EEPROM gespeichert.
* WebSocket-Kommunikation erfolgt ohne Authentifizierung.

---

## Kompilieren

### Arduino IDE

Board:

```text
LOLIN(WEMOS) D1 R2 & mini
```

Empfohlene Einstellungen:

```text
CPU Frequency: 80 MHz
Flash Size: 4MB
Upload Speed: 921600
```

---

## Lizenz

Dieses Projekt kann frei für private und nicht-kommerzielle Zwecke verwendet und angepasst werden.

Loading…
İptal
Kaydet