micropython +ESP32+ sht30 温湿度模块

SHT30 

 

1)查找SHT30芯片资料  

https://www.szlcsc.com

2)根据芯片资料,查得

     地址为 0x44 或 0x45 

     选 Measurement Commands for Single Shot Data Acquisition Mode, 命令为 0x2c10

3)连线

 SHT30          ESP32       

 D1(SCL)       4

 D2(SDA)       5    

G                   GND

3V3               3V3

 3)编代码

查看micropython官方文档esp32部分。

https://docs.micropython.org/en/latest/esp32/quickref.html

EPS32 的代码

from machine import Pin, I2C
import time

SHT30 = 0x45        # IIC通信地址
cmd =   bytearray(2)# 放命令
data =  bytearray(6)# 放数据

i2c = I2C(0, scl=Pin(4), sda=Pin(5), freq=400000) # 初始化硬件IIC0
print(i2c.scan())  # 打印出i2c总线上的全部设备地址

cmd[0] = 0x2c      # Measurement Commands for Single Shot Data Acquisition Mode
cmd[1] = 0x10
i2c.writeto(0x45, cmd)  # write the given buffer to the peripheral  启动一次检测

#MEASURE_CMD = b'\x2C\x10'
#i2c.writeto(0x45, MEASURE_CMD)  # write the given buffer to the peripheral

time.sleep_us(1000)       # sleep for 1000 microseconds  等待检测过程结束
data = i2c.readfrom(0x45, 6)# read 6 bytes from device with address 0x45  读取测量结果

temperature  = 175*(data[0]*256+data[1])/(65536-1) -45 #计算温度
humidity = 100*(data[3]*256+data[4])/(65536-1)         #计算湿度

print('温度:',temperature,"")
print('湿度:',humidity,"%")

 

posted @ 2024-09-29 20:05  辛河  阅读(126)  评论(0编辑  收藏  举报