Waschsystem mit Kalenderverwaltung und RS485 Bussystem

Hallo,

Heute möchte ich euch unser neues Waschsystem „E-wash“ zeigen, welches ich zusammen mit einem Freund entwickelt habe.

In meinem Studentenwohnheim gab es bisher nur ein analoges Waschsystem. Bisher mussten sich also alle Bewohner Waschmarken kaufen um die Waschmaschinen freischalten zu können. Eine Reservierung der Maschinen fand mittels Eintragung in Kalenderlisten, die im Waschraum auslagen, statt. Dieses System funktionierte zwar, war jedoch oft umständlich. So musste man zum Kaufen neuer Waschmarken zunächst einen Waschmarkenverkäufer im Haus ausfindig machen, was manchmal garnicht so leicht war. Auch gab es nur eine begrenzte Anzahl an Waschmarken, sodass man sich recht oft auf die Suche begeben musste.
Auch das Eintragen in die Kalender war nicht bequem von der eigenen Wohnung aus machbar, sondern man musste dazu extra in den Waschraum gehen.
Dieser Zustand sollte sich mit Ewash nun ändern!
Dabei herausgekommen ist ein System, mit dem man bequem von zuhause aus Termine reservieren und auch wieder stornieren kann. Die internen Abrechnungen übernimmt / kontrolliert jetzt ein Verwaltungssystem. Im Waschraum fallen somit die lästigen Papierlisten weg. Stattdessen gibt es ein TouchScreen an der Wand, mit dem man Termine reservieren und die Waschmaschinen aktivieren kann.

Links das neue Terminal, rechts die alten Ordner mit Kalenderlisten.

 

Im Terminal läuft ein Raspberry PI, an den ein Touchdisplay angeschlossen ist. Per Ethernet wird eine Netzwerkverbindung zu unserem Hausserver des Studentenwohnheimes hergestellt. Dort läuft der eigentliche PHP-Server. Der Pi muss also lediglich die Website anzeigen und die Waschmaschinen freischalten.

Ewash-web

Für das Freischalten der Waschmaschinen haben einen RS485 Bus aufgebaut. Dieser ist ähnlich zum RS232 Bus(der seriellen Verbindung von Computern, Modems etc..) jedoch aufgrund der differenziellen Übertragung der Signale um einiges störfester. Differenziale Übertragung bedeutet, dass nicht die Absolutpegel der Datenleitung interessant sind, sondern nur die Differenzen der Pegel. Da sich Störungen auf beide Signalleitungen gleich auswirken spielen diese somit praktisch keine Rolle mehr.

Wir haben also eine kleine Schaltung entworfen, die die 3,3V Signale vom Raspberry PI per Optokoppler auf den RS485 Bus legt. Für jede Waschmaschine gibt es eine Empfangseinheit mit einem Mikrocontroller, der das Eingangssignal auf Richtigkeit prüft und eine Bestätigung zurücksendet.  Ein spezielles Protokoll soll hier verhindern, dass im Fehlerfall trotzdem Geld abgebucht wird.

2, der insgesamt 6 Empfangseinheiten.

Die einzelnen Slaves sind alle seriell verbunden. Nach unten geht das jeweilige Kabel zur Aktivierung der Waschmaschine weg. Hier genügte es über ein Relais eine 230V~ (Steuer)Leitung der Waschmaschine zu schalten. Zusätzlich haben wir noch eine Anzeige eingebaut, die die Zeitspanne der Freischaltung der Waschmaschine angibt. Diese LED-Balkenanzeige wird von dem Attiny2313 über ein Schieberegister gesteuert.

Zusätzlich zu diesem Grundsystem haben wir noch eine Platine für die Stromversorgung aufgebaut. Diese beinhaltet neben dem Transformator auch einen kleinen Attiny13, der das gesamte System über Nacht abschaltet. Hierfür sendet der PI einen Ausschaltbefehl über eine (per Optokoppler getrennte) Datenleitung. Der Attiny13 gibt dem PI anschließend noch etwas Zeit zum herunterfahren und schaltet danach das gesamte System für die Nacht aus.
Somit lässt sich viel Strom einsparen und die Komponenten laufen nicht unnötig.

Neben der Stromversorgung haben wir auch noch ein Kurzschlussschutz integriert. Falls zwischen Raspberry und den Waschmaschinenslaves ein Kurzschluss vorliegt wird die Stromversorgung unterbrochen und ein Signalton ausgegeben. Es wird dabei in regelmäßigen Abständen geprüft, ob der Kurzschluss behoben wurde.

Insgesamt sind wir sehr zufrieden mit dem System, welches jetzt schon einige Wochen (bis auf einige Kleinigkeiten) fehlerfrei läuft.

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.