Energie-
Verbrauch
Bewegungs-
melder
ioBroker-DHT22
ioBroker-
Laufschrift
ioBroker LED-
Thermometer
ioBroker-OLED
ioBroker
Multi-OLEDs
ioBroker
Mini-Mülltonne
Ball on Plate
Sonstige
Basteleien
ioBroker Multi-OLEDs | |||||||||||||||||||||
(Ansteuerung via MQTT, hier speziell für ioBroker-Anwender) 17.01.2022
| |||||||||||||||||||||
Beispiel: Anzeige-Tafel für Solarthermie-Anlage mit mehreren 0.91" OLEDs: ( autark zur bereits vorhandenen ioBroker VIS-Anzeige ) ![]() Einleitung: Hier möchte ich zeigen, wie man an einen WEMOS D1 mini (oder NodeMCU) mehrere I²C-Komponenten anschließen kann . Ich habe dazu mehrere OLEDs ( 0.91", 128x32, SSD1306 )verwendet. An sich ist der Anschluß mehrerer I²C-Komponenten ( z.B. OLEDS, Temp-Sensoren, etc. ) an den I²C--Bus unproblematisch, allerdings gibt es Probleme, wenn diese Komponenten die gleiche I²C-Adresse verwenden. Bei den meisten OLEDs kann man zwischen 2 Adressen ( i.d.R. 0x3C, 0x3D ) wählen, die per Jumper, oder Lötbrücke einstellbar sind. Meine 0.91"-OLEDs verwenden jedoch alle die gleiche I²C-Adresse ( 0x3C) und diese ist auch nicht änderbar. Abhilfe schafft hier ein sog. I²C-Multiplexer, der nacheinander die OLEDs ansteuert. Mit anderen Worten: Die OLEDs haben zwar alle die gleiche Adresse, da diese aber nacheinander angesteuert werden, ist immer nur jeweils 1 OLED aktiv. Bei dem Multiplexer handelt es sich um den TCA 9548A, der seinerseits die Adresse 0x70 am I²C-Bus besitzt. An den Ausgängen dieses Multiplexers kann man insgesamt 8 I²C-Komponeten anschließen. An die Ausgänge könnte man auch wiederum weitere Multiplexer anschließen, d.h. die Multiplexer kaskadieren. Das habe ich aber nicht getestet. Schaltplan und Testaufbau: Hier also mein Schaltplan und ein erster Testaufbau:
Lochraster-Platine und mechanischer Aufbau: Die Anzeigetafel, auf der die Temperaturen unserer Solarthermie-Anlage dargestellt werden, sollte in einen vorhandenen IKEA-Bilderrahmen eingebaut werden. Dazu habe ich die Komponeten auf eine Lochraster-Platine gelötet und mit dem 3D-Drucker ein enspr. Gehäuse ausgedruckt.
Die Positionen der einzelnen OLEDs habe ich ausgemessen und anschl. mit CorelDraw ein maßstabsgerechtes Anlagen-Schema gezeichnet und dieses in der entspr. Größe (ca. 13x18 cm ) auf Fotopapier ausgedruckt. Die hellgrünen Flächen in der Papier-Schablone wurden mit einem Skalpell ausgeschnitten, damit die Werte der darunter liegenden OLEDs sichtbar werden:
Software: Man sollte sich in der Programmierung von Micro-Controllern via Arduino-IDE etwas auskennen, sodaß ich auf "Standard-Sachen", wie z.B. das Einbinden von libraries (Bibliotheken) hier nicht weiter eingehen möchte. Der Vollständigkeit halber, in diesen Sketch werden folgende libraries eingebunden: #include <Arduino.h> #include <U8g2lib.h> #include <Wire.h> #include <ESP8266WiFi.h> #include <PubSubClient.h>> #include <ArduinoOTA.h> Die ioBroker-Objekte (neben weiteren hier nicht benötigten) unserer Solarthermie-Anlage liegen im Zweig "javascript.0.Solarparser":
Diese werden via MQTT im Arduino-Sketch entspr. "abgegriffen": (ich muß hier mit separaten Topics arbeiten, da jeder Topic (s)einem bestimmten OLEd zugewiesen wird.)
Dies ist nur ein grober Überblick, was im Sketch passiert, schaut es euch im ################################################################ Arduino-Sketch multi-oled.ino ################################################################ am besten selbst an. Abschließend noch ein paar Fotos, wie die Anzeige-Tafel in den anfangs erwähnten IKEA-Bilderrahmen eingebaut wurde: (Anklicken zum Vergrößern)
|