物联网AI MicroPython传感器学习 之 SHT3X温湿度传感器
学物联网,来万物简单IoT物联网!!
一、产品简介
Sensirion SHT3x-DIS湿度和温度传感器基于CMOSens®传感器芯片,更加智能、可靠,精度更高。SHT3x-DIS具有增强的信号处理能力、两个独特的用户可选I2C地址,通信速度高达1MHz。SHT35-DIS的典型相对湿度 (RH) 精度为±1.5%,典型温度精度为±0.2°C。SHT3x-DIS具有2.5mm x 2.5mm x 0.9mm(长x宽x高)占位面积,电源电压范围为2.4V至5.5V。

二、技术参数
- 供电电压:2.4V~5.5V
- I2C接口,通信速度高达1MHz,具有两个用户可选地址
- 完全校准、线性化和温度补偿的数字输出
- 启动和测量速度极快
- 湿度精度:0 ~ 100%,精度为±2%RH
- 温度精度:-40度~125度,精度±0.3℃
- 封装:DFN-8,2.5mm * 2.5mm 0.9mm
三、软件接口
SHT3X(i2cObj) - 创建SHT3X驱动对象
- 函数原型:
sht3xObj = SHT3X(i2cObj) - 参数说明:
| 参数 | 类型 | 必选参数? | 说明 |
|---|---|---|---|
| i2cObj | I2C | 是 | 传入I2C对象 |
- 返回值: SHT3X对象成功,返回SHT3X对象;SHT3X对象创建失败,抛出Exception
- 示例代码:
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
humitureDev = sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print("sht3x inited!")
• 输出:
sht3x inited!
getTemperature - 测量温度
- 函数功能: 量测周围温度并返回测量结果
- 函数原型:
SHT3X.getTemperature() - 参数说明: 无
- 返回值: 成功返回温度测量结果(数据类型:浮点型;单位:摄氏度);失败抛出Exception
- 示例:
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
humitureDev = sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print("sht3x inited!")
temp = humitureDev.getTemperature()
print("temperature is ", temp, "°C")
- 输出:
sht3x inited!
temperature is 25.3°C
getHumidity - 测量相对湿度
-
函数功能:
量测周围相对湿度并返回测量结果 -
函数原型:
SHT3X.getHumidity() -
参数说明:
无 -
返回值:
成功返回相对湿度测量结果(数据类型:整型;单位:%RH);失败抛出Exception -
示例:
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
humitureDev = sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print("sht3x inited!")
humi = humitureDev.getHumidity()
print("humidity is ", humi, "%H")
- 输出:
sht3x inited!
humidity is 60%H
getTempHumidity - 量测温度相对湿度
-
函数功能:
同时量测周围温度和相对湿度并返回测量结果 -
函数原型:
SHT3X.getTempHumidity() -
参数说明:
无 -
返回值:
成功返回温度和相对湿度测量结果(数据类型:数组,[温度值, 相对湿度值];温度单位:摄氏度;相对湿度单位:%RH);失败抛出Exception -
示例:
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
humitureDev = sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print("sht3x inited!")
data = humitureDev.getTempHumidity()
print("temperature is ", data[0], "°C")
print("humidity is ", data[1], "%H")
- 输出:
sht3x inited!
temperature is 25.3°C
humidity is 60%H
四、接口案例
- 示例代码:
import utime # 延时API所在组件
from machine import I2C,Pin # 驱动库
import sht3x # SHT3X-DIS温湿度传感器驱动库i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
humitureDev = sht3x.SHT3X(i2cObj) # 初始化SHT3X-DIS传感器
print("sht3x inited!")
# 通过温湿度传感器读取温湿度信息
def get_temp_humi():temperature = humitureDev.getTemperature() # 获取温度测量结果humidity = humitureDev.getHumidity() # 获取相对湿度测量结果print("The temperature is: %.1f" % temperature)print("The humidity is: %d" % humidity)return temperature, humidity # 返回读取到的温度值和相对湿度值
if __name__ == '__main__':while True:data = get_temp_humi() # 读取温度信息和相对湿度信息utime.sleep(1) # 每隔1秒钟进行一次温湿度信息测量和打印i2cObj.close() # 关闭I2C设备对象
- 输出:
...
sht3x inited!
The temperature is 25.3°C
The humidity is 60%H
...
The temperature is 25.3°C
The humidity is 60%H
...
五、通信协议
主控芯片和SHT3X-DIS传感器之间通信所用命令字如下表所示:
| 序号 | 命令字 | 功能说明 | 缩写 |
|---|---|---|---|
| 1 | 0x3780 | 读取芯片序列号 | CMD_READ_SERIALNBR |
| 2 | 0xF32D | 读取状态寄存器 | CMD_READ_STATUS |
| 3 | 0x3041 | 清除状态寄存器 | CMD_CLEAR_STATUS |
| 4 | 0x306D | 开启加热功能 | CMD_HEATER_ENABLE |
| 5 | 0x3066 | 关闭加热功能 | CMD_HEATER_DISABLE |
| 6 | 0x30A2 | 软件复位 | CMD_SOFT_RESET |
| 7 | 0x2B32 | 加速响应时间 | CMD_ART |
| 8 | 0x3093 | 停止周期性测量 | CMD_BREAK |
| 9 | 0x2400 | 高频率周期性测量 | CMD_MEAS_POLLING_H |
| 10 | 0x240B | 中频率周期性测量 | CMD_MEAS_POLLING_M |
| 11 | 0x2416 | 低频率周期性测量 | CMD_MEAS_POLLING_L |
实际控制此传感器的流程可参考如下伪代码。
- 初始化传感器并开始进行温湿度测量
清除状态寄存器(发送CMD_CLEAR_STATUS)等待20ms发送周期性测量指令(CMD_MEAS_POLLING_H、CMD_MEAS_POLLING_M或CMD_MEAS_POLLING_L)等待20ms
- 读取温湿度测量结果
发起I2C读取数据(6个字节)的操作将读取到的测量结果转换成实际温室度值
读取到的6个字节格式如下表所示:
| 字节序号 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| 意义 | 温度(高位) | 温度(低位) | 温度CRC-8校验值 | 湿度(高位) | 湿度(低位) |
转换过程可以使用如下公式: 温度值 = ((data[0]<<8) | data[1]) _ 0.0015259022 相对湿度值 = -45.0 + ((data[3]<<8) | data[4]) _ 175.0 / (0xFFFF - 1)
- 停止测量
发送停止周期性测量指令字(CMD_BREAK)
参考文献
[1] SHT3X-DIS温湿度传感器购买链接
相关文章:
物联网AI MicroPython传感器学习 之 SHT3X温湿度传感器
学物联网,来万物简单IoT物联网!! 一、产品简介 Sensirion SHT3x-DIS湿度和温度传感器基于CMOSens传感器芯片,更加智能、可靠,精度更高。SHT3x-DIS具有增强的信号处理能力、两个独特的用户可选I2C地址,通信…...
int* p = new int[5]; int *p = new int[5]();delete[] p; delete p;区别是什么?
int main() {int *p new int[5]; // 分配包含5个整数的数组内存// 初始化数组元素for (int i 0; i < 5; i) {p[i] i * 10;}// 试图使用 delete p; 来释放数组内存delete p;delete[] p;// 打印数组元素for (int i 0; i < 5; i) {std::cout << "p[" &l…...
数据结构|基础知识定义
1.值传递、地址传递、值返回、地址返回 1> 值传递:普通变量作为函数参数传递是单向的值传递,只是将实参的值复制一份给形参变量,形参的改变不会影响实参的值,因为所在内存空间不同 如果传递的是地址,被调函数使用指…...
物联网AI MicroPython传感器学习 之 MFRC522 RFID射频IC卡感应模块
学物联网,来万物简单IoT物联网!! 一、产品简介 MFRC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,其特点低电压、低成本、体积小的非接触式读写芯片。MFRC522支持MIFARE系列更高速的非接触式通信,双向数据…...
搭建ES集群
目录 前言 搭建ES集群 集群状态监控 分片备份 节点角色 脑裂问题 分布式存储 分布式查询 故障转移 前言 单机的ES做数据存储必然会面临两个问题:海量数据存储问题、单机故障问题 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard)&…...
Tomcat的日志接收文件catalina.out nohup.out说明
catalina.out用于接收如下情况的日志: catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这…...
手机ip地址切换后有什么影响
随着互联网的普及和人们对网络连接的需求不断增加,手机已经成为我们日常生活中不可或缺的一部分。而在使用手机的过程中,手机ip地址的切换也成为了许多用户需要注意的问题。虎观代理小二二将探讨手机ip地址切换后可能产生的影响。 手机ip地址的含义及作…...
C++ 赋值运算重载,const成员,取地址及const取地址操作符重载
C 赋值运算重载,const成员,取地址及const取地址操作符重载 1. 赋值运算符重载1.1 运算符重载1.2 赋值运算符重载1.3 前置/--和后置/--重载 2. const成员3. 取地址及const取地址操作符重载 所属专栏:C“嘎嘎" 系统学习❤️ 🚀…...
嵌入式Linux系统的闪存设备和文件系统学习纪要
嵌入式Linux系统的闪存设备和文件系统学习纪要 Linux下的文件系统结构如下: NAND Flash 是一种非易失性存储器(Non-Volatile Memory),常用于闪存设备和固态硬盘(SSD)中。以下是几种常见的 NAND Flash 种类&…...
android 8.1 disable unsupported sensor
如果device不支持某种sensor,可以在android/frameworks/base/core/java/android/hardware/SystemSensorManager.java里将其disabled掉。以disable proximity sensor为例。 public SystemSensorManager(Context context, Looper mainLooper) {synchronized(sLock) {if (!sNativ…...
二、类与对象(一)
1 面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。以洗衣服为例,通常洗衣服会经历以下过程: 而C是基于面向对象的,关注的是对象,…...
写给所有的程序员,或者努力生活的你。
朋友们,好好休息,意味着好好锻炼,好好睡觉,好好学习,学习可以是功利的,需要有规划的,有执行能力,有反馈奖励机制的,也可以无用之用方为大用(比如take shit的时…...
pytorch 笔记:GRU
1 介绍 对于输入序列中的每个元素,每一层都计算以下函数: ht 是t时刻 的隐藏状态xt 是t时刻 的输入ht−1 是 t-1时刻 同层的隐藏状态或 0时刻 的初始隐藏状态rt,zt,nt 分别是重置门、更新门和新门。σ 是 sigmoid 函数∗ 是 Hadamard 乘积。…...
Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)
之前我们讲解过 Kubernetes - Ingress HTTP 搭建解决方案,并分别提供了旧版本和新版本。如果连 HTTP 都没搞明白的可以先去过一下这两篇 Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客Kubernetes - Ingress HTTP 负载搭建部署解决方案…...
Verilog:写流水灯时遇到的问题
module flow_led(input sys_clk, //系统时钟50Mhz 周期0.02nsinput sys_rst_n, //系统异步复位,低电平有效output reg [3:0] led ); reg [24:0] cnt;//计数器计时0.5s250000000*0.02ns always(posedge sys_clk or negedge sys_rst_n)beginif(!sys_rst_n)cnt <…...
操作系统第四章-存储器管理
4.1 内存的基本知识 4.1.1 逻辑地址和物理地址 逻辑地址又称为相对地址 物理地址又称为绝对地址 一. 逻辑地址 内存中有多个进程,相对地址是相对于进程的起始地址而言的地址. 二.物理地址 绝对地址是在整个内存下的地址 4.2 程序的装入和链接 引入:用户程序要在系统中运…...
org.springframework.cloud:spring-cloud-starter-openfeign:jar is missing详解
openfeign无法导入的问题 我感觉最近带的好几个新人在搭建springCloud基础框架的时候,会犯一个非常小的错误,导致进度卡住了。 这个错误就是Feign导入的错误: ‘dependencies.dependency.version’ for org.springframework.cloud:spring-c…...
Netty第一部
一、select和epoll原理分析 外设设备网卡、鼠标、键盘等通过总线写到内存中,中间就有DMA拷贝,操作系统怎么知道内存中有数据了,这就需要操作系统通过中断机制确定,如果有中断信号过来,cpu会首先打断用户程序执行&…...
【设计模式】第11节:结构型模式之“装饰器模式”
一、简介 装饰器模式主要解决继承关系过于复杂的问题,通过组合来替代继承。它主要的作用是给原始类添加增强功能。这也是判断是否该用装饰器模式的一个重要的依据。除此之外,装饰器模式还有一个特点,那就是可以对原始类嵌套使用多个装饰器。…...
Spire.doc读取模板文档,并在书签处插入内容
在书签位置插入文字 //加载模板文档 Document document new Document(Server.MapPath("~/File/评价结果.doc")); //创建书签导航器 BookmarksNavigator bn new BookmarksNavigator(document); //添加一个section到文档 Section newSec document.AddSection(); …...
如何快速配置虚拟显示器:面向初学者的完整指南
如何快速配置虚拟显示器:面向初学者的完整指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否在为游戏串流画质不佳而烦恼?或者需要为无显示器主机…...
GetStoreApp核心功能解析:离线部署Microsoft Store应用的5大优势
GetStoreApp核心功能解析:离线部署Microsoft Store应用的5大优势 【免费下载链接】GetStoreApp 离线下载 Microsoft Store 商店应用 项目地址: https://gitcode.com/gh_mirrors/ge/GetStoreApp GetStoreApp是一款专为Windows用户设计的离线下载工具ÿ…...
终极指南:使用MuSiC单细胞反卷积工具解密组织细胞组成
终极指南:使用MuSiC单细胞反卷积工具解密组织细胞组成 【免费下载链接】MuSiC Multi-subject Single Cell Deconvolution 项目地址: https://gitcode.com/gh_mirrors/music2/MuSiC 还在为复杂的组织样本分析而困惑吗?想要从批量RNA测序数据中精确…...
通过用量看板清晰观测Taotoken的API调用成本与消耗
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过用量看板清晰观测Taotoken的API调用成本与消耗 对于将大模型能力集成到产品中的团队而言,API调用成本是项目预算与…...
告别手动分类!用Python+ArcPy批量处理DEM,一键生成坡度坡向等高线报告
用PythonArcPy实现DEM地形分析全自动化:从数据到报告的智能工作流 第一次接手山区风电项目的地形分析任务时,我花了整整三天时间在ArcGIS界面里反复点击同样的按钮——加载DEM、计算坡度坡向、生成等高线、调整分类阈值、导出图片。当第五个区域的报告终…...
专业构建现代化英雄联盟智能助手:基于LCU API的完整实战指南
专业构建现代化英雄联盟智能助手:基于LCU API的完整实战指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine是一款基于英雄联盟官方LCU API开发的开源智能助手,专为英雄联盟…...
5分钟上手G-Helper:彻底告别Armoury Crate臃肿的终极指南
5分钟上手G-Helper:彻底告别Armoury Crate臃肿的终极指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook,…...
Claude Code 常用操作指南:命令速查 + 上下文管理 + 高效工作流,中文开发者一站式参考
目录 背景:Claude Code 用久了都会遇到什么问题? 这个项目是什么? 核心技巧一:上下文管理三件套 /rewind — 方案跑偏了别纠正,直接回退 /fork — 分叉新会话验证新思路 /btw — 临时提问不污染对话历史 核心技…...
飞书文档批量导出终极解决方案:3分钟搞定700+文档迁移
飞书文档批量导出终极解决方案:3分钟搞定700文档迁移 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 还在为飞书文档迁移而头疼吗?当企业需要从飞书切换到其他办公平台&am…...
别再死记硬背了!用UE5动画蓝图状态机做个“开关门”交互,5分钟搞懂运行流
用UE5动画蓝图状态机实现智能门交互:从理论到实战第一次接触虚幻引擎的动画系统时,那些抽象的概念总让人望而生畏。记得我刚开始学习UE4时,光是理解"状态机"这个概念就花了整整一周时间——直到我亲手实现了一个会自动开关的门。这…...

