Wemos D1 Mini Frimware zur Steuerung einer RGBW-LED-Lampe
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
gituser 8d27a33ca4 LEDStripManager 1 天前
.settings LEDStripManager 1 天前
.cproject LEDStripManager 1 天前
.gitignore Hide/show password 1周前
.project LEDStripManager 1 天前
.sproject LEDStripManager 1 天前
Commands.h Messages as JSON's with ArduinoJson lib 1周前
HtmlPages.h Messages as JSON's with ArduinoJson lib 1周前
LEDLamp.ino LEDStripManager 1 天前
LEDStripManager.cpp LEDStripManager 1 天前
LEDStripManager.h LEDStripManager 1 天前
README.md README.md 1周前
States.h New state machine 1周前
sloeber.ino.cpp LEDStripManager 1 天前
spec.d Initial commit 1周前

README.md

LEDLamp – ESP8266 WLAN LED Controller

Ü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

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

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:

80

WebSocket Server

Port:

81

WebSocket-Kommandos

LED einschalten

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

Antwort:

LED ON

LED ausschalten

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

Antwort:

LED OFF

WLAN-Konfiguration zurücksetzen

{
  "cmd": "RESET_WIFI_CFG"
}

Antwort:

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

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

EEPROM-Speicher

Folgende Daten werden dauerhaft gespeichert:

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:

LOLIN(WEMOS) D1 R2 & mini

Empfohlene Einstellungen:

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.