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.