Firmata mit AM2302/DHT22 GY-65/BMP085 GY-30

Begonnen von Edi77, 10 September 2015, 22:49:21

Vorheriges Thema - Nächstes Thema

thymjan

#30
Hat das Ändern des Oversamplings keine Veränderungen gebracht?
Du kannst Messungen auch häufiger manuell veranlassen, indem Du direkt im BMP180 Modul auf set ReadValues klickst. Erwärm den Fühler mal etwas (Finger drauf oder anhauchen) und schau was passiert.
Zumindest kommen jetzt veränderliche Messwerte an. Und das mit den etwa halben Druckmesswerten hatte ich auch, bis ich das Oversampling abgestellt hatte.
Vermutlich wird in der Firmata der Messwert ausgelesen bevor der Sensor mit der Berechnung fertig ist. Je höher das Oversampling, desto mehr Zeit braucht der Sensor um den Messwert bereitzustellen.

Edi77

Bin leider im Moment nicht Zuhause wo mein Sensor ist ;)
Werde das später mal testen.
Im Moment sieht das so aus.

define BMP085 I2C_BMP180
attr BMP085 IODev FIRMATA1
attr BMP085 model BMP085
attr BMP085 oversampling_settings 0
attr BMP085 poll_interval 5
attr BMP085 room FIRMATA
attr BMP085 verbose 5
define FileLog_BMP085 FileLog ./log/BMP085-%Y-%m.log BMP085:T:.*
attr FileLog_BMP085 logtype text
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Edi77

#32
Jetzt wird es seltsam habe über das web frontend oversampling_settings 0 eingestellt und siehe da, es geht  :o ;) ;D
Muss ich das jetzt verstehen ?

Würde dieser HTU21D gehen?
http://www.amazon.de/HTU21D-Temperatur-Luftfeuchtigkeit-Sensor-Module/dp/B010B1COYW/ref=sr_1_4?ie=UTF8&qid=1442934803&sr=8-4&keywords=HTU21-D
Was kannst du als Lichtsensor und Luftqualität empfehlen?

Kann man über einen Arduino I²C und 1-Wire Bus Sensoren gleichzeitig via Firmata mit FHEM ansteuern?
Ich dachte ich hätte irgendwo mal gelesen man muss ich für eins von beiden entscheiden ......... bin mir aber nicht mehr sicher
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

thymjan

#33
Herzlichen Glückwunsch!

Der HTU21D sollte gehen. Musst halt an 3,3V anschließen.

Siehe hier:
https://learn.sparkfun.com/tutorials/htu21d-humidity-sensor-hookup-guide

Da ist so ne Lötbrücke drauf wegen den pullup-Widerständen, wenn Du mehrere I2C Devices hast musst Du die evtl. weg machen. Kriegst das hin?

Edi77

Die machen auf jede Sensorplatine einen Bus Abschlusswiderstand?
Ich vermute mal das ist der kleine linke schwarze wo, ich vermute mal, 472 drauf steht?

Site dem Update steht oben neben save config ein rotes Fragezeichen.
Auch wenn ich es öffne und bestätige sind die Einstellungen nach einem Neustart weg.

Im mache jetzt die Änderungen über die Konsole mit nano oder gedit als root, aber ist das wirklich noch die einzige Möglichkeit?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

thymjan

#35
Nein es sind 2 pullup-Widerstände die SCA und SCL auf HIGH stellen. Wenn das schon ein anderes I2C Device macht, ist das nicht mehr notwendig. Sonst fließt – wenn das Signal auf LOW gezogen wird – unnötig viel Strom. Auf dem Modul ist in der Mitte ein "Lötjumper". Einfach mit Lötzlitze oder Lötpumpe nach dem kurzen Erhitzen mit dem Lötkolben wegsaugen.

Das ist jetzt gefährliches Halbwissen - vielleicht weiß einer von den alten Hasen besser Bescheid:
Ist nur ein pullup-Widerstand (4k7 Ohm) da, fließt bei 3,3V ein max. Strom von 0,7mA.
Habe ich zwei, verdoppelt sich der Strom, also 1,4mA. Vermutlich bringt es den Arduino nicht um, da habe ich momentan keine Spezifikationen vorliegen...


Um das rote Fragezeichen wegzubekommen, musst Du auf "Save config" klicken.
Sobald Du eine Änderung in der Oberfläche vorgenommen hast, erscheint das rote Fragezeichen wieder, bis Du erneut abspeicherst.
Editiere nichts mehr direkt in fhem.cfg!
Definiere deine neuen Devices über die obere weiße Zeile.  Dann kannst Du durch Anklicken des definierten devices die Attribute komfortabel konfigurieren.

thymjan

#36
ZitatKann man über einen Arduino I²C und 1-Wire Bus Sensoren gleichzeitig via Firmata mit FHEM ansteuern?
Ich dachte ich hätte irgendwo mal gelesen man muss ich für eins von beiden entscheiden ......... bin mir aber nicht mehr sicher

I2C und 1-Wire geht schon, nur mit ethernet wird's dann knapp. Habe einen Arduino Micro mit I2C und OWX mit FRM via USB in Betrieb.

ZitatWas kannst du als Lichtsensor und Luftqualität empfehlen?
Da kenne ich mich noch nicht aus.
In der FHEM Referenz ist als Lichtsensor der TSL2561 (auch I2C) gelistet.

Edi77

Die Lötbrücke in der Mitte sollte kein Problem sein.
Theoretisch wird durch die Parallelschaltung der Wiederstände, wenn diese gleich groß sind, der Gesamtwiderstand halb so groß, und der Strom verdoppelt sich.
Ob es dadurch so ungewollten Signalreflektionen auf dem Bus kommen kann, weiß ich auch nicht.
Normal sollte der Abschlusswiderstand am Ende des Bus sein, so habe ich es vor ewigen Zeiten mal gelernt ............

Ich habe mir die Firmata noch nicht so im Detail angeschaut, aber wie ich aus deiner An twort schließe, kann man wohl die Pins bestimmen wo 1-Wire und I²C drauf läuft?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

thymjan

Es ist kein Abschlusswiderstand, sondern ein pullup-Widerstand. Das ist ein Unterschied.
Damit wird der "default"-Signalzustand definiert, damit der nicht in der Luft hängt und hin und her zappelt.

Zu Deiner anderen Frage:
I2C ist fix. One-Wire pin kannst Du wählen, allerdings funktioniert nicht jeder.

Edi77

Und die Pins für 1-Wire wird dann nicht auf der Firmata im Arduino definiert?
Sondern in der fhem.cfg?

z.B.

# OW
define OW OWX 2  <<< ??? Aber was bedeutet die 2 ???
attr OW IODev FIRMATA
attr OW buspower real
attr OW dokick 1
attr OW loglevel 6
attr OW room FIRMATA
# attr OW DbLogExclude .*

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

thymjan

Genau! Bei mir hat Pin 10 funktioniert. Die niedrigen sind z.T. mit was anderem belegt.
Die Zahl ist der entsprechende Pin auf dem Arduino. Einfach durchprobieren. Wenn's klappt, merkst es sofort.

Edi77

#41
??? Hmmm 2 entspricht dann aber Pin4&5 auf meinem Arduino Uno, wie passt das den zusammen?
Sorry das war I²C da hab ich glaub ich was verwechselt
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Edi77

Noch eine Frage zu der Configurable Firmata mit dem ENC28J60
Kann man die Analog und Digitaleingänge komplett raus nehmen wenn man z.b. nur 1Wire oder I²C nutzen will?
Du hattest diese ja zum Teil noch drin wegen LEDs.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

thymjan


Edi77

Habe den BMP085 jetzt am Uno im Dauereinsatz und läuft gut

Großes DANKE

Jetzt wollte ich an meinem Test Mega 256 mal einen LDR mit 10kOhm in Reihe am A0 Eingang als Lichtsensor via Firmata verbinden.

# FIRMATA1 MEGA
define FIRMATA1 FRM 3031 global
# attr FIRMATA1 i2c-config 1
attr FIRMATA1 sampling-interval 240
attr FIRMATA1 room FIRMATA
attr FIRMATA1 verbose 3

# LDR
define LDRA0 FRM_AD 0
attr LDRA0 IODev FIRMATA1
attr LDRA0 event-min-interval 180
attr LDRA0 room FIRMATA
attr LDRA0 stateFormat reading
define FileLog_LDRA0 FileLog ./log/LDRA0-%Y-%m.log LDRA0
attr FileLog_LDRA0 logtype text
attr FileLog_LDRA0 room FIRMATA

Aber da kommt immer

error initializing: unsupported mode '2' for pin '0'

Ich habe jetzt schon eine ganze Weile gesucht weiß jetzt aber echt nicht woran es liegt, habe auch andere Pins getestet, geht auch nicht.

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D