Relais schalten unter linux

Gast #2015711
Lesenswert?

nabend,

ich habe da mal als anfänger(elektrotechnik noob) eine verständnis 
frage.
benutze ein foxboard(debian) womit ich 1-wire sensoren abfragen und über 
ein webserver grafisch darstelle.
jetzt möchte ich gerne eine relais karte anschaffen, um ein 24V 
magnetventil zu schalten.

denke mir das man das ganze über die gpio anschliessen kann?
wie spreche ich jetzt so ein relay an über die linux konsole?
suche ich mir den pin aus die ich später anspreche muss,
und diese ist als device verfügbar unter /dev oder im sys...?

ganz übertrieben gesagt mit echo 1 > /dev/tt-meindevice
oder ist das nur wunsch träumen von mir und das geht ganz anders.

lese immer man muss sich was in C schreiben etc...

ich will jetzt keine fertige scripte etc...,
sondern nur den grobe ablauf so eine schaltung/ansteuern ünter linux.

sorry, aber elektromäsig habe ich kein plan,
bin mehr mail/web/fileserver mäsig unter linux unterwegs

danke
john
Gast #2016089
Lesenswert?

foxi schrieb:
> denke mir das man das ganze über die gpio anschliessen kann?
> wie spreche ich jetzt so ein relay an über die linux konsole?
> suche ich mir den pin aus die ich später anspreche muss,
> und diese ist als device verfügbar unter /dev oder im sys...?
>
unter sys sollte was stehen.

> ganz übertrieben gesagt mit echo 1 > /dev/tt-meindevice
> oder ist das nur wunsch träumen von mir und das geht ganz anders.

das ist kein Wunsch traum von dir, das geht wirklich. Achte darauf das 
der GPIO, denn du wählst nicht schon von was anderen belegt ist. Dann 
musst du die GPIO Nummer Herausfinden und den GPIO auf der Kommandozeile 
mit den folgenden Aufruf exportieren.
1
 echo <NR> > /sys/class/gpio/export

Danach musst du die Richtung (I/O) des GPIO mit folgenden Aufruf auf 
Ausgang stellen
1
echo out > /sys/class/gpio/gpio<NR>/direction

und ab jetzt kannst du mit denn Folgenden Befehlen den GPIO schalten
1
echo 1 > /sys/class/gpio/gpio<NR>/value  # einschalten
2
echo 0 > /sys/class/gpio/gpio<NR>/value  # ausschalten
Gast #2016225
Lesenswert?

moin

erstmal danke für die antworten!

@einer
nein noch ein board mit ethernet etc... brauche ich nicht, habe ich doch 
schon. ;-)

@michael
danke, zum relais bestellen und aufbauen habe ich ein bekannte(elekt. 
ing) der sich damit auskenne, nur der hat kein linux kenntnisse.
diese ganze schaltpläne verstehe ich nicht immer alles so.
der hat mir schon erklärt wie so ein aufbau auszusehen hat mit diode 
etc..

@imon

also diese link http://netus.acmesystems.it/doku.php?id=tutorial:gpio 
habe ich schon gelesen,
wusste nur nicht ob man den relais auch darüber schalten kann.

ich habe aber überall gelesen das die variante langsamer ist,
und man denn weg über C vorziehen soll.

aber wenn es so "einfach" geht warum nicht, oder sprechen was dagegen es 
so zu machen?
kommt mir sehr recht, ich habe da paar cronjobs laufen für temperatur 
erfassen mit abspeichern in sqlite.
dann kann ich mir einfach ein script basteln der ein mittelwert der 
letzte z.b 5 temperaturwerte ermitteln, und dann bei bedarf ein echo 1 > 
/sys/class/gpio/gpio<NR>/value abfeuern.
über ein cat /sys/class/gpio/gpio<NR>/value kann ich denke ich mir auch 
leicht die aktuelle status abfragen etc....

gruß
john
Gast #2047348
Lesenswert?

heute habe ich mit mein freund (elekt. ing) gesprochen der meine relais 
bauen soll,
und der meint er würde ein 8 kanal IC nehmen und dahinter die zwei 
relais.

dann muss ich die ic ansteurn zum schalten, leider habe ich da nicht 
viel plan von und würde lieber die variante oben vorziehen.

ich brauche zwei relais, 1x 24V(magnetventil) und 1 mal 230V für eine 
pumpe.
er meinte externe stromversorgung 12V und alles über die ic steuern.

was macht mehr sinn, oder was ist einfacher.

über i2c mal mein grobe wissen wie sowas geht
ein i2cdetect zeigt mir schon mal was an, aber noch ist nichts 
angeschlossen.
wenn ja halt die address mit i2cdetect ermitteln, dann doku vom IC lesen 
und mit i2cget und i2cset die relais über die console ansteuern,
oder doch mal in C einarbeiten und das ganze im C schreiben?

gruß
john
#2047400
Lesenswert?

foxi schrieb:
> dann muss ich die ic ansteurn zum schalten, leider habe ich da nicht
> viel plan von und würde lieber die variante oben vorziehen.
Ohne den Namen des ICs kann man darüber nichts sagen.
Einfacher und günstiger als unter Relais mit Logik ansteuern wird es 
vermutlich nicht.
Falls dir eine klare Anleitung lieber ist: 
http://www.franksteinberg.de/erel.htm

> ich brauche zwei relais, 1x 24V(magnetventil) und 1 mal 230V für eine
> pumpe.
> er meinte externe stromversorgung 12V und alles über die ic steuern.
Nimm lieber 5V Relais, denn dann kannst du die Versorgung von deinem 
foxboard auch dafür nutzen und brauchst nicht noch ein Netzteil.

> über i2c mal mein grobe wissen wie sowas geht
i2c? Ich dachte, du willst über GPIO schalten?
Gast #2047466
Lesenswert?

hi

danke, franksteinberg seite kenne ich, so war auch mein plan eigentlich.
da ich von elektro keine ahnung habe, weiß ich ja auch nicht wie der 
aufbau so eine karte genau sein muss,
daher kann ich ja nur kurz erzählen was er so meint.

er meint 5V reicht nicht um 230V mit zur schalten, da muss ein externe 
stromkreis dran, am besten 12V.
über i2c meint er wäre es besser, man ist flexibler/erweiterbar etc.

ich habe auch gelesen das wenn man ein 12c bauteil nehmen sollte,
man drauf achten soll das es auch linux treiber für gibt.
wenn es denn so ein i2c sein muss, was würde denn so am gängigste 
genommen unter linux?

mir wir naturlich gpio lieber.

wie würde ihr sowas denn machen?

danke
john
Gast #2047508
Lesenswert?

keine ahnung, wie gesagt habe ich da kein plan von elektro, nur respekt, 
daher frage ich ja auch nach.

naja,der ist elekt. ing. und arbeite in ein sehr große 
konzern(produziern teile für bmw/vw etc..),
und ist dort für steuerung, elektrik etc.. der maschinen zuständigt.
die arbeiten mehr mit Logo SPS etc..

er meint halt 3,3 oder 5V wäre nicht so optimal.
Gast #2060455
Lesenswert?

ich hatte kürzlich etwas ähnliches gemacht: Embedded device von Omnima 
mit OpenWRT Linux drauf und dann über die GPIOs drei Relais angesteuert. 
Als Relais bekam ich beim großen C welche, die für 6V ausgelegt waren, 
funktionierten mit den 5V des Boards aber auch. Das erste Relais 
schaltete die 230V vom 24V-Netzteil, und die anderen beiden hingen 
zwischen Netzteil und 2 Magnetventilen. Das ganze dann einfach als 
cron-job angesteuert, mittels Zugriff über sysfs. Solange dein Board den 
Strom für die Relais liefern kann, klappt das ganz gut.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren