43 lines
1.9 KiB
Markdown
43 lines
1.9 KiB
Markdown
# PS2014 Controller V1
|
|
|
|
Firmware fuer einen Wemos D1 mini (ESP8266) und einen 28BYJ-48 mit ULN2003 zur Steuerung der IKEA PS 2014 Lampe.
|
|
|
|
## V1-Umfang
|
|
|
|
- Nicht-blockierende relative Motorbewegungen mit AccelStepper
|
|
- Links, rechts, Stop, Not-Aus und 1/5/10 Umdrehungen
|
|
- WLAN mit persistenten Zugangsdaten und AP-Fallback
|
|
- Lokale Weboberflaeche in WLAN- und AP-Betrieb
|
|
- LittleFS-Konfiguration ohne Secrets im Repository
|
|
- ArduinoOTA und Web-Upload-Grundlage
|
|
- Optionale Endschalter-Richtungssperre
|
|
|
|
MQTT, Home Assistant, WLED, Homing und absolute Positionierung sind bewusst spaeteren Versionen vorbehalten.
|
|
|
|
## Hardware
|
|
|
|
- Wemos D1 mini / ESP8266
|
|
- 28BYJ-48, externe 5-V-Versorgung
|
|
- ULN2003-Treiber, gemeinsame Masse mit dem ESP8266
|
|
|
|
Details und Boot-Pin-Hinweise stehen in [HARDWARE.md](HARDWARE.md).
|
|
|
|
## Build und Upload
|
|
|
|
1. PlatformIO in VS Code installieren.
|
|
2. Projekt oeffnen.
|
|
3. `PlatformIO: Build` ausfuehren.
|
|
4. Seriell mit 115200 Baud verbinden.
|
|
5. Erstes Flash per USB: `PlatformIO: Upload`.
|
|
6. Spaeter OTA mit `upload_protocol = espota` und `upload_port = <IP>` ergaenzen.
|
|
|
|
Die lokale Umgebung dieses Projekts hatte beim Anlegen kein `pio`-Kommando im PATH; der Build muss daher in der PlatformIO-Erweiterung oder einer PlatformIO-Shell ausgefuehrt werden.
|
|
|
|
## Erster Start
|
|
|
|
Ohne gespeicherte SSID startet der Controller den AP `PS2014-Setup` mit dem Passwort `ps2014v1` unter `192.168.4.1`. Die Motorsteuerung bleibt dort verfuegbar. Die persistente Datei liegt nur im LittleFS des Controllers und wird nicht ins Git-Repository geschrieben.
|
|
|
|
## Sicherheit und Grenzen
|
|
|
|
Vor dem ersten mechanischen Test Motor frei laufen lassen und die Drehrichtung pruefen. Die Startwerte fuer Geschwindigkeit und Beschleunigung sind konservativ, aber keine mechanische Freigabe. Endschalter sind standardmaessig deaktiviert. D4/GPIO2 darf wegen des ESP8266-Bootstraps nicht beliebig beschaltet werden.
|