FHEM Universalfernbedienung mit Wemos D1 Mini und MQTT

Begonnen von freakadings, 09 Januar 2018, 15:53:39

Vorheriges Thema - Nächstes Thema

freakadings

Moin!

Mir kam schon vor einiger Zeit die Idee eine Universalfernbedienung zu bauen, mit der ich diverse Befehle an FHEM schicken kann und FHEM dann irgendwas damit anfängt. Im Prinzip wie der "Nuimo interface"-Puck nur für deutlich weniger.

Vorweg: Ich habe keine Ahnung von Elektrotechnik :)


Die Idee der MQTT-MulitMode (Arbeitstitel, für Vorschläge bin ich offen...)


Hardware

- Wemos D1 Mini (~8€)
- SPI TFT ST7735S (nicht touch-LCD Display) (~10€)
- ein Drehgeber / Rotary Encoder (auf einem Breakoutboard, dass ich meiner Freundin aus dem Arduino-set-geklaut habe) (~3€)
- D1 Mini Battery-Shield (~8€)
- ein Akku (Dimension und damit Preis noch unklar)
- Induktionslade-Adapter, dass die Fernbedienung auf Induktionsladestationen geladen werden kann (~7€)

Erst dachte ich noch einen
- APDS-9960 (I2C Sensor für Gestik, Helligkeit, Farbe, und Abstand) (~6€)
zu verwenden, allerdings stellte sich (zumindest dieser) als eher so "meh" heraus, die Gesten wurden zwar fast immer richtig erkannt, aber durch (Kunststoff-)Glas hat er nicht funktioniert, zudem hatte ich für alle Komponenten hinterher einen Pin zu wenig am D1-Mini...


Gehäuse

Skizzen im Ahnang (Die Fotos hatte ich nur für mich gemacht, entschuldigt deshalb bitte, dass nur der Monitor abfotografiert wurde. Den PC habe ich derzeit nicht zu Verfügung.
Zur Verwirrung: Der zweite D1 im Modell soll das Battery-Shield sein.)

Alles soll in ein Gehäuse gepackt werden, das sowol optisch als auch mechanisch dem des NEST Thermostats ähnelt, da ich das Ding ziemlich schick finde.
Die geschätzten Abmessungen:
80mm Durchmesser
max. 35mm Höhe

Das Gehäuse wird zweiteilig:
Die Basisplatte (nicht auf den Skizzen) auf der die Hardware montiert wird und
der Drehring der eine Führungsnut hat, in die die Basisplatte greift.

Mechanik/Bedienung:
Der Drehring soll den Drehgeber entsprechend bewegen, vllt über einen Zahnring an der Innenseite?
Da die Drehgeber auch einen eingebauten Druck-taster haben, kann man also auch diesen Verwenden um zB im Menü eine Auswahl zu treffen.

Der untere Teil muss relativ schwer werden, dass sich nicht ständig das ganze Ding mitdreht, wenn es zb auf dem Tisch liegt und man etwas bedienen möchte und am Besten noch ein Anti-rutschpad haben :)


Software

Basics:
- WiFi. Klar sonst wäre es ja nicht sinnvoll einen 8266 basierten Controller zu nutzen ;)
- MQTT. Wie bereits erwähnt soll der D1 als MQTT-Device Infos an FHEM schicken können (und natürlich auch empfangen).
- OTA. Over the Air Updates wären

Die eigentliche "GUI":
- Text-/Bildmenü. Die derzeitige Überlegung ist es ein Menü in einer Baumstruktur durch Drehen hindurchscrollen zu können, bzw mit dem Drücken des Drehgebers, Menüpunkte auszuwählen. Zurück vllt mit einem Doppelklick o.Ä.
- Dann beim entsprechenden Gerät angekommen können dann durch drehen beispielsweise Zahlenwerte (Lautstärke, Thermostat, ...) hoch- und runter reguliert werden, oder Status gesetzt werden wie (play-pause, blink, open, ...)



Status (09.01.2018)

Funktioniert:

- Display lässt sich ansteuern nur mit folgender Konfiguration (warum weiß ich nicht)
[Display] -> [D1-Mini]

VCC -->  5V
GND -->  G
CS  -->  D2
Reset -->  D4
A0  -->  D3
SDA -->  D7
SCK -->  D5
LED  -->  3V3


Probleme:

- die Drehgeber-zählung springt, Kondensatoren (10 und 100µf getestet) brachten nur Verschlechterung.
Folgender Anschluss wurde getestet.
[Drehgeber-breakoutboard] -> [D1 Mini]

CLK -> D6 (gpio_12)
DT -> D7 (gpio_13)
SW -> nicht angeschlossen
GND -> G
+ -> 5V

vllt sollte ich einen ohne Breakoutboard verwenden?

- Hard Coding. Die Software würde so wohl funktionieren, nur das Problem wäre, dass man das alles Hard coden müsste und jedesmal wenn ein neues Gerät in FHEM eingebunden wird, das man gerne so steuern will, muss es Manuell per pc hinzugefügt werden. OTA macht es zwar komfortabler aber nicht unbedingt besser.


ToDo

Grob in dieser Reihenfolge:
- Die komplette Software.

- Die Stromversorgungshardware habe ich derzeit noch nicht getestet, aber auch weil ich mich nicht wirklich an das Thema Akku und Laufzeit herantraue. Ich wollte erst einmal die Kiste so zum laufen bringen und messen was sie an Strom verbraucht und hinterher schauen (bzw. euch fragen :D ) wie das dimensioniert werden muss.

- Gehäuse designen.



Natürlich kann es sein, dass es besser geeignete Entwicklerboards als den D1 dafür gibt, vllt ist er auch völlig ungeeignet. Das Projekt ist bis Dato noch nicht wirklich über das Brainstorming hinaus.
So, jetzt bin ich auf eure Meinungen, (konstruktive) Kritiken und Vorschläge gespannt. Natürlich dürft ihr mir auch gerne jederzeit helfen oder selbst das basteln anfangen. Wenn jemand aus der Nähe von Nürnberg kommt, kann man sich auch gerne mal treffen.
Vllt bekommen wir das Projekt ja zusammen gestemmt und jeder will bald sowas haben ;D

Beste Grüße,
Merlin

davedeluxe

Sehr interessant!

Ich bin gespannt wie es weiter geht.

JoWiemann

Hm, schöne Idee. Leider vermasselt der Stromhunger des ESP jede Usability. Oder Du lässt Dir noch eine induktive Ladeschale einfallen, auf der die Fernbedienung sich in der Nacht ausruht.


Gesendet von iPad mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

freakadings


davedeluxe


freakadings

Moin,
leider noch nicht, da mir fhem gefühlt 100 Mal abgeschmiert ist und ich es eben so oft neu aufsetzen müsste, hat das meine Motivation geschmälert an der Fernbedienung weiter zu basteln. Bzw am Drehgeber hatte ich mich noch Mal versucht, aber der will immer noch nicht und springt. Hätte jemand eine Idee für eine Alternative zu dem Ding? Evtl ist der, den ich habe auch nur im Eimer.
Für das Gehäuse steht aber inzwischen auch ein 3D Drucker bereit und wenn die Hitze hier in der Dachwohnung wieder nachlässt mache ich mich noch Mal Ran.

davedeluxe

Wenn du was gedruckt brauchst oder Hilfe beim Drucker kann ich dir gerne weiterhelfen.
Auch im Hochsommer ;)