Bus Alternative

Hallo Arduino Gemeinde,

Ausgangssituation:

Ich will 8 Fenster oder Türen mit Reedkontakte über eine Busleitung (sollte ca.40m lange sein) überwachen und in einem Display (Display im Gehäuse mit dem Arduino, also kein Problem) deren Status ausgeben.

Ich hatte das ganze schon mal mit I²C gebaut, ich bräuchte ne brauchbare Alternative !?

Bin dankbar um jede Info!

Hi,

was genau ist jetzt deine Frage? Brauchst Du Programmcode der Reedkontakte üerwacht oder eine Frage zur Hardware?

Wie kommunizieren denn die Reed Kontakte? Welches Bussystem läuft da denn?

Hallo,

ich brauche Hardware und dann halt auch noch etwas Starthilfe mit der Software.

Aber die Reedkontakte sollen an einem Bus hängen .... nicht direkt am Arduino.

Ich such dafür ja das passende Bussystem.

Ok, jetzt wird es etwas klarer. Was spricht enn gegen eine Funklösung auf RFM12 Basis mit Attiny84? Oder jeenodes? Ist zwar kein Bussystem, läuft aber sehr zuverlässig bei mir. Ich habe so 12 Thermometer im und am Hasu verteilt, messe S0 Bus so und den Ölbrenner.

Was spricht außer dem Preis gegen ein 9-adriges Flachbandkabel ?

Auch ich bin für ein Kabel der am Kontakt des Sensors angeschlossen ist und von Arduino ausgewertet wird. Ansonsten falls drahtlos die Sensoren einer Drahtlosalarmanlage. Am billigsten, einfachsten und zuverlässigsten mit der richtigen Zentrale. Grüße Uwe

Hallo,

danke für die Ideen, aber Flachbandkabel und Funk scheiden leider aus .... :~

Gibts ne Möglichkeit:

Arduino mit I²C Ausgang -------- |Konverter| ------- Busssystem----------- |Konverter|------- I²C IC

Hat jemand vllt. noch ne andere Idee ?

Dann beschreib mal genau Deine Aufgabenstellung ansonsten können wir nur raten. Alternatvie wäre (RS232), RS485 der RS422. Grüße Uwe

Hallo Uwe,

also die Ausgangssituation ist wie oben schon beschrieben:

Ich will 8 Fenster oder Türen mit Reedkontakte über eine Busleitung (sollte ca.40m lange sein)
überwachen und in einem Display (Display im Gehäuse mit dem Arduino, also kein Problem) deren Status ausgeben.

Bin offne für jeden Vorschlag für ein Bussystem

Was spricht denn gegen I2C?

guntherb: Was spricht denn gegen I2C?

Die Länge des Kabels. Grüße Uwe

Aufgabenstellung: Es sind 8 Fenster oder Türen mit Reedkontakte über eine 40 Meter lange Busleitung zu überwachen.

Lösung:

9 oder 10 pol. Flachbandkabel. Name Parallelbus. -> gelöst

Man nimmt daher ein 10 poliges Flachbandkabel und kann dann mit entsprechenden "Crimpbuchsen" in Schneid und Klemmtechnik die einzelnen Stationen abgreifen.

Die einzelnen Signale werden auf 8 Portpins gelegt und abgefragt. -> gelöst

Display im Gehäuse mit dem Arduino, also kein Problem, hab ich schon gelöst -> gelöst

Habe freie Auswahl welchen Bus ich nehme! -> gelöst (Parallelbus)

Software: Kein Problem. Vorteile der Schaltung: Kostengünstig, störunanfällig, wenige Bauteile und einfach gehalten.

Somit habe ich dargestellt dass die komplette Aufgabenstellung damit gelöst werden kann. Aufgrund der Aufgabenstellung gibt es keine Zweifel an der Richtigkeit meiner gemachten Aussagen.

Natürlich kann man auch probieren über ein serielles System mit vielen teuren Bauteilen ein einzigartiges Protokoll zu generieren um einen anderen Bus zu realisieren. Das ist aber nicht wirtschaftlich bei dieser Aufgabenstellung und wiederspricht meiner Logik.

Bitte nicht böse sein aber ich bin da relativ stur, da in der Praxis eben einfache, störunanfällige und günstige Schaltungen benötigt werden. ;) :)

Für wen brauchst Du das denn ? Gibt es einen Lehrkörper der das von Dir erwartet oder handelt es sich um ein sonstigens Schulprojekt ? Ich denke Du hast uns ziemlich neugierig gemacht. (Ich bin schon über 30 Jahre aus der Schule raus und freue mich immer wieder, wenn ich davon hören kann, wie das heutzutage gemacht wird) ... werden soll :D

Hallo,
Eine ganz andere Ide,
Wie währe es mit Reedkontakten und jeweils einem Widerstand im binärem Sytem zur überbrückung.

also 100Ohm am Ersten 200Ohm am Zweiten 400Ohm am Dritten und so fort, dann könnte man mit einer Widerstandsmessung die jeweils offenen Kontakte bestimmen.
Auch eine offene Leitung und Kurzschluß lassen sich so feststellen.

Karl

Realizer: Für wen brauchst Du das denn ? Gibt es einen Lehrkörper der das von Dir erwartet oder handelt es sich um ein sonstigens Schulprojekt ? Ich denke Du hast uns ziemlich neugierig gemacht. (Ich bin schon über 30 Jahre aus der Schule raus und freue mich immer wieder, wenn ich davon hören kann, wie das heutzutage gemacht wird) ... werden soll :D

Hallo,

ich brauch das für mein Wochenendhaus als Eigenbaualarmanlage, wollt es mit nem Bus machen das ich relativ einfach erweitern kann.

Für den Anfang will ich die 6 Fenster und 2 Türen überwachen. Da Scheint der Parallel Bus aber leider schnell an die Grenze zu stoßen !?

Ideal wäre das ich den Bus bis auf 100m erweitern kann...

@Arduinoianer, warum hast Du das so denn nicht gleich gesagt? :)

Denkbar wäre auch soetwas wie eine Tastaturmatrix. Der Nachteil wäre dabei aber, es dürfte zur gleichen Zeit nur ein einzelner Kontakt betätigt sein. Zumindest dann, wenn man wissen will welcher Kontakt betätigt ist. Davon gehe ich jetzt einfach mal aus.

Mit I2C habe ich noch keine Erfahrungen gesammelt. Aber wäre es vielleicht möglich das I2C derart abzuwandeln, damit es über eine größere Reichweite funktioniert ? Langsamer und Stromgesteuert ? (ist jetzt mal nur so eine Idee)

Edit: Die Idee von OE1KLA ist auch nicht schlecht. Damit kann man je nach Anzahl der Bits viele verschiedene Kombinationsmöglichkeiten realisieren. Allerdings muss man die Anlage bei diesen Leitungslängen sehr gut abgleichen.

AlSo bei deiner Konstellation und Wunsch eines Buses. Bleibt dir ja nur die. RS485 du brauchst an jedem Kontakt dann mindestens einen arduinoattiny25 und eine RS485 wandler wie den Max 485. Dazu braucht jeder Slave die 5V Und zwei Datenleitungen für Die Schnittstelle. Protokoll mit adressierung der Slaves damit die die Daten auch ankommen. Die Schnittstelle lässt sich perfekt über die Software serial handeln

Gruß Der Dani

Hi,

ist zwar mein erster Post, aber ich lese hier schon etliche Monate mit und habe ähnliches vor. Da ich wirklich extrem viel hier im Forum gelernt habe (dafür erst mal meinen Dank an alle) möchte ich jetzt die Gelegenheit nutzen um ein bissl zurückzugeben.
Ich muss dazu sagen dass ich beruflich mit EMA´s zu tun habe und daher recht viel über die Funktionsweise prof. Anlagen weis. Vorweg möchte ich sagen dass du wahrscheinlich mit einer fertigen Baumarktanlage preiswerter kommst, zumindest im ersten Moment. Allerdings bist du dann halt auf den gebotenen Funktionsumfang festgenagelt. Ich persönlich halte allerdings nichts von diesen Baumarktteilen und möchte auch selbst was frickeln, einfach des Spaßes wegen und weil mir für ne ordentliche Anlage das nötige Kleingeld fehlt bzw wäre sowas für meine Zwecke auch nen bissl Overkill wäre :wink:

Also ich habe mich nach langem überlegen für nen “RS485-BUS” entschieden da man diesen mit nen 2x2 bzw 1x2 Kabel quer durchs Haus legen kann. Auch kurze Stiche sind möglich. Vom Grundsätzlichen Aufbau her funktioniert das wie folgt: In jedes Zimmer bzw nach Bedarf kommt ein “Modul” (Barbone-Arduino mit ner RS485 Schnittstelle in ner Unteputzdose oder Aufputz) an dieses werden dann z.B. ganz normale Magnetkontakte an die Analogpins gepappt. Durch Wiederstände die in reihe und parallel geschaltet werden kannst du auf Öffnung und Überbrückung sowie Trennung (Sabotage) überwachen. An die Digitalpins kommen dann sowas wie PIR´s und weitere Sabotageschleifen für die Verteilerabdeckung oder was auch immer, da sind dir später fast keine Grenzen gesetzt. Auch benötigst du ja sowas wie eine Schalteinrichtung zum Scharf/Unscharf schalten, Bedienteile, Signalgeber ect. Für all das kommt dann jeweils ein Atmega mit 485-BUS dazu. Auf jedem Modul läuft dann wiederum ein eigener Sketch der sich um die dementsprechenden Funktion in seinem Bereich kümmert.
Als “Zentrale” dient dann ein Arduino mit LCD-Display, Bedienfeld, Wählgerät usw. welcher dann die einzelnen “Module” auf ihren Zustand hin abfragen. Wichtig: Die dürfen nur Quatschen wenn sie abgefragt werden, sonst gehts schief aufn Bus da RS485 kein Protokoll hat, das muss man sich dann selbst ausdenken aber ich glaube gelesen zu haben das ein User “Volvodani” so ein Protokoll mal erdacht hat (ich hoffe ich irre mich jetzt nicht).

Alles in allem wird das ein recht beachtliches Projekt wenn du es richtig machen möchtest. Liest sich im ersten Moment vlt. recht leicht …. aber da steckt wirklich ne Menge Arbeit hinter. Wenn du noch ne Akkupufferung implementierst, Störungen auswertest und dir sofort zustellen lässt, auf einen zweiten Verbindungsweg (Also ISDN+GSM oder LAN+GSM oder……) achtest sowie dir in deiner Abwesenheit regelmässig Routinemeldungen zustellen lässt und mit nem Watchdog arbeitest, hast du schon nen ordentliches Spielzeug :wink:
Durch die “Module” kannst du auch nach Lust und Laune erweitern.

Ich habe noch keine fertige Anlage, allerdings habe ich erst letztes Jahr mit dem Arduino angefangen und hab mich erst mal durch alles auf dem Steckbrett durchgearbeitet was man dazu so braucht. Im Moment entwickle ich gerade meine “Modulplatine”. Aber hab meist nur am Wochenende Zeit zum frickeln, aber im Kopf ist schon fast alles fertig :smiley:

so das reicht für den ersten Post.

Tante Edit sagt: da is er ja schon :wink:

Ich habe schon mal sowas gemacht als ansatz für den einen Hausbus. Hier http://arduino.cc/forum/index.php/topic,109050.0.html

Dieses System war auf einem attiny84 als Slave. Lässt dich auch auf einen attiny25(ich weis nicht mehr wie groß der Sketch war portieren (bleiben 2 Pins übrig für deinen Kontakt). Das Protokoll war so aufgebaut das es einen Master gibt Aufbau Byte 1 Adresse Slave Byte 2 Aktion ( 00h (setzten Ausgang)) AAh(Anfrage Daten))

Dann ging der Master auf empfang und der Slave konnte Senden. oder seine Ausgang setzten. Du kannst mit dem RS485 Protokoll von Nick Gammon schon viel machen. Ist halt auch try & error. Bei Fragen einfach PM oder hier.

Gruß Der Dani

uwefed:

guntherb: Was spricht denn gegen I2C?

Die Länge des Kabels. Grüße Uwe

Ah, danke, das war mir nicht klar.

Ich komme ja aus der Automobilwelt und da gibt es den LIN-Bus. Das ist ein Eindrahtbus (+Versorgung) der bis 40m im KFZ spezifiziert ist, aber locker 100m kann.

Alternativ den echten 1-wire Bus. hier gibts bei Bascom auch was zum nachlesen. Hier kannst du deine Leitungslängen erreichen und hast minimalen Verkabelungsaufwand.

Gunther

Hallo,

Nochmals Karl (OE1KLA), Grundsätzlich ist meine Idee nicht schlecht, aber! Bei 8 Kontakten währen das 255 verschiedene Messwerte und das läßt sich mit einem 10Bit AD Wandler nicht mehr vernüftig realisieren. Ich denke bis zu 4 Kontakten sollte das recht gut gehen (16 verschiedene Werte), auch bei längeren Leitungen.

Bitte weiter nachdenken

Karl