Si7021 Fehler in der library

Gast #6590219
Lesenswert?

Hallo Experten,
ich scheitere daran, die Temperatur von einem Si7021 mittels eines 
ESP32-S
auszulesen - ein eigentlich simple Aufgabe - wogegen die anderen 3 
Werte,
Serial, Identifier und Relative Humidity ohne Fehler wiedergegeben 
werden, wobei Relative Humidity ziemlich vom rellen Feuchtigeitswert bei 
mir abweicht und der Identifier keinen Wert zurückgibt.

Si7021 Library und Script habe ich heruntergeladen von:
http://www.learnmicropython.com/esp32/si7021-i2c-humidity-and-temperature-sensor-example-in-micropython.php

Die library - habe sie mit Versionen von anderen Websites verglichen und
die <class Si7021> Attribute mit dem datasheet überprüft - scheint zwar
korrekt und ist im Anhang.

Das Script, ergänzt durch software pull_up Widerstande wie folgt, stürzt
an Linie 7 mit Referenz zur library ab:

1 import machine

2 i2c = 
machine.I2C(sda=machine.Pin(21,machine.Pin.PULL_UP),scl=machine.Pin(22, 
machine.Pin.PULL_UP))

3 temp_sensor = si7021.Si7021(i2c)

4 print('Serial:{value}'.format(value=temp_sensor.serial))

5 print('Identifier:{value}'.format(value=temp_sensor.identifier))

6 print('Relative 
Humidity:{value}'.format(value=temp_sensor.relative_humidity))

7 print('Temperature:{value}'.format(value=temp_sen

Die Fehlermeldung (OSError: [Errno 19] ENODEV zeigt auf die Funktionen
 <def temperature(self):> und
<def _get_data(self, command):>

Eigenartigerweise stimmen die in der Fehlermeldung angegebenen Zeilen 
Nummern nicht mit denen in der library überein und in
<def temperature(self):> wird celsius und nicht temperature ausgegeben.
Sieht jemand den Fehler ????
Gast #6590315
Lesenswert?

Ich bin der Meinung, dass die internen Pull-Ups zu schwach sind. Da
würde ich 2,2kΩ verwenden.

Mit einem Oszilloskop könnte man das blitzschnell kontrollieren. Zur Not 
mit einem DSO-150 für nur 25 Euro.
Gast #6590339
Lesenswert?

> Pullups sind mit101% Wahrscheinlichkeit bereits auf dem Breakout verbaut.

Typischerweise 10 kΩ. Ich hatte einige Schaltungen mit ESP8266, die erst 
mit weniger Ohm (bei 400 kBit/s) zuverlässig liefen.
#6591728
Lesenswert?

vielen Dank..
machine.SoftI2 produziert einen AttributeError.
Laut den einschlägigen websites zu I2C und erforderlichen pull_up
Widerständen braucht es 1kOhm (3.3V - 0.4)/3 mA.
Man kann ja die internen Widerstände so einstellen, wie ich es eingangs
in meinem Script definiert habe.
Funktioniert aber alles nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren