当前位置: 首页 > news >正文

物联网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。
image.png

二、技术参数

  • 供电电压: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)
  • 参数说明:
参数类型必选参数?说明
i2cObjI2C传入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传感器之间通信所用命令字如下表所示:

序号命令字功能说明缩写
10x3780读取芯片序列号CMD_READ_SERIALNBR
20xF32D读取状态寄存器CMD_READ_STATUS
30x3041清除状态寄存器CMD_CLEAR_STATUS
40x306D开启加热功能CMD_HEATER_ENABLE
50x3066关闭加热功能CMD_HEATER_DISABLE
60x30A2软件复位CMD_SOFT_RESET
70x2B32加速响应时间CMD_ART
80x3093停止周期性测量CMD_BREAK
90x2400高频率周期性测量CMD_MEAS_POLLING_H
100x240B中频率周期性测量CMD_MEAS_POLLING_M
110x2416低频率周期性测量CMD_MEAS_POLLING_L

实际控制此传感器的流程可参考如下伪代码。

  • 初始化传感器并开始进行温湿度测量
清除状态寄存器(发送CMD_CLEAR_STATUS)等待20ms发送周期性测量指令(CMD_MEAS_POLLING_H、CMD_MEAS_POLLING_M或CMD_MEAS_POLLING_L)等待20ms
  • 读取温湿度测量结果
发起I2C读取数据(6个字节)的操作将读取到的测量结果转换成实际温室度值

读取到的6个字节格式如下表所示:

字节序号123456
意义温度(高位)温度(低位)温度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温湿度传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 Sensirion SHT3x-DIS湿度和温度传感器基于CMOSens传感器芯片&#xff0c;更加智能、可靠&#xff0c;精度更高。SHT3x-DIS具有增强的信号处理能力、两个独特的用户可选I2C地址&#xff0c;通信…...

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> 值传递&#xff1a;普通变量作为函数参数传递是单向的值传递&#xff0c;只是将实参的值复制一份给形参变量&#xff0c;形参的改变不会影响实参的值&#xff0c;因为所在内存空间不同 如果传递的是地址&#xff0c;被调函数使用指…...

物联网AI MicroPython传感器学习 之 MFRC522 RFID射频IC卡感应模块

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 MFRC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片&#xff0c;其特点低电压、低成本、体积小的非接触式读写芯片。MFRC522支持MIFARE系列更高速的非接触式通信&#xff0c;双向数据…...

搭建ES集群

目录 前言 搭建ES集群 集群状态监控 分片备份 节点角色 脑裂问题 分布式存储 分布式查询 故障转移 前言 单机的ES做数据存储必然会面临两个问题&#xff1a;海量数据存储问题、单机故障问题 海量数据存储问题&#xff1a;将索引库从逻辑上拆分为N个分片(shard)&…...

Tomcat的日志接收文件catalina.out nohup.out说明

catalina.out用于接收如下情况的日志&#xff1a; catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr)&#xff0c;这是在tomcat的启动脚本里指定的&#xff0c;如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这…...

手机ip地址切换后有什么影响

随着互联网的普及和人们对网络连接的需求不断增加&#xff0c;手机已经成为我们日常生活中不可或缺的一部分。而在使用手机的过程中&#xff0c;手机ip地址的切换也成为了许多用户需要注意的问题。虎观代理小二二将探讨手机ip地址切换后可能产生的影响。 手机ip地址的含义及作…...

C++ 赋值运算重载,const成员,取地址及const取地址操作符重载

C 赋值运算重载&#xff0c;const成员&#xff0c;取地址及const取地址操作符重载 1. 赋值运算符重载1.1 运算符重载1.2 赋值运算符重载1.3 前置/--和后置/--重载 2. const成员3. 取地址及const取地址操作符重载 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &#x1f680;…...

嵌入式Linux系统的闪存设备和文件系统学习纪要

嵌入式Linux系统的闪存设备和文件系统学习纪要 Linux下的文件系统结构如下&#xff1a; NAND Flash 是一种非易失性存储器&#xff08;Non-Volatile Memory&#xff09;&#xff0c;常用于闪存设备和固态硬盘&#xff08;SSD&#xff09;中。以下是几种常见的 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语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。以洗衣服为例&#xff0c;通常洗衣服会经历以下过程&#xff1a; 而C是基于面向对象的&#xff0c;关注的是对象&#xff0c…...

写给所有的程序员,或者努力生活的你。

朋友们&#xff0c;好好休息&#xff0c;意味着好好锻炼&#xff0c;好好睡觉&#xff0c;好好学习&#xff0c;学习可以是功利的&#xff0c;需要有规划的&#xff0c;有执行能力&#xff0c;有反馈奖励机制的&#xff0c;也可以无用之用方为大用&#xff08;比如take shit的时…...

pytorch 笔记:GRU

1 介绍 对于输入序列中的每个元素&#xff0c;每一层都计算以下函数&#xff1a; ht​ 是t时刻 的隐藏状态xt​ 是t时刻 的输入ht−1​ 是 t-1时刻 同层的隐藏状态或 0时刻 的初始隐藏状态rt​,zt​,nt​ 分别是重置门、更新门和新门。σ 是 sigmoid 函数∗ 是 Hadamard 乘积。…...

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)

之前我们讲解过 Kubernetes - Ingress HTTP 搭建解决方案&#xff0c;并分别提供了旧版本和新版本。如果连 HTTP 都没搞明白的可以先去过一下这两篇 Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客Kubernetes - Ingress HTTP 负载搭建部署解决方案…...

Verilog:写流水灯时遇到的问题

module flow_led(input sys_clk, //系统时钟50Mhz 周期0.02nsinput sys_rst_n, //系统异步复位&#xff0c;低电平有效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基础框架的时候&#xff0c;会犯一个非常小的错误&#xff0c;导致进度卡住了。 这个错误就是Feign导入的错误&#xff1a; ‘dependencies.dependency.version’ for org.springframework.cloud:spring-c…...

Netty第一部

一、select和epoll原理分析 外设设备网卡、鼠标、键盘等通过总线写到内存中&#xff0c;中间就有DMA拷贝&#xff0c;操作系统怎么知道内存中有数据了&#xff0c;这就需要操作系统通过中断机制确定&#xff0c;如果有中断信号过来&#xff0c;cpu会首先打断用户程序执行&…...

【设计模式】第11节:结构型模式之“装饰器模式”

一、简介 装饰器模式主要解决继承关系过于复杂的问题&#xff0c;通过组合来替代继承。它主要的作用是给原始类添加增强功能。这也是判断是否该用装饰器模式的一个重要的依据。除此之外&#xff0c;装饰器模式还有一个特点&#xff0c;那就是可以对原始类嵌套使用多个装饰器。…...

Spire.doc读取模板文档,并在书签处插入内容

在书签位置插入文字 //加载模板文档 Document document new Document(Server.MapPath("~/File/评价结果.doc")); //创建书签导航器 BookmarksNavigator bn new BookmarksNavigator(document); //添加一个section到文档 Section newSec document.AddSection(); …...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...