In this article we connect a HTU31D to a Raspberry Pi Pico running Circuitpython
Sensor Information
The HTU31 is one of the smallest and most accurate humidity sensors on the market. Our precision engineering and 20+ years of experience in humidity and temperature combination sensors, enables us to provide fast response time, precision measurement, low hysteresis and sustained performance even when exposed to extreme temperature (-40° to 125°C) and humidity environments (0%- 100%).
The HTU31 humidity sensor includes both digital (D) and analog (V) versions, and combines multiple functions and various interfaces (I2C, analog, voltage output) with an application-friendly operating voltage range (3.3-5.5V with 5V typical).
Specifications
- Accuracy:±2% RH
- Humidity Range:0 ~ 100% RH
- Mounting Type:Surface Mount
- Operating Temperature:-40°C ~ 125°C
- Package / Case:6-VDFN Exposed Pad
- Response Time : 5s
- Sensor Type:Humidity, Temperature
- Supplier Device Package:6-DFN (2.5×2.5)
- Voltage – Supply : 3V ~ 5.5V
Parts Required
Name | Link |
Pico | Raspberry Pi Pico Development Board |
HTU31D | HTU31D temperature and humidity sensor module |
Connecting cables | Aliexpress product link |
Schematic/Connection
I used a HTU31D sensor
Black for GND
Red for V+
Blue for SDA
Yellow for SCL
Code Example
I used Thonny for development
The following is based on a library , I copied the adafruit_htu31d.mpy library for this device to the lib folder on my Raspberry Pi Pico – https://circuitpython.org/libraries
This is the basic example which comes with the library
[codesyntax lang=”python”]
import time import board import adafruit_htu31d import busio # Create sensor object, communicating over the board's default I2C bus i2c = busio.I2C(scl=board.GP1, sda=board.GP0) # uses board.SCL and board.SDA htu = adafruit_htu31d.HTU31D(i2c) print("Found HTU31D with serial number", hex(htu.serial_number)) htu.heater = True print("Heater is on?", htu.heater) htu.heater = False print("Heater is on?", htu.heater) while True: temperature, relative_humidity = htu.measurements print("Temperature: %0.1f C" % temperature) print("Humidity: %0.1f %%" % relative_humidity) print("") time.sleep(1)
[/codesyntax]
Output
Here is what I saw in Thonny REPL window
Found HTU31D with serial number 0xd62fc4e
Heater is on? True
Heater is on? False
Temperature: 27.1 C
Humidity: 48.5 %
Temperature: 27.0 C
Humidity: 48.7 %
Temperature: 26.9 C
Humidity: 49.0 %
Temperature: 26.8 C
Humidity: 49.2 %
Temperature: 26.7 C
Humidity: 49.4 %
Links
https://www.tti.com/content/dam/ttiinc/manufacturers/te-connectivity/PDF/HTU31_Sensors_Datasheet.pdf