ESP8266 Nodemcu mit 4 I²C OLED 0,96" Displays (gleiche Adresse) und 2 DS18b20 (Wasserdicht mit Kabel 3m)

  • Ich habe eine "Temperaturanzeige" mit 4 gleichen OLED - Displays 0,96"" mit gleicher I²C-Adresse und einem Selbstgedruckten Gehäuse fertiggestellt.

    Einsatz für Temperaturmessung in 2 Aquarien


    Benötigte Bauteile:

    • ESP 8266 Nodemcu
    • 4x OLED - Display 0,96"" (gleiche I²C Adresse)
    • 1 x Multiplexer für bis zu 8 I²C Geräte
    • 2 x DS18b20 (Wasserdicht mit 3m Kabel)
    • Lochrasterplatine 70 x 50 mm
    • Lochrasterplatine 60 x 40 mm
    • div. Schraubklemmenblöcke und andere Kleinteile
    • Selbst gedrucktes (offenes) Gehäuse)


    Funktionen:

    • Anzeige des Datums
    • Anzeige der Uhrzeit
    • Anzeige Temperatur 1
    • Anzeige Temperatur 2
    • Wlan
    • OTA


                   


        


  • Warum hast du einen Multiplexer verwendet? Bei diesen Displays kann man doch auch die Adresse ändern, oder?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Warum hast du einen Multiplexer verwendet? Bei diesen Displays kann man doch auch die Adresse ändern, oder?

    Es sind aber nur zwei Adressen verfügbar. (0x78 oder 0x7A)

    Und das Umlöten ist nicht ganz einfach. (Habe ich bei zwei Displays aber auch schon gemacht.)

    Außerdem ist das so noch erweiterbar.


    //EDIT Adressen korrigiert

  • Franjo G

    Changed the title of the thread from “ESP8266 Nodemcu mit 4 I²C Displays (gleiche Adresse) und 2 DS18b20 (Wasserdicht mit Kabel 3m)” to “ESP8266 Nodemcu mit 4 I²C OLED 0,96" Displays (gleiche Adresse) und 2 DS18b20 (Wasserdicht mit Kabel 3m)”.
  • Ah, ich dachte, das sind, wie so oft, 3 Adressjumper, also 8 Adressen... aber tatsächlich sind das ja hier nur zwei Möglichkeiten.

    Jedenfalls gut, zu sehen dass das mit dem Multiplexer offenbar problemlos klappt.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Jedenfalls gut, zu sehen dass das mit dem Multiplexer offenbar problemlos klappt.

    Du kannst das sogar noch erweitern.

    Wenn du mehrere Multiplexer verwendest. kannst du das sogar auf bis zu 64 Geräte (8x8) (Sensoren...) erweitern.

  • Die Adresse 0x78 oder 0x7A taucht im Code nirgends auf - benutzt der Multiplexer eine Art Broadcastadresse, wenn nur ein Gerät an einem Kanal hängt. (Ich hab gelesen, dass man 4 Geräte an jeden Kanal hängen kann - insgesamt als 32 - dann werden die Adressen der Geräte bei der Initialisierung angegeben.)

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Die Adresse 0x78 oder 0x7A taucht im Code nirgends auf

    Die wird auch nicht benötigt.

    Der Multiplexer hat die Adresse 0x70. Alle I²C-Geräte, die am Multiplexer angeschlossen sind, werden von diesem erkannt und durchnummeriert von 0-7.

    und mit tcaselect (0) bis tcaselect (7) angesprochen.

    Die Adresse der angeschlossenen Devices spielt dabei keine Rolle.

    Die I²C-Pins des ESP (D1,D2) werden mit dem Ausgang vom Multiplexer.(sd und sc),

    und die Geräte (Displays) werden an die Eingänge (sd0,sc0 bis sd7,sc7) angeschlossen.

  • Der 9548A kann, so hab ich es gelesen, 4 Geräte pro Channel anschließen, wenn man die Geräteadressen verwendet. Mit 8 Multiplexern ließen sich also nicht nur 64, sondern bis zu 512 Geräte steuern (allerdings nur 64, wenn alle die gleiche Geräteadresse haben).

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • 4 Geräte pro Channel anschließen, wenn man die Geräteadressen verwendet.

    Wenn dem so ist, ok.

    Mit 8 Multiplexern ließen sich also nicht nur 64, sondern bis zu 512 Geräte steuern

    Ich weiß zwar nicht, wie du auf 512 kommst, aber für mich sind

    8 Channel x 4 = 32 / Multiplexer

    32 x 8 Multiplexer = 256

    (allerdings nur 64, wenn alle die gleiche Geräteadresse haben).

    Das ist korrekt


  • 32 x 8 Multiplexer = 256

    Oh, verrechnet, ich war im Geiste bei 8 statt 4 Geräte pro Channel.


    Andererseits fällt mir gerade auf, dass es technisch eigentlich keinen Grund gibt, warum nicht pro Channel 128 Geräte (7-Bit-I2C-Adresse) angesprochen werden können sollten. Insofern also eher 1024 pro Multiplexer (sofern man jeweils 128 Geräte mit unterschiedlichen Adressen hat - was praktisch sicher kaum gegeben ist). Mit 8 Multiplexern als theoretisch 8K Geräte. Da kann man eine Weile basteln. ;)

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!