Skip to content

Commit 203e1e6

Browse files
iabdalkaderdpgeorge
authored andcommitted
hs3003: Add new relative humidity and temperature sensor driver.
Renesas HS3003 Humidity and Temperature sensor driver.
1 parent a080872 commit 203e1e6

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
"""
2+
The MIT License (MIT)
3+
4+
Copyright (c) 2023 Arduino SA
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in
14+
all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
THE SOFTWARE.
23+
24+
HS3003 driver for MicroPython.
25+
26+
Example usage:
27+
28+
import time
29+
from hs3003 import HS3003
30+
from machine import Pin, I2C
31+
32+
bus = I2C(1, scl=Pin(15), sda=Pin(14))
33+
hts = HS3003(bus)
34+
35+
while True:
36+
rH = hts.humidity()
37+
temp = hts.temperature()
38+
print ("rH: %.2f%% T: %.2fC" %(rH, temp))
39+
time.sleep_ms(100)
40+
"""
41+
42+
import struct
43+
44+
45+
class HS3003:
46+
def __init__(self, bus, address=0x44):
47+
self.bus = bus
48+
self.address = address
49+
50+
def _read_data(self):
51+
# Init measurement mode
52+
self.bus.writeto(self.address, b"")
53+
# Data fetch
54+
return struct.unpack(">HH", self.bus.readfrom(self.address, 4))
55+
56+
def humidity(self):
57+
"""Returns the relative humidity in percent."""
58+
h, t = self._read_data()
59+
return ((h & 0x3FFF) / 16383) * 100
60+
61+
def temperature(self):
62+
"""Returns the temperature in degrees Celsius."""
63+
h, t = self._read_data()
64+
return ((t >> 2) / 16383) * 165 - 40
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
metadata(description="Renesas HS3003 Humidity and Temperature sensor driver.", version="1.0.0")
2+
module("hs3003.py", opt=3)

0 commit comments

Comments
 (0)