Raspberry Pi GPIO Pins Ansteuern und Auslesen

Begonnen von FabianRpi, 02 Mai 2016, 19:41:21

Vorheriges Thema - Nächstes Thema

FabianRpi

Hallo,

ich bin Neueinsteiger mit FHEM und möchte ein Projekt realisieren, hab aber dazu noch nichts wirklich konkretes gefunden. Würde mich freuen wenn mir jemand weiterhelfen kann.  ;)

Und zwar möchte ich 8 Stromstoßrelais über eine 8-Kanal Relaiskarte ansteuern (Zum Schalten  jeweils einen Impuls von 1 Sekunde). Diese Relaiskarte möchte ich über die GPIO Pins meines Raspberry Pi 2 B  steuern. Zudem möchte ich mit 8 weiteren GPIO auslesen ob ein Stromstoßrelais gerade geschaltet ist oder nicht ( Dies werde ich vermutlich über Optokoppler an die GPIO führen).

Meine Frage nun: Wie kann man das in FHEM integrieren, so dass ich über FHEM ein und ausschalten (1 Sek. Impuls) kann und das Birnchen im Interface leuchtet wenn es Tatsächlich eingeschaltet ist (da ich alle Stromstoßschalter auch manuell betätigen möchten, denn ich möchte, dass beim ausfall der Elektronik trotzdem noch alles ein und ausschaltbar ist).
Welche Software wird zusätzlich benötigt? Wie installiere ich diese? Wäre nett wenn mir das jemand für Dumme erkläre  könnte, denn wie gesagt bin totaler Neueinsteiger. ;)

Grüße aus Bayern und Danke im Vorraus  ;)


LazyChiller

Hey,
es gibt bereits in FHEM integriert ein Modul zum steuern der GPIOs
Man kann die GPIOs auch auslesen, dafür habe ich aber keine Verwendung und das daher
bis jetzt auch noch nicht getestet. Das Leuchtende Birnchen in der FHEM-Oberfläche hast du automatisch
wenn du das Device als Output deklarierst. Das mit dem manuell schalten verstehe ich nicht ganz.
Willst du noch einen "Hardware"-Schalter dazubauen?

Device anlegen, dadurch sagst du dem FHEM dass der zu schaltende GPIO auf der angegebenen Nummer zu finden ist
define name_des_Device RPI_GPIO #GPIO_PIN

Dem Device sagen, was es sein soll(input oder output
attr name_des_Device direction output

Das Device einem raum zuordnen
attr name_des_Device room raumName

Und meiner Meinung nach wichtig bei benutzung der China-Relais, das invertieren, damit aus auch aus ist und nicht an...
attr name_des_Device active_low yes

Wenn du weitere Fragen hast schau dir einfach die Dokumentation dazu an, die findest du auf deiner FHEM Startseite unter "Commandref" und dann in dem Haufen an Einträgen unter "RPI_GPIO"

lg

FabianRpi

Danke, dass war schonmal sehr Hilfreich  ;)

Die Schalten kommt bei uns in unser "PartyGartenhäuschen"
und die Grundidee war, dass hinter die Bar ein Sicherungskasten kommt wo man dann alles ein und ausschalten kann, dann kam mir aber die Schnapsidee, alles zu Automatisieren und hab jetz desswegen Stromstoßrelais die manuell betätigbar sind angeschafft  ( wie die von Eltako) und 2 Lampen und ein Lüfter kann noch manuell von jeweils einem Schalter aus geschalten werden.

Mfg  ;D

FabianRpi

Und wie kann ich jetzt die GPIOs für einen Impuls ansteuern, so dass sie bei einem klick auf on 1 Sekunde auf High gehen und dann wieder auf Low so dass das Stromstoßrelais anzieht und dann wieder ein Signal an einen GPIO anliegt welches ich dann auslesen kann in FHEM?

klausw

Zitat von: FabianRpi am 13 Mai 2016, 11:57:54
Und wie kann ich jetzt die GPIOs für einen Impuls ansteuern, so dass sie bei einem klick auf on 1 Sekunde auf High gehen und dann wieder auf Low so dass das Stromstoßrelais anzieht und dann wieder ein Signal an einen GPIO anliegt welches ich dann auslesen kann in FHEM?
In der Commandref solltest du auch da fündig werden.
Das Modul unterstützt sie set extensions, welche die Schaltfunktionen erweitern.
Dort findest du on-for-timer
set <devicename> on-for-timer 1
gibt dir einen high Puls von ca. 1s auf dem GPIO aus

Für das Rücklesen müsstest du einen weiteren GPIO verwenden, der als input konfiguriert ist und auf den Statusausgang des Stromstoßrelais (falls vorhanden) oder an dessen Ausgang (Vorsicht bei 230V) geht.
Bei 230V sollte ein Optokoppler dazwischen, wobei ich lieber auf Relais mit separatem Status setzen würde.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

FabianRpi

Danke !  :)
Ja als für den Input hätte ich ein Kondensatornetzteil gebaut welches einen Optokoppler ansteuert. Ich verwende keine Relais aus Platzgründen zudem möchte ich die Verlustleistung so gering wie möglich halten, und ein Kondensatornetzteil ist nahezu Verlustfrei  ;)

FabianRpi

Jetz kann ich den Pin für eine Sekunde über die Befehlszeile einschalten, jedoch wenn ich auf on drücke, bleibt dieser auf on und schaltet sich nicht wieder nach einer Sekunde aus. Gibt es da eine Möglichkeit die set extensions dauerhaft zu Speichern oder sowas wie einen Dummy anzulegen der dann bei on diesen Befehl on-for-timer 1 ausführt?.

mfg  :D

NewRasPi

Hallo FabianRpi
ich habe das mit dem Befehl:
attr <deviceName> webCmd "on-for-timer 1:off" in einem Dummy so eingerichtet.
Hoffentlich hilft Dir das weiter.
Schöne Grüße
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

KölnSolar

Für das on-for-timer braucht es noch ein attr device follow-on-for-timer 1 zum Funktionieren.
Grüße, Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Michael70

#9
Hallo,

ich verwende dieses Relais für meine Schaltaufgaben:

http://www.ebay.de/itm/4-Channel-Relay-Module-With-Optocoupler-High-Level-Triger-for-Arduino-5V-12v-24v-/331456873817?var=&hash=item7de020182a

Das ist High Pegel gesteuert und ganz wichtig separate Pegel für VCC (+5V) und In (GPIO 3,3V).

Noch eine Frage, warum willst Du denn die Schaltzustände über den Optokoppler abfragen ? Ich würde hier eher eine Dummy Variable definieren und "mitschalten".
Ah, du schaltest auch manuell... ich würde aber eher die Taster über den Raspi einlesen und dann damit schalten.
Ich verwende so etwas ähnliches und hatte noch nie einen Ausfall der Elektronik.
Die Schaltzustände 230V über einer Optokoppler an den Raspi scheint mir eher aufwändig und etwas fertiges vermtl. relativ teuer.

VG, Michael
Raspberry Pi 4 (Raspberry OS Bullseye), FHEM 6.2, 1-Wire USB Busmaster. Anwendung: Kellerlüftung und Heizung Zirkulationspumpe, Balkon PV Überschuss Steuerung

FabianRpi

Hallo, ich verwende keine Taster die ich über den Pi auslesen lasse da ich als Elektroniker EGS ganz genau weiß, dass Elektronik immer fehler macht und ich ein System möchte, dass auch dann funktioniert, wenn mir die Elektronik abschmiert.
Zu der meiner Schaltung: Ich habe eine Lochrasterplatine genommen auf der ich 8 Kondensatornetzteile aufgelötet habe ( 2.2 kO + 3.3 kO in reihe an den eingang vom Optokoppler dazu ein 22nF Foko in reihe und zum Foko 2x 470 kO in reihe parallel geschalten. Ausgangsseitig werden die 3.3 V die der Pi ausgiebt an einen Pulldownwiderstand zu dem ich einen 10uF elko parallel geschalten habe zur Signalstabilisierung. Das ganze zum auflöten ca. 30 mins Arbeit und dann haben ich die Leiterplatte noch mit Epoxidhartz ausgegossen. Ich denke dass jede andere Lösung kostenintensiver gewesen wäre ;)

Gruß Fabian

FranzB94


homeum

Zitat von: FabianRpi am 10 Oktober 2016, 08:30:18
Ich habe eine Lochrasterplatine genommen auf der ich 8 Kondensatornetzteile aufgelötet habe ( 2.2 kO + 3.3 kO in reihe an den eingang vom Optokoppler dazu ein 22nF Foko in reihe und zum Foko 2x 470 kO in reihe parallel geschalten. Ausgangsseitig werden die 3.3 V die der Pi ausgiebt an einen Pulldownwiderstand zu dem ich einen 10uF elko parallel geschalten habe zur Signalstabilisierung.

Kannst du mal bitte ein Schaltbild dazu einstellen? So erklärt, ist es doch ziemlich unverständlich.
Eine Handskizze reicht völlig aus, muss ja nicht schön sein... ;)


FabianRpi