<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[M5StickC &amp; Sensor SHT 31]]></title><description><![CDATA[<p dir="auto">Hello, how can I integrate my SHT31 sensor into the M5StickC via Grove ?<br />
Here is my code from the Pycom Wipy with which the SHT runs perfectly.</p>
<p dir="auto"><a href="http://Main.py" target="_blank" rel="noopener noreferrer nofollow ugc">Main.py</a><br />
if (Sensorwahl) == 'sht31':</p>
<pre><code>i2c = I2C(0, I2C.MASTER, baudrate=100000)
sensor = sht31.SHT31(i2c, addr=0x44)
temp_humi = sensor.get_temp_humi()
time.sleep(0.6)

pycom.rgbled(0xff007f) # magenta
pycom.heartbeat(False) #Lampe ausschalten um Energie zu sparen

Temp1 = round(temp_humi[0],2)
Feuchte1 = round(temp_humi[1],2)
time.sleep(1)

print('----------------------------------------------------------------------')
print("Ohne Runden = Temperature: {} °C | Humidity: {} %".format(temp_humi[0], temp_humi[1]))
print('----------------------------------------------------------------------')

#Übergabe der Sensorwerte---------------------------------------
Temp1 = (Temp1 + 0) #Übergabe und Differenzeingabe
Feuchte1 = (Feuchte1 + 0) #Übergabe und Differenzeingabe
#Übergabe der Sensorwerte---------------------------------------
</code></pre>
<p dir="auto"><a href="http://sht31.py" target="_blank" rel="noopener noreferrer nofollow ugc">sht31.py</a><br />
from machine import I2C<br />
import time</p>
<p dir="auto">R_HIGH   = const(1)<br />
R_MEDIUM = const(2)<br />
R_LOW    = const(3)</p>
<p dir="auto">class SHT31(object):<br />
"""<br />
Diese Klasse implementiert eine Schnittstelle zur SHT31 Temperatur und Luftfeuchtigkeit.<br />
Sensor von Sensirion.<br />
"""<br />
# Diese statische Karte hilft, den Heap und die Programmlogik sauber zu halten.<br />
_map_cs_r = {<br />
True: {<br />
R_HIGH : b'\x2c\x06',<br />
R_MEDIUM : b'\x2c\x0d',<br />
R_LOW: b'\x2c\x10'<br />
},<br />
False: {<br />
R_HIGH : b'\x24\x00',<br />
R_MEDIUM : b'\x24\x0b',<br />
R_LOW: b'\x24\x16'<br />
}<br />
}</p>
<pre><code>def __init__(self, i2c, addr=0x44):
    """
    Initialisiert ein Sensorobjekt auf dem angegebenen I2C-Bus, auf das von der
    angegebene Adresse.
    """
    if i2c == None or i2c.__class__ != I2C:
        raise ValueError('I2C-Objekt als Argument benötigt!')
    self._i2c = i2c
    self._addr = addr

def _send(self, buf):
    """
    Sendet das angegebene Pufferobjekt über I2C an den Sensor.
    """
    self._i2c.writeto(self._addr, buf)

def _recv(self, count):
    """
    Lesen von Bytes vom Sensor über I2C. Die Anzahl der Bytes kann angegeben werden.
    als Argument.
    Liefert ein Bytearray für das Ergebnis.
    """
    return self._i2c.readfrom(self._addr, count)

def _raw_temp_humi(self, r=R_HIGH, cs=True):
    """
    Lesen Sie die Rohtemperatur und Luftfeuchtigkeit vom Sensor ab und überspringen Sie CRC. Überprüfung.
    Liefert ein Tupel für beide Werte in dieser Reihenfolge.
    """
    if r not in (R_HIGH, R_MEDIUM, R_LOW):
        raise ValueError('Falscher Wiederholbarkeitswert angegeben!')
    self._send(self._map_cs_r[cs][r])
    time.sleep_ms(50)
    raw = self._recv(6)
    return (raw[0] &lt;&lt; 8) + raw[1], (raw[3] &lt;&lt; 8) + raw[4]

def get_temp_humi(self, resolution=R_HIGH, clock_stretch=True, celsius=True):
    """
    Lesen Sie die Temperatur in Grad Celsius oder Fahrenheit und relativ dazu ab.
    Feuchtigkeit. Auflösung und Taktverlängerung können festgelegt werden.
    Liefert ein Tupel für beide Werte in dieser Reihenfolge.
    """
    t, h = self._raw_temp_humi(resolution, clock_stretch)
    if celsius:
        temp = -45 + (175 * (t / 65535.0))
    else:
        temp = -49 + (315 * (t / 65535.0))
    return temp, 100 * (h / 65535.0)
</code></pre>
]]></description><link>https://community.m5stack.com/topic/1419/m5stickc-sensor-sht-31</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 23:50:12 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/1419.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Oct 2019 12:40:21 GMT</pubDate><ttl>60</ttl></channel></rss>