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.
#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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.