An open API service indexing awesome lists of open source software.

https://github.com/2black0/micropython-sht11

sht11 module for micropython
https://github.com/2black0/micropython-sht11

micropython sensor sht11 sht1x

Last synced: 18 days ago
JSON representation

sht11 module for micropython

Awesome Lists containing this project

README

        

# ๐ŸŒฑ MicroPython SHT11 Temperature & Humidity Sensor

This project demonstrates how to interface the **SHT11 sensor** with a **MicroPython-compatible ESP32 board (e.g., Lolin32 Lite)** to measure **temperature** and **relative humidity**. It uses **bit-banged communication** and is written fully in MicroPython.

---

## ๐Ÿ“ Project Structure

```
MicroPython-SHT11
โ”œโ”€โ”€ LICENSE # License file (e.g., MIT)
โ”œโ”€โ”€ README.md # This documentation
โ””โ”€โ”€ project/
โ”œโ”€โ”€ main.py # Main script to read and display sensor values
โ””โ”€โ”€ sht11.py # SHT11 driver implementation in MicroPython
```

---

## ๐Ÿ“ฆ Requirements

* โš™๏ธ **MicroPython board**: Tested on Lolin32 Lite (ESP32)
* ๐ŸŒก๏ธ **Sensor**: Sensirion SHT11 (Digital Temp & RH sensor)
* ๐Ÿง  **Firmware**: MicroPython 1.20 or later
* ๐Ÿงฐ **Development tools**:

* [Thonny IDE](https://thonny.org/) or [mpremote](https://docs.micropython.org/en/latest/reference/mpremote.html)
* USB to Serial connection

---

## ๐Ÿ”Œ Wiring

| SHT11 Pin | Description | ESP32 Pin (Example) |
| --------- | ------------ | ------------------- |
| 1 (SCK) | Clock | GPIO 26 |
| 2 (DATA) | Data | GPIO 33 |
| 3 (GND) | Ground | GND |
| 4 (VCC) | Power (3.3V) | 3.3V |

> โš ๏ธ Note: Do **not** power SHT11 with 5V โ€” it's a 3.3V device.

---

## ๐Ÿงช Example Usage

In the `main.py`:

```python
# example code to read SHT11 using MicroPython
# author : Ardy Seto P
# email : [email protected]
# board : Lolin32 Lite (ESP32)

from sht11 import SHT11

# Define SCK and DATA GPIO pins
sht = SHT11(sck=26, data=33)

# Read temperature and humidity
tempOut = sht.temperature()
humOut = sht.humidity()

# Display results
print('Temperature: ', tempOut, '*C')
print('Humidity: ', humOut, '%')
```

---

## ๐Ÿ”ง Features of the `SHT11` Driver

* ๐Ÿ“ก Pure MicroPython bit-banged protocol (no I2C)
* ๐Ÿ“Š Reads:

* Temperature (ยฐC)
* Relative Humidity (%RH)
* โœ… Includes:

* CRC check
* Command protocol implementation
* Adjustable temperature compensation for RH

### Key Methods

```python
SHT11(sck, data) # Initialize driver with SCK and DATA pins
.temperature() # Return temperature in ยฐC
.humidity(temp=25) # Return relative humidity (%), with temp compensation
.read_register() # Read status register (raw access)
```

---

## โš™๏ธ Advanced Notes

* This driver replicates the SHT11 protocol using direct GPIO pin manipulation.
* Built-in CRC-8 validation helps detect communication errors.
* The `.humidity()` method includes temperature compensation if called with custom temperature values.

---

## ๐Ÿ’ก Troubleshooting

* โŒ **CRC or ACK errors**: Make sure your wires are short and well-connected. SHT11 is sensitive to interference.
* ๐Ÿ” **Slow reads?** SHT11 has \~200โ€“300 ms measurement latency; this is normal.
* ๐Ÿ“‰ **Values look wrong?** Double-check power source and resistor pull-up configuration (if needed).

---

## ๐Ÿ“œ License

This project is open-source under the [MIT License](LICENSE).

---

## ๐Ÿ‘ค Author

**Ardy Seto Priambodo**
โœ‰๏ธ [[email protected]](mailto:[email protected])