Wemos D1 Mini Frimware zur Steuerung einer RGBW-LED-Lampe
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
gituser 9b9ff5671c pass webSocketServer to LEdManager to send messages 2週間前
.settings Device Discovery (mDSN/NDS) added 2週間前
.cproject Device Discovery (mDSN/NDS) added 2週間前
.gitignore Hide/show password 1ヶ月前
.project Device Discovery (mDSN/NDS) added 2週間前
.sproject LEDStripManager 1ヶ月前
Commands.h TimerManager status added 2週間前
ConfigManager.cpp TimerManager status added 2週間前
ConfigManager.h TimerManager status added 2週間前
HtmlPages.h color and brightness commands 1ヶ月前
LEDLamp.ino pass webSocketServer to LEdManager to send messages 2週間前
LEDModes.h all led modes 1ヶ月前
LEDStripManager.cpp pass webSocketServer to LEdManager to send messages 2週間前
LEDStripManager.h pass webSocketServer to LEdManager to send messages 2週間前
README.md README.md 1ヶ月前
States.h more modes 1ヶ月前
TimerManager.cpp TimerManager status added 2週間前
TimerManager.h TimerManager status added 2週間前
sloeber.ino.cpp pass webSocketServer to LEdManager to send messages 2週間前
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.