Der TCP/IP-Switch oder LAN-Switch oder LAN-IO-Port.
Version 2
aktualisiert am 09.01.2014

Erweiterung: 02.05.2013 Einbau eines Temperatur-Differenzregler.
Erweiterung: 22.03.2013 Unterstützung eines HighPrioritäts-Port für Alarmmeldungen
Erweiterung: 08.01.2014 Unterstützung der Clientfunktion um eine Kommunikation unter Switches zu ermöglichen

Status: Projekt abgeschlossen


Dieser LAN-Switch (Schalter) dient zum Schalten von Lasten über das Netzwerk. Natürlich können auch Zustände abgefragt werden. Eine Temperaturmessung mittels eines Dallas-Temperatursensor habe ich in jeder Version und Ausbaustufe vorgesehen. Der Switch lässt sich ganz einfach über TCP/IP ansprechen bzw. abfragen.

Das gleiche Modul gibt es auch als Funk-Version. Dieses arbeitet mit den bewährten RFM12-Funkmodulen im 868-MHz-Band.

Auf ein Web-Interface habe ich ausdrücklich verzichtet, weil ich die vielen Geräte nicht einzeln übers Web ansprechen werde.
Mein Server läuft 24 Stunden, 7 Tage die Woche. Darüber hinaus wird alles zentral gesteuert. Es macht dann keinen Sinn, eine einzelne Komponente über das Netzwerk von außen anzusprechen, da bei mir mittlerweile 8 Geräte im Einsatz sind. Diese lassen sich besser zentral über einen PC ansprechen.

Wer aber möchte, kann das Web-Interface selbst noch programmieren. Die Web-Oberfläche reintippen und Port 80 einstellen.

Mir ging es darum, einen kostengünstigen und einfach erweiterbaren Switch zu entwickeln. Hier ist er:

Ip-Switch eingebaut in Unterverteilung Diese Version ist in einem Hutschinengehäuse eingebaut.
Die Steuerelektronik (Basisplatine) ist immer gleich, nur die Trägerplatine kann sich je nach Gehäuse und Ausführung unterscheiden. Natürlich verfügt der Switch auch über digitale Eingänge, mit denen Zustände abgefragt werden können. Alles nur eine Frage der Parametereinstellung und Beschaltung bzw. Ausführung der Trägerplatine.

Diese Version hat 4 Schaltkanäle (230 Volt, 16 Ampere) und 4 digitale Eingänge und nun auch noch Eingänge für zwei Dallas-Temperatursensoren DS18x20. So kann ich das Gerät auch zur Temperaturerfassung oder Heizungssteuerung einsetzten.

Alles was automatisch geschaltet oder überwacht werden soll ist mit einem LanSwitch oder Funkswitch ausgestattet. Die Steuerung selbst übernimmt eine PC-Software. Der Lan-Switch ist nur "ausführendes Organ".

Für Steuerungsaufgaben ist der Switch als "Server" programmiert. Er kann aber auch als Client arbeiten. Dieses, wenn z.B. Änderungen an den Eingängen sofort gemeldet werden sollen.

Eine Sonderversion mit Display steht auch bereit.


Seit Anfang Januar 2012 ist der IP-Switch in div. Unterverteilungen und Steuerkästen eingebaut. Es gab bisher keine Aussetzter.
Im Januar 2013 habe ich die Software des Switches erweitert. Er kann nun nicht nur vom PC angesteuert oder abgefragt werden, sondern kann selbstständig Meldungen mit hoher Priorität versenden. Hierzu war es allerdings erforderlich die Parameterlsite zu erweitern. Der Switch muss ja wissen, an welche IP er die Meldung senden soll.


Erweiterung:
Um den Lan-Switch auch für die Temperatursteuerung einsetzten zu können wurde dieser um eine Temperatur-Differenzreglung erweitert.
Dazu wurde die Hardware für einen zweiten Dallas-Temperatursensor vom Typ DS18S20 oder DS18B20 etwas erweitert bzw. geändert. Die Regelung lässt sich per Software beliebig aktivieren bzw. deaktivieren. Auch das Schaltverhalten (Temperaturwerte für Ein-und Ausschalten) wird per Software vorgegeben.

Ist der Switch erst mal eingebaut und müssen Eingangsfunktionen getestet werden ist meist Hilfe erforderlich. Irgendjemand der den entsprechenden Eingangskanal betätigt.
Dieses habe ich dadurch gelöst, dass man neben den Meldungen der Eingangskanäle einen Button in der Programmiersoftware betätigt und somit den Switch auffordert ein Eingangssingnal für den entsprechenden Kanal zu simulieren. Das hat mir bisher jede Menge Laufarbeit gespart.


Funktion:
Das Gerät ist nun in verschiedenen Ausbaustufen verfügbar. Es hat nun zwei Temperaturfühler vom Typ DS18x20 und erkennt automatisch den angeschlossenen Sensor vom Type "S" (Auflösung 0,5 Grad) oder Typ "B" (Auflösung < 0,1 Grad). Weiterhin kann optional ein 4-zeiliges Display angeschlossen, und auch das Verhalten bei Änderung der Eingangssignale vorgegeben werden. Bei Pegeländerung an einem beliebigen Eingamg kann der Switch selbstständig eine Meldung mit hoher Priorität auf einem getrennten Port zu einer einstellbaren Ziel-IP senden. So konnte ich das Gerät zur Überwachung der Zufahrt mittels Bewegungsmelder oder Radarsensor einsetzten.
Es lässt sich selbst als "Klingeltaster" degradieren, da die Meldungen über den Kanal für hohe Priorität sicher ankommen.
Zudem habe ich einen zuschaltbaren Timer eingebaut, der nach ca. 5 Minuten das Gerät neu bootet wenn keine Anfrage vom Steuerrechner kommt. Außerdem können kurze Eingangssignale "gefangen" werden bis der Zustand durch Abfrage übertragen wurde.

Der Schaltplan:
Den Schaltplan des IP-Switches als PDF gibt es hier.


Das Hexfile (Version 0.0.3g) vom 08.01.2014 für den PIC 18F2420 kann man hier downloaden.

Als CPU kommt ein PIC 18F2420 mit einem 12 Mhz-Keramikschwinger zum Einsatz. Für die Kommunikation mit dem Lan-Adapter (WIZ 812MJ) reichen 5 Anschlüsse. Man könnte auch noch 2 Anschlüsse sparen, aber um z.B. einen eindeutigen Reset durchführen zu können habe ich diese Beschaltung gewählt.

Diese Auführung hat 4 Schaltkanäle und 4 Eingänge sowie einen Eingang für die Temperaturmessung mittels eines Dallas DS18x20. Das "X" in der Bezeichnung steht für die "S" ider "B" Ausführung, die sich nur in der Auflösung unterscheiden. Der IP-Switch erkennt automatisch den angeschlossenen Sensor und passt so die Temperaturberechnung selbst an. Die 4 Eingänge wurden über Optokoppler (12 Volt-Pegel) auf den PIC geführt, um Störungen auszuschließen.

Als Lan-Adapter habe ich mich für den WIZ 812MJ entschieden. Dieser wickelt den gesamten Netzwerkverkehr ab. Eigendlich muss man nur die IP-Adresse, Subnetzmaske, Gateway, MAC-Adresse und Port vorgeben. Dann funktioniert die Kommunikation schon. Das Senden übers Netzwerk ist anfänglich etwas kniffelig gewesen, aber hat man das Prinzip der Speicherbeschreibung einmal verstanden, geht es recht einfach.
Den Datenaustausch zwischen PIC und Lanadapter habe ich über die SPI-Schnittstelle realisiert. Das geht schnell und ist der geringste Hardware-Aufwand.

WIZnet-Lanadapter Klein, kompakt und super Leistung:
Der kleine LAN-Adapter kann über die SPI-Schnittstelle oder auch parallel angesprochen werden. Ich habe mich für die SPI-Schnittstelle entschieden, da bei dieser Schnittstelle nur 5 Drähte benötigt werden und die Geschwindigkeit für Steuerungsaufgaben mehr als ausreichend ist.
Der Hardwarestack arbeitet super. Bisher hatte ich nicht eine einzige Störung bzw. Ausfall.

Der Adapter arbeitet mit 3,3 Volt, die Ein- und Ausgänge sind aber 5-Volt tolerant. Auch die Leistungsaufnahme hält sich in Grenzen, das Teil wird nicht einmal warm.

Das Gerät mit 4 Ein- und Ausgängen wird wohl die gängiste Variante werden. Ob nun voll- oder teilbestückt werden damit bei mir wohl die meisten Aufgaben abgedeckt.

WIZnet-Adaper und Basisplatine Hier die Steuerplatine mit aufgestecktem Lan-Adapter.
Der PIC 18F2420 kommuniziert mit dem Lan-Adapter und wickelt die gesamten Mess- und Steuerungsaufgaben ab. IP-Adresse, Subnetzmaske, MAC-Adresse, Port usw. können mittels eines kleinen Softwaremodul programmiert werden.

Falls mal was daneben geht oder die Adresse vergessen wurde gibt es die Möglichkeit den Chip auf "Werkseinstellung" zurück zu setzten.

Alle freien Anschlüsse des PIC habe ich auf die Stiftleiste heraus geführt. So kann ich jederzeit auf einer anderen Trägerplatine neue Funktionen ansteuern bzw. Realisieren.

Die Idee, möglichst viele verschiedene Funktionen mit der gleichen Hardware abzudecken lässt sich so recht gut verwirklichen. Nur die Trägerplatine und die Software des PIC bestimmen die Funktion der LAN-Einheit.

Zudem hat jede Einheit noch zwei Anschlüsse für Temperaturfühler vom Typ Dallas DS18x20. Es wird automatisch der Typ DS18-B-20 und der Type DS18-S-20 erkannt. Die beider Fühler unterscheiden nur durch die Auflösung nach dem Komma.

Die Steuerungs- und Schaltaufgaben sind an verschiedenen Orten erfoderlich. Entsprechend unterschiedlich können auch die Gehäuse sein. Das erste Gerät befindet sich in einem Hutschinengehäuse und ist für den Einbau in einer Unterverteilung gedacht. Die gleichen Einheiten habe ich in spritzwassergeschützte Gehäuse eingebaut und steuer damit die Beleuchtung für Garten, Parkplatz, Pool und Zufahrt.

Netzwerkadaper Trägerplatine Netzwerkadaper Hutschinengehäuse Ganz links die Basis/Trägerplatine mit 4 Eingänge und 4 Relaisausgänge.
Rechts daneben die komplette Einheit in das Unterteil des Hutschinengehäuse eingebaut.

Alle Ein- und Ausgänge sind auf Schraubklemmen geführt, die Versorgungsspannung beziehe ich aus einem kleinen Netzteil von Pollin. Da das Schaltnetzteil 3.3, 5 und 12 Volt liefert und nur knapp 7,00 Euro kostet, habe ich auf einen Selbstbau verzeichtet.
So billig kan man ein solches Netzteil nicht selbst herstellen.

Diese Lan-Switches lassen sich nicht nur im kabelgebundenen Netzwerk betrieben, auch im WLan funktionieren sie einwandfrei. Es werden immer nur ein paar Byte übertragen, die Netzwerklast ist kaum messbar. Deshalb gibt es auch im WLan kaum Einschränkungen. Bis auf die Reichweite !

Ich habe schon gute Geräte im Einsatz, zusätzlich große externe Antennen gekauf und erreiche nicht jeden notwendigen Punkt auf dem Grundstück. Zu einigen Stellen konnte ich kein Netzwerkkabel ziehen. Da ist z.B. der Brunnen aus dem wir unser gesamtes Trink- und Brauchwasser beziehen. Er liegt in einem kleinen Tal. Mit einem Bagger leider nicht zu befahren. Und so eine Strecke von Hand aufzugraben ist irre. Das geht auch anders. Ich muss wissen, wie der Füllstand des Brunnen ist und brauche auch die Wassertemperatur. Dieses ist für die Kühlung des Hauses im Sommer geplant. Wir haben eine Wandheizung und diese soll an den heißen Tagen mit kaltem Wasser gespiesst werden. Wandheizung einfach nur umgekehrt.

Da gibt es aber auch noch andere Stellen, die ich weder mit WLan noch mit Strom versorgen kann. Hier kommen Funkmodule zum Einsatz. Die Module sind sehr klein, benötigen sehr wenig Leistung und lassen sich deshalb mit Batterien oder Accus über einen sehr langen Zeitraum betreiben. Außerdem besteht auch die Möglichkeit, die Accus mit kleinen Solarzellen aufzufrischen. Das kennen wir ja von fast jedem Parkscheinautomat.




Da ja ein Web-Interface fehlt (und bei mir auch nicht erforderlich ist) habe ich ein kleines Programm geschrieben, welches den IP-Switch auslesen, programmieren und natürlich auch zum Test ansprechen kann. Jedes Gerät hat die "IP-Werksadresse" 192.168.28.1. Diese muss natürlich geändert werden, wenn mehrere Geräte im gleichen Netzwerk betrieben werden. Dazu dient die PC-Software.

Modul zur Programmierung und Test des Lanadapter Zur Entwicklung solcher Module gehört natürlich auch eine Testmöglichkeit. Dabei ist ein kleines Programm entstanden, mit dem sich der Lan-Adapter auch gleich programmieren lässt.
Da ja die Software immer gleich ist, aber eine IP-Adresse nur einmal im Netzwerk vorkommen darf, ist das Modul programmierbar. Die Daten werden im EEProm des PIC abgelegt und bei jedem Reset bzw. Neustart an den Lan-Adapter gesendet. Auch der Port, über dem die gesamte Kommunikation läuft ist einstellbar. Und natürlich auch, ob der letzte Schaltzustand nach Spannungsausfall wieder hergestellt werden soll und ob Eingangssignale "gefangen" werden sollen oder nicht. So können auch sehr kurze Eingangsimpule erkannt werden, da der Eingangsstatus, falls diese logisch 1 war, erst nach dem Senden des letzten Zustandes erneut eingelesen wird.
Alternativ kann der Haken bei "Auto TX Chg" gesetzt werden. Dann sendet der Lanswitch sofort den Aktuellen Status über der Highprioritäskanal.


Die Test-Software um den IP-Switch testen und ansprechen zu können gibt es hier.


-------