Wemos D1 Mini Frimware zur Steuerung einer RGBW-LED-Lampe
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
gituser 39c6315d01 README.md 1周前
.settings README.md 1周前
.cproject Messages as JSON's with ArduinoJson lib 1周前
.gitignore Hide/show password 1周前
.project Messages as JSON's with ArduinoJson lib 1周前
.sproject reset button and styling 1周前
Commands.h Messages as JSON's with ArduinoJson lib 1周前
HtmlPages.h Messages as JSON's with ArduinoJson lib 1周前
LEDLamp.ino Messages as JSON's with ArduinoJson lib 1周前
README.md README.md 1周前
States.h New state machine 1周前
sloeber.ino.cpp Messages as JSON's with ArduinoJson lib 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.