ESP8266 mit OLED Display in Blinddeckel

Begonnen von tomster, 11 März 2016, 13:52:13

Vorheriges Thema - Nächstes Thema

tomster

--edit--

Damit man den aktuellen Stand des Projekts leichter findet, darf ich hier gleich am Anfang das GIT Repository vom Hauptentwickler wingfighter verlinken:
https://github.com/wingfighter/ESP8266_OLED_NHD-1.69-160128UGC3

Dennoch kommt man derzeit noch nicht umhin diesen Thread zumindest querzulesen, damit man versteht warum, wann, welche Änderungen erfolgt sind.

Ich habe unten stehend ein kurzes HowTo eingefügt.

--/edit--

Servus zusammen,

duch einige Denkanstösse in diversen Threads bin ich auf den Trichter gekommen ein Status-Display in mein Schalterprogramm (GIRA 55'er) zu integrieren.
Als Basis soll dabei ein ESP8266 dienen an den ein OLED-Display angeschlossen ist. FHEM soll dann Daten per WiFi an das Display schicken.
Vorweg gleich Eins: Ich bin elektronisch ein verhältnismäßig unbeleckter Laie, von daher mag sich auf dem Weg zum Ziel durchaus noch etwas ergeben, was man heutzutage neudeutsch als "Showstopper" bezeichnet. Hab auch zuvor noch nie etwas mit Arduino oder ESP gemacht. Andererseits: wenn ich etwas will, dann will ich ;-)

Zunächst habe ich mich auf die Suche nach einem Display gemacht, welches möglichst goß ist, aber trotzdem noch (mit PCB) in den Blindeckel passt. Das größte Display, das ich finden konnte hat eine Diagonale von 1.69" bei 160x128 Pixeln und ist zudem noch Full-Color:
http://www.newhavendisplay.com/nhd169160128ugc3-p-5603.html

Das Display hat einen SEPS525-Displaytreiber. Ich hab zwar noch keinen dezidierten Treiber-Sketch für den ESP gefunden, aber ich vertraue in meiner schier unendlichen Blauäugigkeit an eine irgendwie geartete Kompatibilität mit Arduino und/oder jemanden von Euch, der sowas schon gemacht hat, ohne es an die Große (Internet-)Glocke gehängt zu haben...

Auch wenn es noch himmelweit von einem funktionierenden Prototypen entfernt ist, hab ich mich schon Mal an die Arbeiten gemacht, die meinen Fähigkeiten am ehesten entsprechen für die ich jemanden kenne, der jemanden kennt, der...
Also hab ich kurzer Hand einen Spezl aufgetan der eine wunderbare Fräsbank hat und schon Mal in einen Blinddeckel einen Ausschnitt für das Dispay gefräst. Dummerweise passte aber die Platine des Displays um ein Büschel Laushaare nicht in den Deckel. Also haben wir zudem die Platine rundherum um ~1mm abgefräst. Nun passt sie.
Das Display baut ~2mm über die Platine auf. Das ist auch ungefähr die Materialdicke des Blinddeckels. Wenn dass zum Schluß sauber eingeklebt ist, wirkt es fast bündig. *freu*

Gedanklich versuche den Aufbau so niedrig zu halten, dass man den Blinddeckel mit den Platinchen ggfls. auch ohne vorhandene Dose direkt auf die Wand montieren kann. Als Stromversorgung soll ein Trafo in eine der darüberliegenden Steckdosen-/Schalterdosen hinter die entsprechenden Einsätze. Das wird zwar alles sauknapp und der Blinddeckel wird wohl auf das Rahmenblech geklebt werden müssen, aber vielleicht geht es.
Und wenn nicht? Dann fliegt eben eine Steckdose raus.

Einer der nächsten Schritte wird wohl sein, die Anbindung des ESP, wohl ein ESP8266-07 wegen einer möglichen externen Antenne, zu bewerkstelligen. Wenn hierzu jemand einen Ansatz hat, sowohl softwareseitig als auch eine hardwareseitig (vielleicht eine Trägerplatine gleich mit Temp-/ Feuchtesensor verbaut), nur her damit!
Natürlich auch mit allem Anderen, wie Ratschlägen, Kritik, etc.

Dies alles nur als kurze Vorabinformation. Und: mir eilt es überhaupt nicht. Lieber 5 Mal länger mit Überlegen verbracht, als sich die Arbeit 2 Mal gemacht.
Zudem ich in den nächsten Wochen leider viel im Ausland bin.

Für das tatsächliche Weiterbetreiben des Projekts wird natürlich keine Gewähr übernommen und der Rechtsweg ist wie immer ausgeschlossen. ;-)
Schönes Wochenende schon Mal,
Tom

-- Ein kleines HowTo: --

Wie die Verkablungen vorzunehmen ist, entnehmt ich bitte diesem Thread auf den Seiten 2ff.
Um die Firm-/ Software von wingfighter auf einen ESP8266, nodeMCU, Wemos D1 mini, etc. zu bekommen, verwende ich das Arduino IDE. Hier nun kurz die benötigten Schritte:

1. Arduino IDE runterladen:
Das Arduino IDE bekommt ihr hier: https://www.arduino.cc/en/Main/Software

2. Libraries nachinstallieren:

Arduino lagert einige Funktionen in sogenannte Libraries aus. Um den ESP8266 "nativ" aus dem IDE verwenden zu können, nutzt man einfach die Boardverwaltung. Dazu klickt ihr Datei -> Voreinstellungen und tragt unter "Zusätzliche Boardverwalter-URLs" den Link http://arduino.esp8266.com/package_esp8266com_index.json ein und bestätigt mit "OK". Nun einfach über Werkzeuge -> Board -> Boardverwalter die ESP8266-Library auswählen (vermutlich ganz unten) und installieren (das dauert ein bisschen). Ich habe V 2.1.0 installiert.

Nun könnt ihr unter Werkzeuge -> Board den von Euch verwendeten ESP auswählen.

Zusätzlich werden noch ein paar Libraries benötigt, die wir manuell nachladen und die jeweiligen Ordner in das libraries-Verzeichnis (z.B. C:\Programme\Arduino\libraries) von Arduino kopieren.
Benötigt werden:
1. Die Library für den von wingfighter verwendeten DHT-Sensor: https://github.com/adafruit/DHT-sensor-library
2. Die Time-Library: https://github.com/PaulStoffregen/Time
3. Die JSON-Library: https://github.com/bblanchon/ArduinoJson
4. Die MQTT-Library: https://github.com/knolleary/pubsubclient
5. Die OneWire-Library: https://github.com/PaulStoffregen/OneWire
6. Die "Dallas"-Linrary: https://github.com/milesburton/Arduino-Temperature-Control-Library

Diese Dateien einfach herunterladen, entpacken und in das library-Verzeichnis von Arduino kopieren.

3. Aktuelle Version aus dem GitHub Repository von wingfighter herunterladen:

In der ZIP-Datei ist ein Ordner ESP8266_Basic, den wir auch manuell in das library-Verzeichnis kopieren.

In den letzten Versionen der Firmware sind einige Dateien auf dem ESP in einen /data-Ordner ausgelagert. Man kann den Inhalt dieses Ordners über das Webinterface des ESPs aufspielen, oder aber ein nützliches Tool in das Arduino IDE integrieren. Dazu einfach das hier herunterladen und nach Anleitung in den tools-Ordner kopieren.

Zur Sicherheit noch ein kurzer Neustart des Arduino IDEs und wir können eigentlich loslegen.

Sketch öffnen, Kompilieren und hoffentlich keine Fehlermeldungen bekommen. Wenn alles fehlerfrei durchläuft, könnt ihr den Sketch auf den ESP hochladen. Danach ein über Werkzeuge -> ESP8266 Sketch Data Upload den data-Ordner kopieren. Das dauert wiederum ein bisschen.
Nach einem Neustart solltet ihr nun auf dem Display einige wechselnde "Screens" angezeigt bekommen. Damit ist der Großteil geschafft. Alles weitere dann im Thread oder später hier an dieser Stelle.

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

tomster

Nach einem eInk-Display hab ich mich auch umgeschaut, aber leider keines gefunden welches mit "vernünftiger" Auflösung in einem quadratischen oder 4:3-Format daherkommt.
Zudem brauch ich eines mit Backlight.

Rince

Hilft dir nicht direkt, aber schau mal vorbei:
https://forum.fhem.de/index.php/topic,50637.0.html
Ich hab da andere günstige Displays, die am ESP8266 gehen könnten.

Hab mir welche bestellt, die können wir ausprobieren, wenn du mit dem OLED nicht weiter kommst.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

tomster

Servus Rince,

Deinen Thread hab ich schon gelesen. Verfolge ich gespannt; wenn auch zugegebener Maßen rein aus technischem Interesse.
Die Adafruit-Displays sind nur leider recht teuer im Vergleich zu Ware vom Chinesen, wenn man eine Diagonale >= 1.5" möchte.

Aber Danke für Dein Angebot. Komme im OLED-Mißerfolgsfall auf Dich zurück!

Rince

Oh, in dem 3ten Post mit den vielen Links sind 2 für China Displays. 1 kostet <5€
Leider weicht der letzte Buchstabe hinter der Typenbezeichnung von dem (nicht lieferbarem) Adafruit Display ab. Von da her hoffe ich, dass es dennoch geht ohne es aber bis jetzt zu wissen ;)

Suche gerade eine Möglichkeit, ein Bild zu übertragen ohne dass es auf der SD Karte sein muss.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

wingfighter

Hallo Tomster

Das sieht mechanisch schon mal gut aus. Die Idee finde ich super.
Ich habe mal ein bisschen gegoogled.
Hier findest Du ein fertiges Test-Sketch für einen Arduino. http://www.newhavendisplay.com/app_notes/Arduino_OLED_160128.txt
Das wäre ja schon mal ein Anfang.
Und wenn das läuft, kann man das sicher recht unkompliziert auf einen ESP8266 mit ein paar externen Beinchen portieren.

Viele Grüße
wingfighter


tomster

#7
Servus Wingfighter,

Danke für den Link. Wie bereits erwähnt, hab ich bislang noch keinerlei Arduinoerfahrung - geschweige mit dem ESP.
In wie weit ein Arduino-Sketch mit dem ESP, respektive dem dann von mir gewählten "Unterbau" kompatibel ist, kann ich noch nicht abschätzen.
Der Wunsch wäre natürlich eine möglichst "zusammenklickbare" (= höchst-user DAU-freundliche) Firmware, OTA-updatefähig, mit Web-UI, etc.
Welche da am Besten geeignet ist, muss ich wohl erst selber probieren. Selbiges gilt für die Verdrahtung.
Bislang war für mich ein "Breadboard" begriffsseitig eher ein Brotzeitbrettl als etwas Technisches ;-)

Rince

Zum ESP:
Da habe ich ja auch grade eine Baustelle, bzw. 2.

Zum einen kannst du ESPeasy nehmen. Das ist sehr userfreundlich. Hat aber so gut wie keine Displayunterstützung bis jetzt. Nur Text.

Dann gäbe es die Arduino IDE

Und zu guter Letzt noch Sming.
Letzteres scheint ein aussichtsreicher Kandidat sein.
Angeblich kompatibel zu den Arduino Bibliotheken (jedenfalls wenn diese mit dem ESP kompatibel sind!), Webserver, FTP Server, Dateisystem
Für Sming gibt es übrigens ein Chocolatey Repository (choco install Sming -y)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Vergessen zu erwähnen:
Da wir ja nicht jeweils am Ende der Welt wohnen:
Meine Displays und die Stromversorgung sollte nach Ostern eintreffen.

Da können wir uns auch mal nen Samstag zusamnen setzen und gemeinsam basteln/programmieren.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

tomster

Nach Ostern klingt super! Meine Teile sind auch noch nicht alle da. Aber ich vermute der USB TTL kommt diese Woche.
Sming ist bislang auch mein theoretischer Favorit - hab ja "in Echt" noch nicht testen können.

Zudem bastel ich gerade noch an einer Platine, die man auf das Display aufstecken kann. Wenn sich das platzmäßig noch ausgeht, dann würde ich die zusammen mit einem anderen Platinenlayout an dem ich grad arbeite (ESP<->RS485) beim Chinesen machen lassen. Die brauchen dann eh ein paar Wochen.

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

wingfighter

Hallo tomster

Kurze Zwischen-Info:
Ich habe mir das Display mal bestellt. Ist heute gerade angekommen. Ich habe den verlinkten Test-Sketch auf einen Arduino-UNO geladen. Und nach ein bisschen Testen mit der Verdrahtung kommt jetzt das Testbild "Hallo World" mit einem schonen Regenbogenstreifen darunter. ;-)

Der nächste Schritt ist jetzt, das Sketch mal auf einem ESP8266-12E zu testen. Ich denke aber das wir ohne weiteres laufen, weil keine Bibliotheken eingebunden werden. Die Kommunikation über den I2C-Bus wird "von Hand" realisiert.

Ich werde berichten....

Gruß wingfighter


tomster

Uii, das klingt doch schon Mal sehr vielversprechend!
Ich bin noch zu nix weiter gekommen. Hab die letzten beiden Tage vergeblich versucht mit chocolatey das Sming-Paket auf meinem Win XP Rechner zu installieren. Muss mir wohl langsam doch Mal was Neueres zulegen...

Wie hast Du denn genau verdrahtet? Dann könnt ich wenigstens das schon Erledigen.