常用传感器-温湿度传感器SHT30

news2024/11/23 22:06:10

SHT30温湿度传感器

基本信息

工作电压:2.4V-5.5V
通讯协议:IIC
湿度测量范围:0-100
温度测量范围:-40°-125°

引脚

  • VIN:电源正极
  • GND:电源负极
  • SCL:数据线
  • SDA:数据线

操作

1.加载库文件:ClosedCube_SHT31D

在这里插入图片描述
选择库文件:ClosedCube_SHT31D

2.连接esp mini d1和温湿度传感器

  • VIN和GND分别取主板5V电压
  • SCL和SDA分别接主板D3和D4引脚
    在这里插入图片描述

3.刷入主板代码

//包含读取传感器数据的代码,引脚、地址等配置均在该文件
#include "sht30.h"

void setup() {
  Serial.begin(115200);
  //sht30的开机配置函数
  sht30_setup();
}

void loop() {
  //sht30的循环读取函数,内设读取间隔可自行在 sht30.h 文件中设置
  sht30();
}
//********sht30 温湿度传感器***************

#include <Wire.h>
#include "ClosedCube_SHT31D.h"
ClosedCube_SHT31D sht3xd;

// 配置引脚
const int SHT_SCL = D4; 
const int SHT_SDA = D3;

const int SHT_ADDRESS = 0x44;

//配置读取频率

struct SHT_DATA{
  int8_t temperature = -99;
  int8_t humidity = -99;
  unsigned long sht30_last = 0;
const long sht30_interval = 1000; //每秒读取一次

} sht_data;

//开机函数
void sht30_setup() {
  
  //定义I2C通讯的引脚
  Wire.begin(SHT_SDA, SHT_SCL);
  
  //准备读取sht3x传感器
  sht3xd.begin(SHT_ADDRESS);
  if (sht3xd.periodicStart(SHT3XD_REPEATABILITY_HIGH, SHT3XD_FREQUENCY_10HZ) != SHT3XD_NO_ERROR){
    Serial.println("[ERROR] 读取sht30数据失败,可能是传感器没插好");
  }
}

//保存结果到指定的数据结构,如果传感器断开,则尝试重载
void saveResult(SHT31D result) {
  if (result.error == SHT3XD_NO_ERROR) {
    sht_data.temperature = result.t;
    sht_data.humidity = result.rh;
  } else {  
    sht_data.temperature = -99;
    sht_data.humidity = -99;
    sht30_setup();
  }
}

//循环体函数,放在loop中
void sht30() {
  unsigned long currentMillis = millis();
  if (currentMillis - sht_data.sht30_last >= sht_data.sht30_interval) {
    sht_data.sht30_last = currentMillis;
    saveResult(sht3xd.periodicFetchData());
    Serial.print("T:");
    Serial.print(sht_data.temperature);
    Serial.print(" H:");
    Serial.println(sht_data.humidity);
  }
}

4.串口监视器输出数据

在这里插入图片描述

常用传感器-温湿度传感器SHT30

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/472758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

digiKam 8.0发布,带来了许多新的功能和改进

导读digiKam 8.0开源、跨平台、免费的专业照片管理软件现在可以下载&#xff0c;这是一个重大更新&#xff0c;带来了许多新的功能和改进。 digiKam 8.0最大的变化是&#xff0c;该软件被移植到最新的Qt 6开源应用框架&#xff0c;以获得更现代和面向未来的体验。然而&#xff…

MATLAB矩阵运算

文章目录 前言一、矩阵的输入与结构操作1-1 矩阵输入1-2 矩阵扩充&#xff08;1&#xff09;扩充行&#xff08;2&#xff09;扩充列&#xff08;3&#xff09;其他命令&#xff08;4&#xff09;矩阵的修改和元素的删除 1-3 特殊矩阵生成 二、矩阵的计算2-1 、矩阵的基本运算2…

详解时间复杂度和空间复杂度问题

前言&#xff1a;本来我并不认为时间复杂度和空间复杂的有多重要&#xff0c;只要日常会判断和分析算法的复杂度即可&#xff0c;但是&#xff0c;不论是在考研的数据结构与算法中&#xff0c;还是在日常的刷题中&#xff0c;我们都会见到&#xff0c;限制我们时间和空间复杂度…

RK3588平台开发系列讲解(进程篇)Linux中进程的一生

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、Linux 系统中进程的一生二、Linux 系统中的进程树三、Linux 进程的分类四、进程优先级五、进程系统调用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 Linux 进程的相关知识。 一、Linux 系统…

vscode开发wdk

findwdk https://github.com/SergiusTheBest/FindWDK.git 拷贝FindWdk.cmake模块到下面路径中 CMake\share\cmake-3.22\Modules 注意定义系统变量或者修改下面路径&#xff0c;确保能找到wdk工具路径 构建项目 cmake中构建项目通过wdk_add_driver实现 wdk_add_driver(simp…

深度学习训练营之彩色图片分类2

深度学习训练营之彩色图片分类 原文链接环境介绍前置工作设置GPU 导入数据数据查看 构建CNN网络CNN网络的简单介绍代码 进行编译模型训练正式训练 结果可视化使用准确度和损失值进行结果的优良进行分析 原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习…

【源码解析】SpringBoot日志系统源码分析

LoggingApplicationListener 日志组件的处理是LoggingApplicationListener实现的。LoggingApplicationListener#onApplicationEvent&#xff0c;监听事件。如果实现接口GenericApplicationListener&#xff0c;可以允许适配事件类型。 private static final Class<?>[]…

升级OpenAi/ChatGPT为收费账号绑定API全过程

前言 自从4月1日开始&#xff0c;第一批用户的API就已经过期了&#xff0c;大家可能重新注册新的账号来免费获取ChatGPT/OpenAi的API额度&#xff0c;需要没有18美元额度&#xff0c;但5美元也能调用不少了&#xff0c;一个账号不够&#xff0c;两个&#xff0c;三个&#xff…

NetSuite 负库存控制功能包

目录 1. 前言 2. 功能说明 2.1概述 2.2控制逻辑说明 3. 安装 4. 设置 4.1角色设置 4.2参数设置 4.3负库存追踪记录设置 5. 视频链接 1. 前言 在NetSuite的项目实践中&#xff0c;NetSuite既有功能未能解决用户所面临的负库存问题。参看NetSuite知识会的前期文章&…

《Netty》从零开始学netty源码(四十六)之PooledByteBuf

PooledByteBuf Netty中一大块内存块PoolChunk默认大小为4MB&#xff0c;为了尽可能充分利用内存会将它切成很多块PooledByteBuf&#xff0c;PooledByteBuf的类关系图如下&#xff1a; PooledUnsafeDirectByteBuf与PooledUnsafeHeapByteBuf直接暴露对象的底层地址。 PooledByt…

连续三年增长,徐福记为什么越战越勇?

30年&#xff0c;一个零食品牌能发生什么变化&#xff1f;对徐福记来说&#xff0c;这是一场漫长的拉力赛。 这个过程&#xff0c;是研究消费者喜好变迁的过程&#xff0c;是孜孜不倦创新原料、产品、生产工艺和先进技术的过程&#xff0c;更是徐福记证明自身品牌价值的过程—…

Nero Platinum Suite 2023 白金套装DVD刻录软件 -您强大的无忧包

为什么选择 Nero Platinum&#xff1f; 相信市场领导者&#xff1a;使用这7个搭配和谐的程序&#xff0c;您可以轻松应对多媒体日常。Nero Platinum Suite – 您强大的无忧包 最佳准备 超过 200 种功能为每一项多媒体应用提供解决方案。技术上始终处于最新状态 品质卓越 针…

大数据技术ELK实时检索

一 elasticsearch简介 ElasticSearch是一个高性能&#xff0c;基于Lucene的全文检索服务&#xff0c;是一个分布式的Restful风格的搜索和数据分析引擎&#xff0c;也可以作为NoSQL数据库使用。 对Lucene进行了扩展 原型环境和生产环境可无缝切换 能够水平扩展 支持结构化和非结…

医院导诊指示线路图制作平台,智慧医院专业地图服务

随着国家医疗水平不断进步&#xff0c;配套设施设备日渐完善&#xff0c;医院也进行了不同程度的扩建和新建&#xff0c;为满足人们的医疗需求&#xff0c;无论综合大楼、科室、诊室及住院区域都变得宽敞舒适&#xff0c;患者在诊区内经常找不到自己要去的就诊位置&#xff0c;…

【Mybatis plus】使用分页查询,报错 Parameter ‘xxx‘ not found. Available parameters are xxx

今天工作遇见Mybatis plus 分页查询遇到的错误&#xff0c;提示参数未绑定&#xff0c;现在记录一下。以下数据全部是MOCK信息 0 先给出错误场景 0.0 查询 Mapper java entity 实体类 用 user 代替实体类信息 Data class User {private Long id;private String name;priva…

一文带你了解MySQL数据库InnoDB_Buffer_Pool

前言 上篇文章介绍了MySQL中的存储引擎层主要负责数据的写入和读取&#xff0c;与底层的文件进行交互。MySQL在5.5 版本以后&#xff0c;MySQL默认存储引擎为 InnoDB&#xff0c;他的主要特性有&#xff1a; DML 操作(增、删、改)遵循 ACID(事务安全表) 模型&#xff0c;支持事…

造车十余年,创维从商用车向乘用车冲刺

近日&#xff0c;创维汽车在2023焕新升级发布会发布了3款最新车型。虽然很多人对于创维的印象&#xff0c;仍然停留在电视机概念上&#xff0c;但事实上&#xff0c;这家彩电大王早在13年前即跨界新能源车制造&#xff0c;其旗下公司纯电动客车销量连年稳居国内前三甲。 携成熟…

Vue组件-非单文本组件

非单文本组件(用的少) 在vue中&#xff0c;组件是有两种编写格式的&#xff0c;第一种格式叫非单文本组件&#xff0c;第二种格式叫单文本组件 非单文本组件&#xff1a;一个文件中含有多个组件&#xff0c;也叫多文本组件&#xff0c;比如demo.html里面包含js,css… 单文本…

PCL学习一:点云与PCL基础

参考引用 黑马机器人 | PCL-3D点云PCL(Point Cloud Library)学习记录 1. 点云概述 点云&#xff08;Point Cloud&#xff09;是三维空间中&#xff0c;表达目标空间分布和目标表面特性的点的集合点云通常可以从深度相机或激光雷达中直接获取&#xff0c;也可以从 CAD 等软件中…

JavaEE4(4/27)

目录 1.加锁 2.锁死和重入 3.线程安全的类 4.volatile 1.加锁 当两个线程同时对一个对象进行加锁的时候,会产生竞争 2.锁死和重入 如果一个线程对一个对象加了一次锁,在加一次出现死锁,就是不可重入,否则就是可重入 锁死:对同一个锁再加锁出现的死循环 实际上开发JVM的工程师…