Neues Modul i2cBMP180

Begonnen von Dirk, 21 Juli 2013, 23:52:20

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: PeMue schrieb am Mi, 25 September 2013 16:43Da passt ja gar kein Pin ins Raster und den Preis finde ich auch relativ hoch.

das hast Du völlig mißverstanden - mir ging es nicht um eine Produktempfehlung, sondern darum, dass sich schonmal jemand über das Thema Gedanken gemacht hat. Mehr nicht.

@Dirk: dann pack auch gleich einen einen Helligkeitsssensor mit drauf. Die Sache mit dem LCD finde ich gut - aber bitte ohne Funkhardware.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

ZitatDie Sache mit dem LCD finde ich gut - aber bitte ohne Funkhardware.
Daher ist die Funkhardware ja optional. Das CSM muss nicht bestückt werden :)
Alternativ kann man die Platine derzeit auch mit einen RS485 Tranceiver bestücken.

Gruß
Dirk

PeMue

Hi Betateilchen,

ich mache mir gerade Gedanken über einen Helligkeitssensor. Ich würde gerne die Beleuchtungstärke messen (z.B. zur Steuerung von Markisen, Rollläden, etc.) mit einem TSL2561. Für meine Photovoltaikanlage wäre aber die Globalstrahlung interessanter. Da suche ich aber noch einen vernünftigen Sensor (AMS/Taos sollte da aber was haben). Gehäuse bzw. Funkstrecke ähnlich wie bei diesem, aber vermutlich folgenden Änderungen (Antenne auf der Leiterplatte, Messung von Spannung und Temperatur, ggf. Integration von Prozessor und CC1101 wegen Preis CSM, ...). Aber wie gesagt momentan nur als Idee ... Und das gehört dann auch in die Bastelecke.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

Zitat von: PeMue schrieb am Do, 26 September 2013 06:18Für meine Photovoltaikanlage wäre aber die Globalstrahlung interessanter. Da suche ich aber noch einen vernünftigen Sensor

Das Thema wurde aber doch schon hier im Forum in epischer Breite diskutiert und samt Berechnungsformeln gelöst.

Link
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Danke für den Hinweis, habe ich noch nicht gesehen. Aber den TSL250 bzw. TSL260 hatte ich auch im Visier.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Achim

Hallo,

ich habe da ein paar Fragen:
Mit hipi-i2c wird der zweite I2C-0 Port auf den RPi's Rev.2 (Connector P5) aktiviert. Wenn ich nun einen RPi Rev.1 habe und das i2cBMP Modul auf den P1 manuell verdrahte, müsste doch hipi-i2c überflüssig sein, da dieser I2C Port bereits aktiviert ist. Ist das so?

Im Forum steht, dass das i2cBMP Modul mit dem COC Modul zusammen funktioniert. Ist dies auch mit dem RPi Rev.1 der Fall, da auf dem I2C-0 dann beiden Module liegen?

Und erkennt das 51_i2cBMP180.pm Programm den Anschluss des Moduls an einem "alten" RPi und verwendet dann gegebenenfalls nicht das pihi-i2c Programm?

Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

Dirk

Hi Achim,

hipi-i2c wird beim RPi Rev.2 benutz um den 2. I2C-Bus vom Kamera-Connector zum P5 umzurouten.
Wenn du den I2C-Bus am P1 benutzt sollte das überflüssig sein. Egal ob Rev.1 oder Rev.2.
Lediglich beim Define muss das richtige I2C-Device angegeben werden.

Beim Rpi Rev.1 sollte das /dev/i2c-0 sein.

Gruß
Dirk

betateilchen

Hat eigentlich schonmal jemand versucht, so eine Platine von einem RaspberryPi wieder runterzulöten? Ich habs aufgegeben... Mir ist ein Raspberry abgeraucht und ich wollte wenigstens die Sensorplatine retten, was sich als ziemlich unmögliches Unterfangen erwiesen hat :(

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Hi betateilchen,

wenn es deinen Raspberry zerlegt hat, dann Nimm eine Heißluftpistole (Wenn vorhanden) und heize von unten ordentlich ein.
So habe ich auch schon andere Bauteile von Platinen retten können.

Gruß
Dirk

P.s. Was hat deinen Raspberry denn umgebracht?

betateilchen

Zitat von: Dirk schrieb am Mi, 09 Oktober 2013 20:37P.s. Was hat deinen Raspberry denn umgebracht?

nicht was? sondern wer? => meine Putzfrau
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klausw

Habe neue Modulversion mit Unterstützung für die physical. I2C Module eingecheckt.
Damit kann es auch auf anderen Systemen (FRM, CubieBoard, BeagleBoard) genutzt werden.

Die neue Version funktioniert weiterhin alternativ standalone mit der HiPi Bibliothek.

Infos zu den physical. I2C Modulen gibt es hier:
http://forum.fhem.de/index.php/topic,20452.0.html
http://forum.fhem.de/index.php/topic,19797.0.html
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

PeMue

#116
Hallo zusammen,

ich habe die Installation nach betateilchens skript ausgeführt.
Auf der Raspberry Pi (Typ B) Konsole kommt folgendes:
i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

dito für die Ausgabe in der fhem Kommandozeile
{ qx(i2cdetect -y 0) }
Nur wenn ich jetzt mit
define BMP180 I2C_BMP180 /dev/i2c-0
den Sensor definiere, kommt folgendes:
$name error: HiPi library not installed
Ich dachte, es läge an den Rechten, aber die udev Regel greift.
Langsam gehen mir etwas die Ideen aus.

Danke + Gruß

PeMue

Edit:
Und auf der Raspberry Pi Konsole kommt:
sudo hipi-upgrade
Latest version of HiPi Perl Modules is already installed

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

klausw

Zitat von: PeMue am 14 Oktober 2014, 19:58:50
Langsam gehen mir etwas die Ideen aus.

hast du die RPII2C Variante mal getestet?
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

PeMue

Hallo Klaus,

danke für den Hinweis. Die Variante mit RPII2C funktioniert. Ich habe auch mal die grafischen HiPi Tools installiert, aber irgendwie findet fhem die Hi-Pi Tools nicht. Manche Dinge muss man nicht verstehen  ;)

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

MEitelwein

Hallo

im Modul ist noch ein Fehler, der den I2C Betrieb über FRM verhindert:
In der Funktion sub I2C_BMP180_i2cwrite($$$) wird beim Aufruf von I2CWrtFn für i2cwrite eine falsche Parameterliste übergeben: Das Register darf nicht als eigener Hash "reg" geführt werden


CallFn($iodev->{NAME}, "I2CWrtFn", $iodev, {
                        direction  => "i2cwrite",
                        i2caddress => $hash->{I2C_Address},
                        reg =>   $reg,
                        data => join (' ',@data),
                        });


sondern muss als erster Wert im "data" Hash enthalten sein:


CallFn($iodev->{NAME}, "I2CWrtFn", $iodev, {
                        direction  => "i2cwrite",
                        i2caddress => $hash->{I2C_Address},
                        data => $reg.' '.join (' ',@data),
                        });


Als Folge liefert der Sensor nur 0 als Daten zurück, was als 903.4 mBar und 70° C Temperatur interpretiert wird.

Richtig sieht die Funktion so aus:

sub I2C_BMP180_i2cwrite($$$) {
        my ($hash, $reg, @data) = @_;
        if ($hash->{HiPi_used}) {
                eval {
                        $hash->{devBPM180}->bus_write($reg, join (' ',@data));
                        I2C_BMP180_I2CRec($hash, {
                                direction  => "i2cwrite",
                                i2caddress => $hash->{I2C_Address},
                                reg =>                          $reg,
                                data =>                         join (' ',@data),
                        });
                };
                Log3 ($hash, 1, $hash->{NAME} . ': ' . I2C_BMP180_Catch($@)) if $@;;
        } else {
                if (defined (my $iodev = $hash->{IODev})) {
                        CallFn($iodev->{NAME}, "I2CWrtFn", $iodev, {
                        direction  => "i2cwrite",
                        i2caddress => $hash->{I2C_Address},
                        data => $reg.' '.join (' ',@data),
                        });
                } else {
                        return "no IODev assigned to '$hash->{NAME}'";
                }
        }
}