Kleine harte Nuß... Konzept und Vorschläge gesucht

Hallo,
heute morgen steht mein Freund auf der Matte, der bisher alles so passiv beobachtet hatte was ich so jemals gebastellt hatte.
Er hatt bereits was von mir mit ESP32 und Virtuino.

Pop, auf einmal möchte er dass ich was für seine Hütte mache.
dass so alles kombiniert was ich so kenne...

Gerne würde ich um eure konstruktiven Ideen und Gedanken dazu bitten.

Ausgangsbasis ist mein Wissen, dass ESP now, Blynk und Virtuino nicht jeweils gleichzeitig auf einem ESP32 oder 8266 laufen können( zumindest nicht sauber und ohne Trickserie) und ein Dyns DNS nicht gemietet werden soll.
Blynk für den kostenlosen Webzugriff steht und Virtuino für die tolle Visu.
ESP now, weil es einfach mega simnple und stabil ist.
Ein ESP32 zuwenig Anschlüsse und SChnisttelen für alles hat.

Alle Teilaufgaben kenne ich in und auswendig, aber nun müssen Sie kombiniert werden.

Was möchte er nun:

  1. ESP Now ( ---> 1x ESP32 als Receiver.... Anzahl n Sender)
    • 12x ESP01 + DHT22 melden Temperatur und %RH an einen ESP32 Empfänger
 -  5x    ESP01 + Sensorik  liefern Werte von Zysterne, Haus Hof etc....
 -  1x  Heizungswerte  mit RS232 und Max IC über 8266D1 einsammeln und 
           über ESP now senden
 -  1x  Hausbelüftungwerte mit RS232 über Max IC an 8266D1 einsammeln 
           und über Esp now senden
-   2x  Solarstati und Werte mit D1 8266 und RS232 Max IC an ESP now Host

( alles über WLAN, da keine Leitungen gelegt werden sollen, nur 5V an den Orten sind)

  1. die Werte von (1) werden an Blynk und Virtuino übergeben.
    a) 1x an ESP32 für Blynk und quasi kostenlose Websteuerung, ohne Abo ,
    mit einmaligen paar Euro invest.
    b) 1x an ESP32 für Virtuino und die beste grafische Visualisierung auf Handy und Tablets

  2. auf einem ESP32 mit Virtuino laufen bereits die Licht und Rollandensteuerung im Haus.
    Über Solid State Relais und 12V Schütz dem Heimnetz. Die Software und 5V und 12V
    Ansteuertechnik habe ich gemacht mit eigenen layouteten Platinen und in China ,
    gefertigten Platinen, die Installationen der 230V~ dann der Elektriker mit
    den SSR und Installationsschütz ( von wegen der Versicherung)... läuft alles tippi toppi.
    Alles sehr hochwertig und keine Basteleien( Soweit man dies beim ESP32 sagen kann)
    Auf meinem PCB für Virtuino habe ich keine Node ESP Module, sondern nur den
    ESP32 Chip mit meinen eigenen Layouts und I/Os.... I2C und RS232 und WLAN wären
    zur Kommunikation frei.

  3. Blynk Web Änderungen werden an den ESP32 Virtuino übergeben.
    Blynk zeigt jedoch auch wesentlich Virtuino Daten außer Haus.

... also im Haus ist der Virtuino ESP32 , quasi der Master ESP
.... am ESP32 Virtuino hängt noch ein SPI TFT und paar Taster, zur Viso ohne Handy
... Der ESP32 für Blynk erlaubt kostenlose Web Zugriffe für überall.
... die ESP Now Sensorik ist unbegrenzt erweiterbar.....

Das wären dann 3x ESP 32 , die untereinader kommunizieren müssen.
ESPnow ist ein eigenes Wlan Netz. ( .. Router unabhängig ..)
Blynk geht auf den Hausrouter (Hausnetz und dann ins Web)
Virtuino geht auf den HausRouter und bleibt im Hausnetz.

So,nun bin ich auf eure Ideen , Vorschläge gespannt.

Was zu sagen ist, dass der ESP32 mit Virtuino und allen Haus I/O schon Bestand ist.
und um alles andere erweitert werden soll.

Ich hatte gestern zufällig mit I2C experiementiert, leider zuerst mit 8266er, da diese so auf dem Tisch lagen. Als wenn ich das heute geahnt hätte :wink:

I2C ist sicherlich geeignet, mir gefällt aber nicht das ich nur mit Int und Arrays arbeiten kann.
und zuviele Werte zu rumschaufeln...unter den 3 ESP...

Lasst mal sacken, dass mache ich jetzt auch...

Ihr als aussenstehende hat bestimmt paar andere Gedanken als ich, da ist bestimmt was
gutes an Ideen dabei....

Also das Konzept ist nichts fix nur ein erster Gedanke.... vielleicht gibt es bessere.
Mit RS232 habe ich noch gar keine Erfahrung gemacht. Das wäre ggf. eine Möglichkeit
um zwischen Blnyk und Virtuino zu kommunizieren.
Allso ESPnow zu Virtuino I2C, Virtuino zu Blynk mit RS232 ?
Am liebstens alles mit Float (2 Komma Nachstellen, sieht einfach nur besser aus, wobei der Nutzen zwischen Int und float bei Temp und RH nicht gerade gross ist, es ist einfach more nice zum anschauen :wink:

Was meint ihr, was ist besser geeignet um viele Werte zwischen den ESPs auszutauschen ?
I2C, der Uart oder doch was auf Basis WLAN.

Was ich sagen muss, ist , dass ich eher hardwarelastig bin. Aber vieleicht gibt es eine
noch einfache Möglichkeit um zwischen den 2 ESP die am Hausnetz hängen auch Float Daten zwischen den 2 ESP über das Hausnetz auszutauschen. Stichwort UDP.... aber dazu bräuchte ich noch Hilfe, denn dazu habe ich nicht wirklich Verständniss.
Dann wäre ich bei I²C oder Uart zwischen ESP32(ESPNow) und ESP32(Virtuino)
und zwischen ESP32(Vituino) und ESP32(Blynk) mit UDP.. !?

Gruss

Was möchtest du denn noch hören/lesen ?
Deinem Text entnehme ich, dass alles schon festgelegt ist.

Wo genau möchtest du denn noch Tipps haben ?

... andere Gedanken, Lösungsvorschläge und Ideen, ist noch nichts fix, bis auf den
"ESP32 mit Virtuino" :slight_smile:

Hast Du die richtigen Freunde? :thinking:

Viel von dem, was Du schreibst, kenne oder verstehe ich nicht. Darum zäume ich mal das Pferd von hinten auf.

Das ist falsch, per I2C kannst Du alles übertragen, was sich in Bits ausdrücken läßt.
Leider ist I2C-Slave beim ESP32 vergessen worden, weshalb diese Schnittstelle wegfällt.

RS232 ist eine Punkt-zu-Punkt-Verbindung für zwei Teilnehmer.

Bei drei ESP32 benötigst Du einen Bus, da würde mir UART als RS485 oder CAN-Bus einfallen. Eigentlich für größere Entfernungen gedacht, funktionieren beide natürlich auch auf ein paar cm Abstand.
Beispiel in esp32can_basic.ino und UNO - Mega - Teensy mittels CAN-Bus verbinden

Ist das nicht auf sechs Teilnehmer begrenzt?

Bist du dir da sicher ?
Das wurde hier anders dargestellt.
Für den ESP8266 weiß ich es soweit, da ich es vor längerer Zeit selbst nicht zum Laufen bekommen habe. Am ESP32 habe ich es noch nicht getestet.

Nö, selbst habe ich es noch nicht probiert. Ich beziehe mich auf ESP32_I2C_Slave:

Right now, the I2C Slave functionality is not implemented in ESP32 Arduino Core. ... data must be packed with WirePacker before being sent ...

Der angebotene "workaround" sieht mir doch etwas holprig aus, weshalb ich ihn nur empfehlen möchte, wenn es unbedingt sein muß. In diesem Thema sehe ich aber keine Notwendigkeit dafür. Ist halt meine Einschätzung und Bewertung.

Ok, ich sehe das genau so. Ein ähnliches Workaround gibt es auch für den ESP8266. Das kommt für mich genau so wenig in Frage.
Somit auch von mir, keine Empfehlung.

Was die ESP NOW Teilnehmerzahl betrifft, habe ich hier etwas von 20 gelesen. Allerdings ist die tatsächliche Reichweite eingeschränkt, da die Teile direkt miteinander kommunizieren.

warum will man so was?
a) wenn ein ESP mittels TCP/IP zu Blynk kann, warum sollen das die anderen nicht auch können?

b) Wenn man schon TCP/IP hat (für den ESP der Blynk macht), warum braucht man dann ein anderes Protokoll für die anderen ESPs? Wenn man a) nicht will, dann schickt man halt mit den ESPs tcp/ip zum einen "Master" die Werte und der mach dann Blynk zu einem Server.

ESP now ist eine coole Sache, aber wenn ich eh schon ein Netzwerk mit tcp/ip habe, dann führe ich doch nicht noch einen Kommunikationslayer ein, der alles nur komplizierter macht.

In Getting Started with ESP-NOW (ESP32 with Arduino IDE) lese ich:

ESP-NOW technology also has the following limitations:

● Limited encrypted peers. 10 encrypted peers at the most are supported in Station mode; 6 at the most in SoftAP or SoftAP + Station mode;
● Multiple unencrypted peers are supported, however, their total number should be less than 20, including encrypted peers;
● Payload is limited to 250 bytes.

Also zumindest eine endliche und damit zu berücksichtigende Zahl.

Da stimmen ja zumindest die Zahlen schon überein. :wink:

Hallo zusammen,
ich danke euch für eure Meinungen und Tips.
CAN war das Zauberwort....an das hatte ich gar nicht mehr gedacht, obwohl es so nahe liegt.
Habe nun die 3 ESP32 mit Ihren CAN am laufen. So einfach , da die nur einen kleinen Tranceiver brauchen.

Top Tip ! Can !

Zum ESP32 Slave und den Software Workaround.
Ich hatte die Tage das mal am laufen , mit meinem Oszi und I²C Sniffer...
Der Software Workaround verliert teilweise die Daten, ist nicht sonderlich schlimm hier,
weil es nur paar Werte angezeigt werden, ohne Auswertung. Von der Sache aber nicht so toll.

Klar, beim nächsten I²C send und receive sind die Daten wieder richtig, aber ich sehe, das durch den mangelden Int , doch sporadisch Daten im Paket "verhackstümmelt" wurden.
Ergo --> I²C raus.... CAN rein

Da bist Du ja schnell aufs Pferd gekommen! Danke für die Rückmeldung :slightly_smiling_face:

...was so die Bastelkiste hergibt :slight_smile: