Modul für RPi GPIO Zugriff mit Interrupt Funktion für Input

Begonnen von klausw, 15 November 2013, 14:28:41

Vorheriges Thema - Nächstes Thema

frober

Erstmal danke für die Hilfe.

SPI ist nicht aktiv, die Pins lassen sich trotzdem nicht schalten.

Was meinst du genau mit dem gpio utility?
Mit gpio readall kann ich die Belegung (Reservierung) nicht erkennen.

Meinen Raspi habe ich anfangs mit einen 4"-Display betrieben, daher habe ich, als Anfänger, ein Image mit den integrierten Treibern installiert.
Ich glaube, ich habe das über den Verkäufer des Displays bezogen.

Bei Gelegenheit werde ich den Raspi neu aufsetzen und testen, habe einen zweiten zum testen bestellt, damit wird alles einfacher.

Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

klausw

Zitat von: frober am 08 Dezember 2015, 15:32:42
SPI ist nicht aktiv, die Pins lassen sich trotzdem nicht schalten.
Wie hast du das Überprüft?

Zitat von: frober am 08 Dezember 2015, 15:32:42
Was meinst du genau mit dem gpio utility?
Mit gpio readall kann ich die Belegung (Reservierung) nicht erkennen.
gpio readall gibt eine Liste aus
In der Spalte Mode steht die Konfiguration.
ALTx bedeutet, das der Pin alternativ belegt ist
Im Link in meinem letzten Post stehen die alternativen Belegungen drin

Zitat von: frober am 08 Dezember 2015, 15:32:42
Meinen Raspi habe ich anfangs mit einen 4"-Display betrieben, daher habe ich, als Anfänger, ein Image mit den integrierten Treibern installiert.
Ich glaube, ich habe das über den Verkäufer des Displays bezogen.
Die Aufsteckdisplays werden meines Wissens über die SPI angeschlossen.
Je nachdem wie alt das Modul ist können die SPI Kernelmodule beispielsweise auch auch in die /etc/modules eingetragen worden sein

Zitat von: frober am 08 Dezember 2015, 15:32:42
Bei Gelegenheit werde ich den Raspi neu aufsetzen und testen, habe einen zweiten zum testen bestellt, damit wird alles einfacher.
Das ist hilfreich  8)
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

frober

SPI habe ich mit raspi-config und config.txt überprüft, wie du es beschrieben hast.

In Modules steht was vom Display: "...fbtft...gpios=DC:22, Reset:27........gpio_pendown=17...."
Laut gpio readall ist PIN 22 und 27 als Ausgang und high definiert, PIN 17 als Eingang.

Ich denke das wars, danke.

Wie kann ich die PINs freigeben, bzw. die Displaytreiber entfernen?
Oder ist eine Neuinstallation und -Konfiguration einfacher?
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

klausw

Zitat von: frober am 08 Dezember 2015, 17:43:01
SPI habe ich mit raspi-config und config.txt überprüft, wie du es beschrieben hast.

In Modules steht was vom Display: "...fbtft...gpios=DC:22, Reset:27........gpio_pendown=17...."
Laut gpio readall ist PIN 22 und 27 als Ausgang und high definiert, PIN 17 als Eingang.

Ich denke das wars, danke.

Wie kann ich die PINs freigeben, bzw. die Displaytreiber entfernen?
Oder ist eine Neuinstallation und -Konfiguration einfacher?

versuche mal die entsprechenden Zeilen rauszulöschen, dann sollten die Module nicht geladen werden und die Pins entsprechend verfügbar sein
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

Depechem

Hallöchen, ich habe ein paar Fragen zum Thema GPIO des RaspberryPi2.

Ich besitze einen RaspberryPi2 mit FHEM und eineigen HM Geräten.
Nun möchte ich meine alte Alarmanalge ablösen und ins FHEM einbinden.
Ich habe 6 normale Reedkontake an den Türen die ich ins FHEM einbinden möchte.
Nun habe ich gelesen das ich diese evtl. direkt an den RaspberryPi2 an eine GPIO Schnittstelle hängen kann!?
Die normalen Litzekabel vom jeweiligen Reedkontakt zum RaspberryPi2 sind ca. 10-30m lang. Würde der Schaltkontakt direkt an den RaspberryPi2 damit funktionieren? Falls ja, ist dies für eine Alarmanlage Störungssicher genug zwecks Zuverlässigkeit!?
Falls ja, könnte mir jemand erklären wie ich dies verwirklichen kann?
Also welche Pins am Rasp. belegen, welche Dateien(und wie) auf dem Rasp. installieren und welche Befehle ich in die fhem.config eintragen muss!?
Ich bin dabei noch eher ein Neuling.

Würde mich echt freuen wenn mir jemand Licht ins dunkle bringen könnte
Vielen Dank
Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Ellert

Ich hab mal für Dich gegoogelt.
ZitatWürde der Schaltkontakt direkt an den RaspberryPi2 damit funktionieren?
http://www.forum-raspberrypi.de/Thread-gpio-taster-max-kabellaenge
ZitatStörungssicher genug zwecks Zuverlässigkeit!?
Was heisst genug? Für die Versicherung, für Dich?
http://www.kriminalberatung.de/alarmanlagen/
http://anti-scam.de/cgi-bin/yabb2/YaBB.pl?num=1384862385/9#9
ZitatFalls ja, könnte mir jemand erklären wie ich dies verwirklichen kann?
https://klenzel.de/1839
ZitatAlso welche Pins am Rasp. belegen
http://forum.fhem.de/index.php/topic,16519.msg370939.html#msg370939
Zitatwelche Dateien(und wie) auf dem Rasp. installieren
http://fhem.de/commandref_DE.html#RPI_GPIO
Zitatwelche Befehle ich in die fhem.config eintragen muss!?
http://www.fhemwiki.de/wiki/Konfiguration#Bearbeitung_der_Konfiguration


klausw

Zitat von: Depechem am 15 Dezember 2015, 22:50:57
Ich habe 6 normale Reedkontake an den Türen die ich ins FHEM einbinden möchte.
Nun habe ich gelesen das ich diese evtl. direkt an den RaspberryPi2 an eine GPIO Schnittstelle hängen kann!?
Die normalen Litzekabel vom jeweiligen Reedkontakt zum RaspberryPi2 sind ca. 10-30m lang. Würde der Schaltkontakt direkt an den RaspberryPi2 damit funktionieren? Falls ja, ist dies für eine Alarmanlage Störungssicher genug zwecks Zuverlässigkeit!?
Falls ja, könnte mir jemand erklären wie ich dies verwirklichen kann?
Sollte eigentlich funktionieren.
Pullup (10k) an den GPIO. Über den Reedkontakt dann die Masse auf den GPIO anschließen.
Also wenn Reedkontakt offen -> GPIO high
Reedkontakt geschlossen -> GPIO low

Zitat von: Depechem am 15 Dezember 2015, 22:50:57
Also welche Pins am Rasp. belegen, welche Dateien(und wie) auf dem Rasp. installieren und welche Befehle ich in die fhem.config eintragen muss!?
Wenn du ein relativ frisch aufgesetztes System hast sollte es problemlos gehen.
Hier wird dir geholfen.
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

klausw

#277
Anbei mal eine neue Version, die auch den Pfad vom neuerdings beim Jessie mitgelieferten WiringPi berücksichtigt.
Außerdem wird /sys/class/aml_gpio als Basispfad für das ODROID-C1 erkannt.
Für den Fall das Basispfad oder gpio Utility von WiringPi irgendwo anders sind, lassen sich jetzt beide Werte beim define mit übergeben.
Werde es nächste Woche einchecken wenn keine Probleme auftauchen.
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

Lion


pejonp

#279
Zitat von: klausw am 17 März 2016, 00:00:26
Anbei mal eine neue Version, die auch den Pfad vom neuerdings beim Jessie mitgelieferten WiringPi berücksichtigt.
Außerdem wird /sys/class/aml_gpio als Basispfad für das ODROID-C1 erkannt.
....
Hallo Klaus,

bin jetzt erst zum testen gekommen. In Zeile 26 habe ich die Reihenfolge getauscht, da der ODROID-C1 auch ein "/sys/class/gpio" hat.
Jetzt werden Impulse erkannt. Auf meinem RasPi habe ich es noch nicht getest. Mache ich aber noch.

my @gpiodirs = ("/sys/class/aml_gpio", "/sys/class/gpio" );

Jörg

PS: Hab es auf meine RasPi getestet und es funktioniert. Vielen Dank.
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

klausw

Zitat von: pejonp am 20 März 2016, 18:34:01
bin jetzt erst zum testen gekommen. In Zeile 26 habe ich die Reihenfolge getauscht, da der ODROID-C1 auch ein "/sys/class/gpio" hat.
Jetzt werden Impulse erkannt.
PS: Hab es auf meine RasPi getestet und es funktioniert. Vielen Dank.
Ok, dann tausche ich das noch, notfalls lässt es sich ja auch im define angeben.
Sehr witzig was ist beim ODROID-C1 denn im /sys/class/gpio vorhanden?
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

klausw

zur Vollständigkeit noch etwas aus einem anderen Thread. Das Problem bezog sich das auf den Interrupt.
Dieser funktionierte nach shutdown/restart nicht mehr.
Bugfix folgt im nächsten update.
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

pejonp

Zitat von: klausw am 21 März 2016, 12:50:54
Ok, dann tausche ich das noch, notfalls lässt es sich ja auch im define angeben.
Sehr witzig was ist beim ODROID-C1 denn im /sys/class/gpio vorhanden?
Hallo Klaus,

soweit ich das verstanden habe, kann diese Verzeichnis genommen werden, wenn nur Ausgänge benötigt werden. Das andere Verzeichnis( /sys/class/aml_gpio) ist für Eingänge(Interupt/Flanken) und auch Ausgänge. So hat es jedenfalls bei mir funktioniert.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

nicor2k

Hallo Klaus!

Ich hoffe, Du kannst mir helfen - ich komme gerade nicht weiter!
Ich habe zunächst die 51_RPI_GPIO.pm aus dem ersten Beitrag hier kopiert - die ist aber schon recht alt (angeblich vom 15.11.13). Ein Update von FHEM funktioniert aber nicht, weil immer die Fehlermeldung kommt:

Events (global only):
2016-04-13 01:04:18 Global global http://fhem.de/fhemupdate/controls_fhem.txt: Can't connect(1) to http://fhem.de:80: IO::Socket::INET: Bad hostname 'fhem.de:80'

Ich habe drei GPIO Pins angelegt, einen als Input (da ist ein Bewegungssensor angeschlossen), die anderen beiden als Output (mit LEDs zum Testen). Per Python-Skript kann ich (wenn auch als sudo) alles steuern oder abfragen.

Hier meine FHEM Defs:


define RPIPin37 RPI_GPIO 26
attr RPIPin37 direction output

define RPIPin11 RPI_GPIO 17
attr RPIPin11 direction output

define RPIPin8 RPI_GPIO 14
attr RPIPin8 direction input
attr RPIPin8 interrupt both


Der Bewegungssensor reagiert gar nicht (ändert den state nicht von ??? auf etwas anderes). Im log habe ich auch einige Fehlermeldungen, z.B.:


2016.04.13 01:03:26 1: Can't open file: RPIPin37, value
2016.04.13 01:03:32 1: Can't open file: RPIPin11, value
2016.04.13 01:03:46 1: Can't open file: RPIPin11, value
2016.04.13 01:03:47 1: Can't open file: RPIPin8, value
2016.04.13 01:14:31 1: RPIPin37: failed to export pin gpio26
2016.04.13 01:14:36 1: RPIPin11: failed to export pin gpio17
2016.04.13 01:14:41 1: RPIPin8: failed to export pin gpio14
2016.04.13 01:14:41 1: Can't open file: RPIPin8, edge


Trotzdem liess sich vorhin die LED anschalten ("set RPIPin11 on") - dann aber nicht mehr aus: Sie wird zwar aus angezeigt in FHEM, leuchtet aber weiter. Jetzt reagiert sie gerade gar nicht mehr...

Ich habe den User fhem der Gruppe gpio zugefügt mit:

sudo adduser fhem gpio


Vielen Dank!
FHEM auf Raspberry Pi 1 - 4 | Meine Browser-Plugins | Meine FHEM-Tipps

Wernieman

Ich würde mir eher Gedanken machen, warum Du nicht updaten kannst:

Bad hostname 'fhem.de:80'

Funktioniert bei Deinem Rechner die Namensauflösung?

host fhem.de
ping fhem.dehost

Bitte gib uns den Output.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html