Mehrere Arduinos im Haus (über Kabel) miteinander kommunizieren lassen

Hallo zusammen,

ich habe gerade mit der Sanierung meines Hauses begonnen. Nun möchte ich mindestens 1 Arduino pro Zimmer verbauen (verbaut in abgehängter Decke: Bewegungsmelder + Temperatur- und Feuchtesensor) oder als LED-Controller.

Die Werte (Bewegung, Feuchte und Temperatur) sollen alle X-Sekunden auf den BUS geschrieben werden oder ein entsprechendes Signal zum Ein- oder Ausschalten der LEDs sollte ebenfalls verarbeitet werden können.
Ein »Master« empfängt die Daten oder sendet entsprechende Anfragen, z. B. Licht in Raum x ein/aus (dies soll jetzt aber nicht das Thema sein).

Laut meiner Recherche wäre das mit RS485 umsetzbar (stimmt das?). Hier habe ich ein ähnliches Problem bzw. Lösung gefunden: https://forum.arduino.cc/t/rs-485-bidirectional-struct-capable-library/1017646


Zusammen gefasst:

Vielleicht kann mich jemand in meiner Annahme bestätigen oder ggf. korrigieren, sofern ich auf dem Holzweg bin.

Danke!
Gruß

Besser wäre, wenn du CAT-6 Kabel mit Unterputzdosen verlegst und einen Router mit PoE einbaust.

RS-485 ist zwar eine Bustechnologie, aber Sie sollten darüber nachdenken, ob Sie eine "Eigenbau"-Lösung in Ihrem Haus installieren möchten.

Für mein Haus verwende ich KNX, es gibt viele kompatible Lösungen.

RS485 wird funktionieren.
Ich würde das mit MODBUS machen
Aber bevor ich heute in jeden Raum ein RS485 lege, würde ich in jeden Raum eine LAN Doppeldose setzen.

Nein, durchaus nicht, allerdings gibt es Alternativen, die möglicherweise besser passen.

Besser abgeschirmtes Kabel. Netzwerkkabel auch älterer Spezifikation gibt es manchmal als günstige Restware.

Ja, auch CAN-Bus hat einen gewissen Reiz.

Hat leider nur eine UART in Hardware, die für Programmupdates benutzt wird. Mehr UARTs hat der leider etwas teuer gewordene mega2560 pro mini oder der auch ohne Funk zu verwendene ESP32. Der ESP32 enthält auch Hardware für den CAN-Bus, da wird dann noch ein TJA1050 CAN Bus Tranceiver Modul benötigt. Ob die RS485-Bibliothek mit dem ESP32 harmoniert, wäre zu testen.

Bei langen Kabeln kommt es zu merklichen Spannungabfällen, weshalb eine höhere Spannungsversorgung mit einem StepDown-Wandler je Raum hilfreich sein könnte.

Du hast die Qual der Wahl :slightly_smiling_face:

Danke für die zahlreichen Antworten!

Die Sensoren sollen alle in die abgehängte Decke montiert werden. Die Wände sind zum Teil schon fertig, daher ist das nicht mehr umsetzbar.

Habe mal beide Protokolle überflogen bzw. mich darin eingelesen (https://blog.protoneer.co.nz/wp-content/uploads/2014/03/artikel_20105_can-vs-rs485_e.pdf oder https://www.linkedin.com/advice/1/how-do-you-choose-between-modbus-can-bus?lang=de&originalSubdomain=de)

  • CAN-Bus wäre hier vermutlich die bessere Wahl, da Kollisionen von Haus aus berücksichtigt werden.
  • Übertragungsgeschwindigkeiten sind hier vernachlässigbar da es in Summe um 25 Räume geht die alle paar Minuten nach 2-3 Werten abgefragt werden
  • Sternförmig kann keiner der beiden angeschlossen werden

Sollte ich mich für MODBUS oder CAN-Bus entscheiden, wäre das zugegebenermaßen ein Pluspunkt, da ich zusätzlich noch 2 Leitungen für den "Rückweg" (Bustopologie) hätte.

Ich hatte mich deswegen für "Klingeldraht" entschieden, da ich hier doch einen größeren Querschnitt habe um ggf. kleine Verbraucher darüber zu betreiben..

Ich verwende ebenfalls KNX für die Licht und Jalousiesteuerung. Ich bin jedoch zu geizig mindestens 80€ pro Bewegungsmelder auszugeben. Zusätzlich kommt noch die Temperatur und Feuchtemessung, die ebenfalls in die doch sehr kostspieligen KNX Taster resultiert. Dies wollte ich mich meiner "Eigenbau" Lösung umgehen.

Eine Umsetzung mit TCP (und daraus auch POE) hatte ich mir noch überlegt. Aber da habe ich kosten technisch am Ende nichts gegenüber KNX gespart. Zusätzlich wäre da immer noch der "Eigenbau" Aufwand..
Mit einem ESP8266 oder ESP32 könnte man das ganze natürlich bequem per WiFi lösen.. allerdings geht das auf Kosten des Stromverbrauchs bzw. bei einem Verlust der W-Lan Verbindung funktioniert unter Umständen der Bewegungsmelder nicht mehr..
Ich bin daher prinzipiell offen für sämtliche Vorschläge.

GitHub - franckmarini/KnxDevice: Allow to turn your Arduino into a self-made KNX device using the hardware TPUART interface

Aber ich verstehe den Wert, eine eigene Lösung zu entwickeln (und diese dann zu warten).

1 Like

Die Siemens BCU liegt bereits auf meinem Schreibtisch.. :wink::+1:

Wenn du auch Funk in Betracht ziehst, lohnt es sich evtl. auch über ein NRF24L01+ Mesh nachzudenken.

Ich benutze ModbusTCP über WiFi mit ESP8266 und ESP32. Spart die Kabelage und vermeidet die "nur ein Client!"-Vorgabe von ModbusRTU, braucht aber jeweils eine lokale Stromversorgung. Klappt überwiegend gut, für WiFi-Ausfälle habe ich Fallbackmodi eingebaut. Kommt aber sehr selten vor.

Irgendwann will ich auf ModbusUDP umsteigen, wegen der kürzeren Turnaroundzeiten und der Broadcastmöglichkeit (mit Responses, nicht wie bei RTU mur Blindschüsse des Clients).

Wie kommst du da drauf?
Poe 5v -adapter ins Netz und ein w5500 Modul sind weitaus günstiger als 30 €

1 Like

Ich hatte bewußt ESP32 ohne Funk, also ohne WiFi vorgeschlagen, aber mit zweiter UART und CAN-Bus-Hardware. Zusätzlich mehr Speicher für Animationen und Programmupdate "over the air" (siehe OTA). Bei einem µC unter der Decke eventuell schön bequem, WiFi dann nur bei Bedarf, beispielsweise fünf Minuten nach Reset.

Ich möchte Dich zu nichts überreden, es sind nur Anregungen :slightly_smiling_face:

Wobei Du zu OTA schon WiFi brauchst.

Gruß Tommy

Ja, das sollte mein nachträglich geänderter und dadurch verschwurbelter Satz ausdrücken :blush:

Ein ESP32 kann beispielsweise per Kabel die Anweisung "WLAN ein" bekommen und sich dann mit dem vorhandenen WLAN verbinden oder einen Access Point öffnen. Darüber läßt sich dann ein neues Programm aufspielen.

Ich habe hier eine LED-Uhr hängen, die anfangs per OTA viele Programmversionen erhalten hat, weil mir irgendeine Kleinigkeit mißfallen hat. Inzwischen läuft sie still vor sich hin, korrigiert nur gelegendlich die Zeit per WWW.

Guter Hinweis, das hatte ich so nicht auf dem Schirm … was wäre denn die kostengünstigste (halbwegs fertig konfektionierte; gelötete) POE Lösung?
Ich habe hier das Olimex ESP32-POE IoT WiFi/BLE/Ethernet Dev Board (17,50 € Exkl. MwSt. zzgl. Versand) oder Olimex ESP32-POE-ISO IoT Development Board (24,30 € Exkl. MwSt. zzgl. Versand) inkl. galvanischer Trennung am Ethernet Port, gefunden.

Macht eine galvanische Trennung in einem separaten POE Netzwerk überhaupt Sinn? Entweder würden alle »Eigenbau Arduinos« in einem eigenen CAN-Bus oder eigenem POE Netz hängen …

Inkl. Steuern würde man da bei unter 20 € landen.

Ja, das hatte ich schon verstanden. Hatte mich wohl missverständlich ausgedrückt, als ich darauf Bezug nahm, um einen zusätzlichen Vorschlag einzubringen. :wink::v:

Gefällt mir auch sehr gut! Kann man das "over the air" komplett ohne eine Cloud etc. nutzen? Beim Überfliegen der OTA - Getting Started war mir das nicht so ersichtlich.


Auf Mikrocontroller.net gibt es eine schöne Auflistung sämtlicher Hausbus Umsetzungen. Vielleicht hilft, dass dem einen oder anderen weiter.

Ethernet ist von Hause aus Galvanisch getrennt! Ist Inhalt der Spezifikation.
Auch die POE Versorgung erfolgt über einen "Trenntrafo" auf jedem einzelnen Ethernet Shield.

Ja!

1 Like

den ESP32 bekommst auch mit Ethernet - hier in einer POE losen Variante habe ich das getestet:

https://werner.rothschopf.net/microcontroller/202401_esp32_wt32_eth01_en.htm

aber warum ist jetzt wieder Ethernet im Spiel? Oben schriebst du, dass eine LAN Verkabelung nicht mehr möglich sei.

Wie @combie schon schrieb, ja!

Du kannst Deinen Läppi mit dem ESP32 als Access Point (How to Set an ESP32 Access Point (AP) for Web Server) direkt verbinden. In der IDE wählst Du anstelle des COM-Ports die IP des ESP32. Ich mag diese Variante nicht so gerne, weil mein alter Läppi lieber das WLAN der Fritz!Box als Router auswählt.

Daher melde ich meine ESP32 lieber im WLAN der Fritz!Box an (Station), dann sehe ich die lokale IP in der IDE anstelle des COM-Ports. Dann kann ich beim Upload nebenbei im WWW surfen.

OTA funktioniert sowohl mit AP wie Station.

Meine LED-Animationen parametriere ich über eine HTML-Seite des ESP32. Sowas könnte ich mir im zweiten Schritt auch bei Dir vorstellen.

Nur Anregungen :slightly_smiling_face:

Da das Ladengeschäft auch einen super Support bietet, ist es eine klare Empfehlung da mal nachzuschauen :slight_smile:
(Nein, ich erhalte keine Berrys und habe kein affilate :slight_smile: )

Was mir gerade einfällt, die LED-Streifen benötigen eine Menge Leistung, also eine eigene Stromversorgung. Nix mit PoE oder dergleichen, mit 2,5 A bekommst Du nicht viel zum Leuchten.