Bereits Kunde? Jetzt einloggen.
Lesezeit ca. 7 Min.

Mit dem Controllino den Garten bewässern Wasser marsch!


Raspberry Pi Geek - epaper ⋅ Ausgabe 12/2020 vom 08.10.2020

Die heimische Gartenpumpe komfortabel via Tablet oder Smartphone schalten? Kein Problem mit dem Controllino-Modul, einem Ethernet-Anschluss und der Arduino IDE.


Bewässerung per Controllino

Artikelbild für den Artikel "Mit dem Controllino den Garten bewässern Wasser marsch!" aus der Ausgabe 12/2020 von Raspberry Pi Geek. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: Raspberry Pi Geek, Ausgabe 12/2020

Zum Steuern des vorliegenden Projekts kommt ein Arduino-basiertes Controllino-Steuermodul zum Einsatz. Es befindet sich in einem Hutschienengehäuse und lässt sich so einfach im Schaltschrank verbauen 1. Die Ein- und Ausgänge des Moduls entsprechen dem Industriestandard für Steuerungen (24 Volt).

Neben dem Einsatz in der Industrie eignet sich Controllino hervorragend dazu, DIY-Projekte rund um den Arduino zu realisieren. ...

Weiterlesen
epaper-Einzelheft 7,99€
NEWS 14 Tage gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von Raspberry Pi Geek. Alle Rechte vorbehalten.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 12/2020 von Codegenerator. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Codegenerator
Titelbild der Ausgabe 12/2020 von Prozesswächter. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Prozesswächter
Titelbild der Ausgabe 12/2020 von Arch Linux auf dem Raspberry Pi installieren Triumphbogen. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Arch Linux auf dem Raspberry Pi installieren Triumphbogen
Titelbild der Ausgabe 12/2020 von Linux-Distro Manjaro ARM auf dem Raspberry Pi 4 betreiben Manjaro ARM. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Linux-Distro Manjaro ARM auf dem Raspberry Pi 4 betreiben Manjaro ARM
Titelbild der Ausgabe 12/2020 von Groupware auf dem Raspberry Pi Teamplayer. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Groupware auf dem Raspberry Pi Teamplayer
Titelbild der Ausgabe 12/2020 von Netzwerküberwachung mit Nagios und dem RasPi Wachhund. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Netzwerküberwachung mit Nagios und dem RasPi Wachhund
Vorheriger Artikel
Netzwerküberwachung mit Nagios und dem RasPi Wachhund
aus dieser Ausgabe
Nächster Artikel Mit dem TX-Pi-HAT den Raspberry Pi mit Fischertechnik verbinden L…
aus dieser Ausgabe

... Da das Modul sehr robust und solide aufgebaut ist, kommt es auch oft im Ausbildungsbereich zum Einsatz. Das Modul bietet der Hersteller in den Varianten MINI, MAXI und MEGA an, wobei es von der MAXI-Variante die zwei Ausprägungen Standard und Automation gibt. Zur besseren Übersicht fasst die Tabelle Controllino-Versionen im Vergleich die Eigenschaften der einzelnen Versionen zusammen.

Wir setzen in diesem Projekt ein Controllino- MAXI-Modul 2 ein, weil es schon in der Bastelkiste vorhanden war. Allerdings eignet sich zum Ansteuern der Gartenpumpe auch ein kleineres Modul. Im Download-Bereich des Herstellers finden Sie die Pinouts, Datenblätter und Bedienungsanleitungen für alle Module. Alle Controllino-Module stehen im Shop des Herstellers zum Kauf bereit.

Schnell geschaltet

Der Schaltplan der Pumpensteuerung 3 wirkt zunächst recht übersichtlich. Es gibt dennoch einige Details, die man etwas genauer betrachten sollte. Dazu gehört etwa der Ausschalter, der als Öffner (Schalter, der einen Stromkreis beim Betätigen öffnet) agiert.

Es gibt mehrere Gründe für diese Vorgehensweise: Zum einen lässt sich das Abschalten bei altmodischen Schützschaltungen nicht anders realisieren, daher sind Abschalter dort immer Öffner. Zum anderen gibt es hier einen Sicherheitsaspekt: Wird die Steuerleitung zum Abschalten einer Anlage unterbrochen, stoppt sie in jedem Fall. Würde man hier einen Schließer (Schalter, der einen Stromkreis beim Betätigen schließt) verwenden, könnte es passieren, dass sich die Anlage im Fehlerfall nicht mehr abschalten lässt.

Das nächste wichtige Detail im Schaltplan besteht aus dem Leistungsschütz. Hier muss man für die Erklärung etwas ausholen. Betrachten wir erst einmal die mit einem Elektromotor betriebene Pumpe, die wir schalten möchten. Im Inneren des Motors befinden sich Wicklungen, die ein Magnetfeld erzeugen. Diese Elektromagnete besitzen die unangenehme Eigenschaft, Energie zu speichern, die dann wiederum beim Öffnen des Stromkreises mitunter Überspannungen und Lichtbögen erzeugt.

1 Die fertig aufgebaute Steuerung in einem geschützten Schaltschrank.


Der Elektriker nennt im Allgemeinen alle Gerätschaften, in denen sich Wicklungen beziehungsweise Spulen befinden, induktive Lasten. Geräte wie Glühbirnen bezeichnet man hingegen als ohmsche Lasten, die solche Nebeneffekte beim Ausschalten nicht erzeugen. Es liegt nahe, dass Schalter, die induktive Lasten schalten sollen, anders funktionieren müssen als solche, die nur ohmsche Lasten schalten. Daher gibt es in der Elektrotechnik unterschiedliche Schalterklassen. Weitergehende Informationen zum Thema finden Sie bei Wikipedia.

Entsprechend gilt es, den passenden elektrischen Schalter für die Gartenpumpe zu wählen. Er muss in der Lage sein, die induktive Last der Pumpe mit einer Leistung von 800 Watt zu schalten. Nun wird die Sache kniffelig: Die Schaltleistung der meisten besseren Relais liegt bei 2000 und mehr Watt. Sieht man aber in das Datenblatt des Relais, erkennt man schnell, dass die Beschreibung hier von einer ohmschen Last ausgeht – die Schaltleistung einer induktiven Last fällt bei einem Relais erheblich geringer aus.

Weitere Infos und interessante Links

www.raspi-geek.de/qr/45437

Daher verwenden wir hier zum Schalten der Pumpe das Leistungsschütz 3RT2016-1BB41 von Siemens mit einer AC-Schaltleistung von 4000 Watt, was für die meisten Gartenpumpen genügen sollte. Preislich liegt das Gerät bei etwa 25 bis 30 Euro. Die Steuerspannung beträgt 24 Volt; wenn nötig, lässt sich das Schütz um Hilfskontakte erweitern. Beachten Sie, dass nur Elektriker mit Netzspannung arbeiten dürfen. Sollten Sie keiner sein, fragen Sie daher den freundlichen Elektromeister aus der Nachbarschaft, ob er Ihnen die 230-Volt-Leitungen anschließt.

Sie fragen sich sicher, worin der Unterschied zwischen einem Schütz und einem Relais besteht. Schütze trennen den Stromkreis immer an zwei Stellen, Relais nur an einer. Auch der Abstand der Kontakte fällt bei einem Schütz größer aus. Diese Unterschiede erlauben es, mit Schützen erheblich höhere Leistungen zu schalten. Die Kontakte bei einem Schütz schalten üblicherweise mit einer viel höheren Kraft als bei einem Relais – der Schaltvorgang lässt sich nicht überhören.

2 Anschlussbelegung des Controllino-MAXI-Moduls.


IDE installieren

Wie eingangs erwähnt, ist das Controllino- Modul kompatibel zur Arduino IDE. Da liegt es nahe, diese zum Erstellen der Programme zu verwenden. Sie lässt sich leicht bedienen, beschränkt sich auf die nötigen Funktionen und steht kostenfrei im Netz zum Herunterladen bereit. Nach der Installation genügen wenige Schritte, um die IDE für den Controllino vorzubereiten.

Laden Sie also von der Webseite des Arduino-Projekts die für das verwendete Betriebssystem passende Version der Arduino IDE herunter. Zur Installation folgen Sie der Anleitung. Nach dem Start der IDE binden Sie die Bibliothek zur Software- Unterstützung des Controllino ein. Klicken Sie dazu auf Sketch | Bibliothek einbinden | Bibliotheken verwalten. Hier suchen Sie nun nach Controllino. Ein Klick auf Install richtet die Bibliothek ein.

Es erfordert zwei Schritte, die Hardware- Unterstützung für den Controllino einzubinden. Als Erstes tragen Sie unter Datei | Voreinstellungen eine zusätzliche Boardverwalter URL ein 4. Als Zweites navigieren Sie über Werkzeuge | Board | Boardverwalter zum Board-Verwalter, suchen dort nach Controllino und installieren das Board.

Danach wählen Sie unter Werkzeuge bei Board den Controllino maxi an. Der Port unter Werkzeuge | Port sollte automatisch richtig gesetzt sein. Stellt Ihr System mehrere Ports zur Auswahl, wählen Sie /devt/ tyACM0 aus. Jetzt steht die IDE bereit, um Programme für den Controllino zu erstellen.

Das Programm

Das Programm basiert auf dem Webserver- Beispielprogramm aus der Arduino IDE, das Sie unter Datei | Beispiele | Ethernet | WebServer finden. Da die IDE selbst bereits viele Teile des Codes erklärt, gehen wir hier nicht gesondert darauf ein. Um den Webserver über das Netz zu erreichen, ändern Sie die IP-Adresse im Programm (Listing 1) so, dass sie zu Ihrem Netzwerk passt. Wir sehen uns im Folgenden zunächst die einfachen Teile des Programms an und gehen dann immer weiter in die Tiefe.

3 Der Schaltplan der Pumpensteuerung wirkt auf den ersten Blick unspektakulär, hat es im Detail aber durchaus in sich.


Tuning-Maßnahmen

Kommen wir nun zum ersten interessanten Punkt, der Debug-Ausgabe. Um die Ausgaben zu (de-)aktivieren, wählte der Autor den Weg über den C-Präprozessor (#define DEBUG). Das bietet den Vorteil, dass sich kein überflüssiger Code im Mikrocontroller befindet, wenn man das Programm ohne Debug-Informationen erzeugt. Im Internet findet man häufig Code, der die Ausgabe über eine Variable und If-Abfragen vor dem Debug-Output steuert. Diese Vorgehensweise bläht den Code unnötig auf. Bedenken Sie, dass der Mikrocontroller nur sehr begrenzte Ressourcen bietet.

Dateien zum Artikel herunterladen unter

www.raspi-geek.de/dl/45437

Das bringt uns zum nächsten Punkt, den man beachten sollte. Die hier verwendete Ethernet-Bibliothek schickt mit jedem client.println ein einzelnes IP-Paket auf die Reise. Bei einfachen Programmen fällt das kaum auf, bei komplexeren macht sich das hingegen schnell durch lange Wartezeiten bemerkbar.

Achten Sie daher darauf, den Datenverkehr zwischen Webbrowser und Mikrocontroller möglichst gering zu halten. Das erreichen Sie etwa mit dem Einsatz von AJAX, dessen Funktionsweise der Kasten AJAX beschreibt. Alternativ könnten Sie eine eigene Funktion schreiben, die bei der Übertragung von Daten die IP-Pakete so weit wie möglich auffüllt. Das wird dann aber wirklich kniffelig.

Damit eine Webanwendung gut aussieht, arbeitet der Designer oft mit Bildern. Wie Abbildung 5 zeigt, macht auch unsere kleine Anwendung hier keine Ausnahme. Wie bekommt man nun die Ressourcenbeschränkungen eines Mikrocontrollers mit coolen Bildern unter einen Hut? Die meisten Mikrocontroller bringen nur wenige Hundert KByte Hauptspeicher mit – zu wenig Platz für tolle Bilder. Eine Lösung für dieses Problem bietet das SVG-Format (Scalable Vector Graphics). Anders als Bitmap-Bilder beschreibt es eine Grafik durch Vektoren, die nur sehr wenig Platz benötigen. Eine kleine Warnung zu SVG ist aber angebracht: Die Styles von SVG unterscheiden sich leicht von denen, die HTML/ CSS verwendet.

Am Anfang der loop()-Funktion befindet sich der Code, um die Pumpe manuell an- und auszuschalten. Danach folgt der Code, der den Webserver implementiert. Der Server kennt nur eine Webseite (/) und drei Aufrufe für die AJAX-Funktionen.

Sehen wir uns nun die Datei mit dem HTML-Code einmal genauer an. Die Funktion header() erzeugt einen gültigen HTTP-Header und ein HTML-Gerüst. Da innerhalb einer Anwendung üblicher- weise alle Seiten einheitlich aussehen, verschieben wir alle konstanten Teile in eine Funktion. Dieser übergeben wir dann nur noch den Content, der sich für jede Seite verändert. Das hat auch den Vorteil, dass wir Speicherplatz im Mikrocontroller sparen.

4 Um die Hardware- Unterstützung in Arduino zu aktivieren, tragen Sie die Boardverwalter URL ein.


5 Die Pumpensteuerung im Browser. Wegen eingeschränkter Platzverhältnisse im Controller übernehmen Vektorgrafiken die Bildgestaltung.


Kopflastig

Die header()-Funktion enthält daneben einige Javascript-Funktionen. So initialisiert init() das automatische Aktualisieren des Status alle zwei Sekunden. Das darf nur einmal beim Laden der Seite passieren; die Variable lock verhindert das mehrfache Ausführen der Funktion. Die load()-Funktion kapselt die Kommandos zum Erzeugen der von AJAX benötigten Requests. Diese Funktion versendet die Ausgabe von beliebigen AJAX-Requests an Objekte aus dem HTML-Dokument.

Generell übergeben wir allen Funktionen, die HTML erzeugen, den kompletten HTTP-Request. Damit erreichen wir, dass jede HTML-Seite die Request-Informationen enthält. Falls die Seite sie nicht benötigt, ist das nicht weiter tragisch. Wenn wir aber erst später bemerken, dass wir diese Informationen brauchen, fällt ein aufwendiger Umbau des Quellcodes an.

In der HTML-Datei befinden sich auch die Funktionen für die AJAX-Requests. Sie schalten die Pumpe an oder aus und senden den aktuellen Status als Antwort an den Browser zurück.

Um das Projekt in das Controllino-Modul zu schicken, klicken Sie in der IDE auf den Hochladen-Button in Form eines nach rechts gerichteten Pfeils.

Fazit

Das Controllino-Modul ist eine wirklich gelungene Anwendung der Atmel-Mikrocontroller. Es besitzt eine CE-Kennzeichnung und eignet sich für den professionellen Industrieeinsatz ebenso wie für den privaten Anwender.

Mithilfe der Beispielprogramme aus der Arduino-IDE lassen sich schnell und einfach Projekte umsetzen. Das hier vorgestellte Beispielprogramm kann als Rahmen dienen, um die Funktionen der Pumpensteuerung zu erweitern oder auch eine komplett andere Webanwendung zu entwickeln. (tle)

README

Dieser Artikel beschreibt, wie Sie Ihre elektrische Gartenpumpe via Tablet an- und ausschalten. Der Autor legt dabei Wert darauf, keine Cloud-Dienste oder Software von Fremdanbietern einzusetzen. Weiterhin war es ihm wichtig, die Pumpe auch manuell über einfache Taster zu bedienen. Als Herzstück der Steuerung dient ein Controllino-Modul mit Ethernet-Anschluss.

AJAX

AJAX (Asynchronous Javascript and XML) erlaubt es, Daten zwischen einem Browser und einem Webserver auszutauschen, ohne dabei einen HTTP-Request auszuführen. Das reduziert den Datenverkehr erheblich, sodass Webanwendungen sehr viel schneller reagieren. Die Daten auf einer Webseite lassen sich gezielt aktualisieren, was die Bedienung einer Internet-Seite vereinfacht. Bereits 2005 verwendeten die ersten Anwendungen diese Webtechnik. Sie gehört zum festen Bestandteil aller üblichen Webbrowser. AJAX manipuliert den Objektbaum eines Browsers direkt mit Javascript. Heute kommen oft auf AJAX basierende Frameworks wie JQuery zum Einsatz. Diese sind aber relativ groß und lassen sich nur schlecht mit einem Mikrocontroller verwenden – hier eignet sich das reine AJAX in einfacher Form besser.


© Jon Helgason, 123RF