Hi
an alle die das interessiert!
Ich habe das Modul 58_GPIO2.pm von Fladdy (RASPI) für das Beaglebone Black umgeschrieben.
Voraussetzung ist die Vorgehensweise nach.
http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/
A 18B20 was mounted with the data pin in P9.22.
Meine Schritte auf dem BBB:
1. apt-get install device-tree-compiler --> Installation
2. Patch einspielen --> sonst wird @ nicht erkannt
Upgrade distro "device-tree-compiler" package
wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
chmod +x dtc.sh
./dtc.sh
weiter nach obigem Link bis:
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots
Dann prüfen mit! --> 10-000801e2af93 --> ersetzten durch euren Sensor!
cat /sys/devices/w1_bus_master1/10-000801e2af93/w1_slave
--> Ergebnis
29 00 4b 46 ff ff 04 10 a6 : crc=a6 YES
29 00 4b 46 ff ff 04 10 a6 t=20500
Das wars! --> mit angehängtem Modul 58_GPIOBBB.pm
und Eintrag in der fhem.cfg
define BBB GPIOBBB BUSMASTER
geht der Rest automatisch. ( gepatchte autocreate.pm) zum Anlegen des SVG-Plots natürlich auch einspielen!
(//)
Gruss
Billy
-- edit -- die Forumsoftware hat grade mal wieder versagt und meinen Text sinnloserweise in einen falschen Thread gepostet.
Hallo,
danke für das Modul. Es funktioniert gut, aber nur mit einem 1-Wire-Busmaster.
Aufgrund meiner ungünstigen 1-Wire-Leitungstopologie musste ich mein Kabel in zwei Linien auftrennen. Dazu habe ich zwei 1-Wire-Busmaster (GPIO02 = P9.22 und GPIO03 = P9.21) auf meinem Beaglebone implementiert. Ich habe das Unterprogramm GPIOBBB_GetSlaves so umgeschrieben, dass es Sensoren, die an unterschiedlichen 1-Wire-Busmaster angeschlossen sind, beim autocreate erkennt.
Hier das geänderte sub GPIOBBB_GetSlaves:
sub GPIOBBB_GetSlaves($) {
my ($hash) = @_;
my $dir= "/sys/bus/w1/devices";
opendir(SLAVES, $dir) or die "$dir: $!";
my @lines= readdir(SLAVES);
closedir(SLAVES);
# shift first two lines
shift(@lines);
shift(@lines);
my @slaves;
foreach my $line (@lines) {
if ($line !~ /w1_bus_master/) { push(@slaves, $line);GPIO_GetSlave($hash,$line) }
}
$hash->{SLAVES} = join(',',@slaves);
return;
}
Vielleicht kann es ja der Autor übernehmen.
Romoker
Hallo Billy, hallo Romoker,
genau so etwas habe ich gesucht :) auf meinem beaglebone black möchte ich onboard ca. sechs 18B20 Temperatursensoren von der Heizung Anzeigen auf der Fhem.
Jetzt habe ich ein kleines Problem >:( leider geht der folgende link nicht mehr
http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/ (http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/)
weiter nach obigem Link bis:
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots
und weiß da nicht mehr weiter
Zitat von: Billy am 19 Oktober 2013, 15:44:14
Voraussetzung ist die Vorgehensweise nach.
http://hipstercircuits.com/dallas-one-wire-temperature-reading-on-beaglebone-black-with-dto/
A 18B20 was mounted with the data pin in P9.22.
Meine Schritte auf dem BBB:
1. apt-get install device-tree-compiler --> Installation
2. Patch einspielen --> sonst wird @ nicht erkannt
Upgrade distro "device-tree-compiler" package
wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
chmod +x dtc.sh
./dtc.sh
weiter nach obigem Link bis:
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots
könnte mir da jemand eventuell weiter helfen ;)
Im Vorraus schon mal Danke ...
Gruß Andreas
Verwende einfach die BB-W1-00A0.dtbo im Anhang!
Diese BB-W1-00A0.dtbo kann dann für alle BBB gleichermaßen genutzt werden! (zumindest bei mir)
d.h. die Compilierung ist dann nicht notwendig wenn man immer nur P9 / 22 nutzen will!
Copy it:
cp BB-W1-00A0.dtbo /lib/firmware/
Enable it:
echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots
Dann weiter wie oben beschrieben! :)
Gruß Billy
Der Code von hipstercircuits nach meinen Unterlagen?
----------------------------------------------------------------
A 18B20 was mounted with the data pin in P9.22,
On your BeagleBone (Black), try this:
nano BB-W1-00A0.dts
Copy-paste this:
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "BB-W1";
version = "00A0";
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
"P9.22",
/* the hardware IP uses */
"gpio0_2";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
dallas_w1_pins: pinmux_dallas_w1_pins {
pinctrl-single,pins = < 0x150 0x37 >;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
onewire@0 {
compatible = "w1-gpio";
pinctrl-names = "default";
pinctrl-0 = <&dallas_w1_pins>;
status = "okay";
gpios = <&gpio1 2 0>;
};
};
};
};
Compile it:
dtc -O dtb -o BB-W1-00A0.dtbo -b 0 -@ BB-W1-00A0.dts --> Ergebnis dtbo in Anlage
das ging aber schnell, Danke für die Rückmeldung.
Werde das morgen mal umsetzen ::)
Habe das ganze auch für den BBG (Beaglebone Green) getestet, da ging das nicht!
Da muss im Code die zeile --> compatible = "ti,beaglebone", "ti,beaglebone-black";
um den BBG ergänzt werden. --> compatible = "ti,beaglebone","ti,beaglebone-black","ti,beaglebone-green";
In Anlage die compilierte für BBB und BBG funktionierende
BB-1WIRE-P9-22-00A0.dtbo
Gruß Billy
Hallo Billy,
danke noch für die geänderte dtbo :).
Bin erst heute dazu gekommen das ganze da mal zu integrieren, habe aber noch keinen Erfolg >:(
Das liegt aber an meinen schlechten Linux Kenntnissen (das letzte mal auf der UNI in den 70er Jahren) da beiße ich mich aber jetzt durch :)
Gruß Andreas