Verkabelung steht

So. Endlich habe ich das Relais und den Ventilator verkabelt und die Raspberry steuert ihn nun – schön 🙂

Morgen noch der Einbau des Ventilators in das „neue Fenster“, dann sind wir fertig.

Aber der Reihe nach – was ist heute passiert:

Ich hatte ein 2-Kanal-Relais-Modul bestellt, welches über GND geschaltet wird. Das bedeutet, am Eingang muss GND liegen, damit das Relais anzieht, während Vdd/Vcc (5V oder auch 3.3V) oder HighZ (hochohmig) das Relais auf Ursprung setzen. Das Relais benötigt 5V an dem Vcc PIN und natürlich auch selbst GND.

Ich habe mich dagegen entschieden, direkt mit den GPIOs auf den Eingang zu gehen. Man liest das zwar immer wieder im Netz, aber auch ein Relais zieht etwas Strom. Nun hat dieses hier einen Optokoppler, dennoch bin ich auf Nummer sicher gegangen. Ich habe eine einfache Emitterschaltung verwendet:

02080311

Als Basiswiederstand habe ich 2KΩ verwendet, weil ich den gerade da hatte. Ich hätte auch 1KΩ nehmen können – das spielt keine große Rolle, denn wir schalten ohnehin den Transistor ganz durch.

An den Kollektoreingang habe ich dann IN1 des Relais gehängt, an die Basis vor den Widerstand meinen GPIO der Raspberry. GND muss an den Emitter und dann kann man mit 3,3V des GPIOs das Relais, was 5V benötigt, schalten. Die 5V gibt es ja auch an der Raspberry abzugreifen.

Ich erstelle noch ein genaues Bild, damit man die Verkabelung versteht. Da das Relais Optokoppler nutzt habe ich keine weiteren Schutzmaßnahmen (Dioden etc.) eingesetzt.

So sieht es nun aus:

20170414_175925

Das ist das Relais, die kleine Transistorschaltung und natürlich die 230V Leitung.

Um nun schalten zu können, nutzen wir die wiring PI, die wir bereits installiert haben. Auch „loldht“ nutzt diese nämlich.

Prüft bitte, ob sie gestartet werden kann. Dazu z.B. folgenden Befehl in der Shell nutzen:

gpio -v  #gibt die Versionsnummer an

oder auch

gpio readall  #zeigt alle GPIOs an

Sollte das nicht funktionieren, müsst ihr vermutlich die wiring PI noch builden… also im Verzeichnis von wiring PI den Befehl

./build

aufrufen.

So. Wenn das läuft könnt ihr einen einfachen Test machen – ihr habt ja noch die Tabelle mit den GPIOs. Ihr wisst ja, wiring PI nutzt eine andere PIN-Nummerierung – aber man kann beim Aufruf die gewünschte Zählweise definieren.
Wenn man nicht die wiring PI Zählweise nutzen will, sondern die GPIO Zählweise, kann man z.B. die Option -g nutzen. Das werden wir nun nutzen.

Als ersten müssen wir unseren PIN, in meinem Beispiel GPIO14, als OUTPUT definieren. Sonst können wir ihn nicht schalten. Das geht so:

gpio -g mode 14 out   #setzt GPIO14 als Output

Das müssen wir übrigens nach jeden Neustart wiederholen. Ich habe daher diesen Befehl in einem Skript abgelegt und starte es beim Start. Das kann man z.B. über die Datei rc.local definieren, die im /etc Verzeichnis liegt. rc.local startet beim Hochfahren Programme oder Skripte und zwar mit root Rechten.

Nun ist unser Pin also ein Ausgang. Nun können wir ihn Ein- und Ausschalten:

gpio -g write 14 1   #setzt GPIO14 auf 3,3V (high)
gpio -g write 14 0   #setzt GPIO14 auf 0V (low)

Diesen Code nutzen wir später in unserem eigentlichen Skript, um den Ventilator an und aus zu schalten. Jetzt testen wir damit, ob alles richtig verkabelt ist.
Das Relais zeigt über eine DIODE an, ob es angezogen ist. Mit dem gpio readall Befehl, kann man sehen, ob das Register auf 1 oder 0 steht und ob der Pin auch wirklich als OUT definiert wurde und ein Messgerät hilft im Zweifel auch.

Mein Ventilator dreht sich jedenfalls nun, wenn ich den Pin auf high setze:

20170414_175942

Nun müssen wir den Ventilator noch einbauen und dann können wir statt via Email zum Lüften aufzufordern, den Ventilator einschalten und die Email nutzen wir dann nur als Info, dass nun gelüftet wird.

Ich bin gespannt, wie viel das bringt und wie oft er anspringen wird. Sicherlich werden wir da noch etwas Feinschliff benötigen…

5 Gedanken zu “Verkabelung steht

    1. Hi Jürgen… ich habe einen Standard-NPN Transistor genommen, den ich noch rumfliegen hatte. Müsste ich jetzt drauf gucken, könnte zB ein BC 547C gewesen sein. Für so eine Schaltung ist der Anspruch an den Transistor ja minimal. Da fließt kein hoher Strom, die Schaltzeiten sind recht egal und er wird ja auch ausgesteuert eingesetzt.
      Ich kann nochmal genau gucken, was ich genommen habe, aber jeder Standard-NPN sollte es tun.
      VG, Malte

      Like

    1. Ich habe rc.local und ein Skript genutzt. Ist auch beschrieben – hier der Quote:
      ———————-
      Ich habe daher diesen Befehl in einem Skript abgelegt und starte es beim Start. Das kann man z.B. über die Datei rc.local definieren, die im /etc Verzeichnis liegt. rc.local startet beim Hochfahren Programme oder Skripte und zwar mit root Rechten.
      ———————-

      Like

Hinterlasse einen Kommentar