Umstieg von Rasppi auf BBB - GPIO-Ansteuerung

Begonnen von blueberry63, 10 Juni 2014, 16:41:28

Vorheriges Thema - Nächstes Thema

Billy

#15
Zitat von: klausw am 12 Juni 2014, 12:56:48
Aber muss direction nicht auf "in" oder "out" gesetzt werden?
Antwort: da gibt es eine zweite Alternative!
To set a gpio as output, we set its direction as in or out. For outputs there is an alternative nomenclature where output direction can be set instead as high or low to help with glitch free operation.
http://www.armhf.com/using-beaglebone-black-gpios/

Bin gerade im Urlaub deshalb kann ich auch nicht testen.

Schlage vor blueberry63 testet wenn er seinen BBB hat. Wir helfen dann soweit nötig.

Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

epsrw1

#16
es gibt ein vergleichbares ding für den cubie. die zahl der pins ist deutlich höher, ebenso ist deren verwendung weniger eingeschränkt beim cubie.
zielführend für einen kleinen überblick dürften folgende links sein:
http://hempel.dd-dns.de/cms/index.php/cubietruck-cubieboard-3/articles/die-gpio-am-cubietruck-verwenden.html
http://docs.cubieboard.org/tutorials/common/gpio_on_lubuntu
http://www.cubieforums.com/index.php?topic=103.0
http://linux-sunxi.org/Fex_Guide#.5Bgpio_para.5D
http://www.cubieforums.com/index.php?topic=2622.0
https://github.com/gootoomoon/WiringCB-python

wieviel von der sysconfig vorarbeit das WiringCB-python einem abnimmt kann ich im augenblick nicht testen da mein cubie vorübergehend anderweitig belegt ist.
ich vermute mal, beim BBB unterscheidet sich das nicht (außer in der pinbelegung)

Ich habe keine Ahnung, aber davon wenigstens ganz viel

blueberry63

Hallo,

melde mich wieder: der BBB ist angekommen und erfreulicherweise mit Debian Wheezy auf dem EMMC betankt. Man kann also direkt loslegen. Ich habe zwar erst am DO mehr Zeit, aber FHEM ist schon installiert. Ich werde also die nächsten Tage (spätestens DO) mal einen GPIO-Eingang testen (auf OS). Wenn das funktioniert, kann es mit FHEM weitergehen.

Gruß
Blueberry63

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Billy

Zitat von: blueberry63 am 16 Juni 2014, 16:12:34
Hallo,

melde mich wieder: der BBB ist angekommen und erfreulicherweise mit Debian Wheezy auf dem EMMC betankt. Man kann also direkt loslegen. Ich habe zwar erst am DO mehr Zeit, aber FHEM ist schon installiert. Ich werde also die nächsten Tage (spätestens DO) mal einen GPIO-Eingang testen (auf OS). Wenn das funktioniert, kann es mit FHEM weitergehen.
Gruß
Blueberry63
Hast du FHEM im EMMC installiert?
Wo legst du deine Daten ab? d.h. die FHEM Logs? EMMC oder microSD?
Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

blueberry63

@Billy,

wie ich schon sagte: Debian war schon im EMMC vorinstalliert. Ich habe nur die üblichen Anpassungen gemacht (Netzwerk, dpkg-reconfigure...) und dann FHEM installiert. Momentan läuft alles im EMMC. Im aktuellen System (Raspi) logge ich in eine Datenbank, die auf meinem NAS läuft (Cubietruck) und so werde es auch beibehalten. Im EMMC sind z.Zt. ca. 50% des Platzes belegt:


Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  3.4G  1.6G  1.7G  49% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   100M  584K   99M   1% /run
/dev/disk/by-uuid/1e1267fe-5439-487d-8883-e6fbb3894fd3  3.4G  1.6G  1.7G  49% /
tmpfs                                                   249M     0  249M   0% /dev/shm
tmpfs                                                   249M     0  249M   0% /sys/fs/cgroup
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   100M     0  100M   0% /run/user
/dev/mmcblk0p1                                           96M   72M   25M  75% /boot/uboot


Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

Ich habe mal auf die schnelle ein "RPI_GPIO-Device" angelegt, bekomme aber sofort folgende Fehlermeldung auf der Konsole (und FHEM beendet sich):


Can't exec "/usr/local/bin/gpio": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 285, <$fh> line 47.
Can't use an undefined value as a symbol reference at ./FHEM/51_RPI_GPIO.pm line 314.


Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

klausw

Zitat von: blueberry63 am 16 Juni 2014, 16:57:45
Ich habe mal auf die schnelle ein "RPI_GPIO-Device" angelegt, bekomme aber sofort folgende Fehlermeldung auf der Konsole (und FHEM beendet sich):

Can't exec "/usr/local/bin/gpio": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 285, <$fh> line 47.
Can't use an undefined value as a symbol reference at ./FHEM/51_RPI_GPIO.pm line 314.


Oh je, wer hat das wieder Programmiert B)

Das ist sicher der Block mit den Pullupeinstellungen...ich kann gerade nicht schauen.

Öffne die Datei bitte und suche if ($attr eq 'pud_resistor')
Dann alles was danach zwischen { und } kommt löschen.
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

blueberry63

Sorry, für die späte Antwort, aber im Moment fehlt mir die Zeit für FHEM.

Hiermit
Zitat
Öffne die Datei bitte und suche if ($attr eq 'pud_resistor')
Dann alles was danach zwischen { und } kommt löschen.

funktioniert jedenfalls das Anlegen des RPI_GPIO-Devices.

Das Testen der GPIO-Eingänge muß ich leider verschieben. Erst in 2 Wochen werde ich wieder Zeit haben, hier weiterzumachen.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

klausw

Zitat von: blueberry63 am 23 Juni 2014, 09:07:58
Sorry, für die späte Antwort, aber im Moment fehlt mir die Zeit für FHEM.

Hiermit
funktioniert jedenfalls das Anlegen des RPI_GPIO-Devices.

Das Testen der GPIO-Eingänge muß ich leider verschieben. Erst in 2 Wochen werde ich wieder Zeit haben, hier weiterzumachen.
Ok, gib einfach Bescheid.
Ich werde, wenn ich Zeit finde schon ein paar Änderungen vorbereiten.
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

blueberry63

@Klaus,

noch eine kurze Bemerkung: mir wäre wichtig, daß ich die Eingänge Interrupt-gesteuert überwachen kann:


#############################
# GPIO fuer Gasmessung      #
# (wiringpi wird benötigt ) #
#############################
define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up


Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

klausw

Hi Blueberry,

Zitat von: blueberry63 am 23 Juni 2014, 10:15:43
noch eine kurze Bemerkung: mir wäre wichtig, daß ich die Eingänge Interrupt-gesteuert überwachen kann:


#############################
# GPIO fuer Gasmessung      #
# (wiringpi wird benötigt ) #
#############################
define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up


Interrupt sollte funktionieren (es werden nur schreib/leserechte für die dateien interrupt und value benötigt).
Das Attribut pud_resistor geht aber definitiv nicht, da es über wiringpi eingestellt wird (dafür habe ich auch keine Lösung für das BBB. Wie stellst Du aktuell den pulldown ein?).
Wichtig ist, das vor FHEM start der Pin schon als input definiert ist (dies würde in der neuen version aber vom Modul übernommen).

Grüße
Klaus
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

blueberry63

pud_resistor

... das muß ich mir auf dem BBB auch noch anschauen. Ggf. muß ich eben einen eigenen Pulldown-/Pullup-Widerstand verwenden.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Billy

Zitat von: klausw am 23 Juni 2014, 10:44:12
Hi Blueberry,

Interrupt sollte funktionieren (es werden nur schreib/leserechte für die dateien interrupt und value benötigt).
Das Attribut pud_resistor geht aber definitiv nicht, da es über wiringpi eingestellt wird (dafür habe ich auch keine Lösung für das BBB. Wie stellst Du aktuell den pulldown ein?).
Wichtig ist, das vor FHEM start der Pin schon als input definiert ist (dies würde in der neuen version aber vom Modul übernommen).
Grüße
Klaus
Hallo,
ich habe jetzt mal das Modul RPI_GPIO zur Verwendung am BBB ausgiebig getestet.
Alles funktioniert bestens! :) Auch der Interrupt!  GPIO Eingang hängt über 1k an 3,3V und wird auf low gezogen!
Voraussetzung bei mir: --> Auszug aus der rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# 1-wire fuer GPIO2 initialisieren
##echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots

# startet den Dienst fhem nach 20 Sekunden
(/bin/sleep 20 && /etc/init.d/fhemgg start)  # ein Dienst
# GPIO Initialisierung
#---------------------------------------------------------------------
gpio=/sys/class/gpio

# Steckerleiste P8
# ---------------------------------
# pin 13 --> gpio23 --> LED
echo 23 > /sys/class/gpio/export
# pin 15 --> gpio47 --> Relais
echo 47 > /sys/class/gpio/export
# pin 17 --> gpio27 --> Interrupt Eingang
echo 27 > /sys/class/gpio/export

# Bootwert PIN P8_13 gpio23 festlegen
echo out > /sys/class/gpio/gpio23/direction
echo 0 > /sys/class/gpio/gpio23/value
# ------------------------------------------
# Bootwert PIN P8_15 gpio47 festlegen
echo out > /sys/class/gpio/gpio47/direction
echo 0 > /sys/class/gpio/gpio47/value
# ------------------------------------------
# Bootwert PIN P8_17 gpio27 festlegen
echo in > /sys/class/gpio/gpio27/direction

# Rechte setzen, damit damit die gpio Scripte von fhem ausgeführt werden koennen
cd /sys/devices/virtual/gpio
chown -R fhem:root *
cd /sys/class/gpio
chown -R fhem:root *

# Rechte setzen, damit damit die I2c Module von fhem ausgeführt werden koennen
chown fhem /dev/i2c-*
chgrp dialout /dev/i2c-*
chmod +t /dev/i2c-*
chmod 660 /dev/i2c-*

exit 0

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

blueberry63

@Billy,

ich stehe kurz vor meinem Urlaub und kann daher nicht sofort testen. Aber ich kann ja trotzdem schon mal fragen:


  • Es funktioniert mit der aktuellen Version des RPI_GPIO-Moduls?
  • Wie ist Deine Device-Definition?

Danke auf jeden Fall für Deine Mühe.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

klausw

Zitat von: Billy am 26 Juni 2014, 13:37:03
ich habe jetzt mal das Modul RPI_GPIO zur Verwendung am BBB ausgiebig getestet.
Alles funktioniert bestens! :) Auch der Interrupt!  GPIO Eingang hängt über 1k an 3,3V und wird auf low gezogen!
Super, dann baue ich das GPIO Modul soweit um, das man ihr den Pin nur noch exportieren müsst. Direction kann dann auch im Modul selbst geschaltet werden.

Wie sieht es mit den Rechten der /sys/class/gpio/export aus bevor der code der rc.local ausgeführt wird?
Ist die usergruppe gpio?

Grüße
Klaus
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