第十四篇、基于Arduino uno,获取sht30/sht31/sht3x温湿度传感器的温度信息和湿度信息——结果导向

news/2024/12/21 19:21:17/

0、结果

说明:先来看看串口调试助手显示的结果,第一个值是温度值,第二个值是湿度值,并且保留一位小数。如果是你想要的,可以接着往下看。

1、外观

说明:虽然sht3x温湿度传感器形态各异,但是原理和代码都是适用的。

2、连线

说明:只需要连接四根线。
uno————sht3x温湿度传感器

 3.3V--------------VCC
GND--------------GND
 SCL--------------SCL
SDA--------------SDA

3、源程序

说明:采用非阻塞方式编写,一定时间检测一次温湿度信息,并将对应功能进行函数化,方便移植。

/****************************************sht3x温湿度 part****************************************/
/*接线:3.3V------VCCGND------GNDSCL------SCLSDA------SDA
*/
#include <Arduino.h>                                                        //调用库文件                 
#include <Wire.h>                                                           //调用库文件
#include "Adafruit_SHT31.h"                                                 //调用库文件Adafruit_SHT31 sht31 = Adafruit_SHT31();                                    //实例化对象#define sht3xTimeInterval 1000                                              //检测一次的时间间隔                   
float sht3xTemp = 0, sht3xHumi = 0;                                         //存储温度值和湿度值。
unsigned long sht3xTimes = 0;                                               //记录设备运行时间
/****************************************set up and loop part*********************************/
void setup() {Serial.begin(9600);                                                       //设置串口波特率为9600if (! sht31.begin(0x44)) {                                                //传感器IIC初始化while (millis() - 1000) {Serial.println("找不到SHT31");                                         //串口打印对应的值}}Serial.println("设备上线!");
}
void loop() {getData();                                                                //获取温湿度值。
}
/****************************************sht3x温湿度 part****************************************/
/*获取温度和湿度函数*/
void getData() {if (millis() - sht3xTimes >= sht3xTimeInterval) {                         //一定时间执行一次sht3xTimes = millis();sht3xTemp = sht31.readTemperature();                                    //获取温度数据sht3xHumi = sht31.readHumidity();                                       //获取湿度数据Serial.print("温度:");                                                  //串口打印对应的值Serial.print(sht3xTemp, 1);                                             //保留一位小数Serial.print(" (C), ");                                                 //串口打印对应的值Serial.print("湿度:");                                                  //串口打印对应的值Serial.print(sht3xHumi, 1);                                             //保留一位小数Serial.println(" (%)。");                                               //串口打印对应的值}
}

4、注意事项

说明:切记最好接3.3V,不要接5V。如果程序下进去不能正常显示,可能需要查一下传感器的IIC地址是不是0x44,不是的话需要改过来。

5、基本原理

        SHT30是一款数字式温湿度传感器,采用Sensirion专利的CMOSens技术。其工作原理是通过感应空气中温度和湿度对芯片内部微小电容器的影响,从而将这些物理量转换成数字信号输出。
        具体来说,SHT30主要包括一个微处理器、一个湿度感测单元、一个温度感测单元以及一个16位的ADC转换单元。当空气中的水分子进入传感器时,它们会被湿度感测单元吸附并引起微小电容器的变化。而温度感测单元则使用热敏电阻来感知环境温度,并将温度值转换为数字信号。
        最终,这些数字信号经过一定的校验和处理后输出到传感器的数据接口上,供外部MCU进行读取和处理。SHT30采用数字输出方式,精度高、抗干扰性能好,常用于各种温湿度监测系统中。


http://www.ppmy.cn/news/146971.html

相关文章

农业度“伏”黑科技——农业气象站

最近气象预警 非常高能 总是一波跟着一波 高温、雨水接连不断 高热、高湿的“桑拿天”频繁出现 酷暑难耐 不愧是一年一度的 六月天 在这样一个 气温高、湿度大、风速小的夏天 “农业”也度日如年 毕竟“上蒸下煮”的模式可真不是盖的 自从入伏后 日照强烈程度UP ↑ …

基于Springboot+Vue的校园招聘系统(进阶版)

本项目是一年前写的一个项目的升级版&#xff0c;因为某些原因将它作了一个升级改进&#xff0c; 好多兄弟来问有没有演示&#xff0c;现在先来写个说明&#xff01;&#xff01;&#xff01; 目录 一. &#x1f981; 前言二. &#x1f981; 开源代码与组件使用情况说明三. &am…

小波去噪及其matlab实现方法

小波去噪是小波分析的一个应用。小波分析是一种数学工具&#xff0c;用于将信号分解成不同的频率分量。小波去噪的目的是利用小波变换将噪声从信号中去除。 MATLAB&#xff08;Matrix Laboratory&#xff09;是一种基于数值计算的高级工具&#xff0c;广泛用于工程、科学和金融…

iOS Universal Link

iOS Universal Link https://www.jianshu.com/p/96649a73795b https://www.jianshu.com/p/77b530f0c67b

Android NFC的报错 路过的大佬来看看小弟的问题

大佬们。。。 为什么执行connect()就报IOException错误&#xff0c;有没有大佬解释一下&#xff0c;感激不尽

如何使用nfc安卓手机圈存杉德记名卡

如果杉德记名卡中的余额都在主账户中&#xff0c;钱包账户余额为0&#xff0c;且无法在实体店刷卡&#xff0c;说明卡内余额要进行圈存&#xff0c;步骤如下&#xff1a; 1.找一部带nfc功能的安卓手机&#xff0c;下载生活杉德app 2.登陆账号&#xff0c;绑定你的实体卡 3.我…

ios Universal Link 配置教程 + 踩坑记录

Univeral Link的配置有3方面&#xff1a;Apple Developer网站配置、XCode配置、服务器资源配置&#xff08;apple-app-site-association文件创建和存放&#xff09; 首先说下我们的需求&#xff1a;支持一个域名下多个APP&#xff08;目前是两个&#xff09;的universal Link …

Fix Xcode14 bundle need sign

升级iOS16后进行真机调试&#xff0c;第三方包要求签名。可能是苹果的bug&#xff08;或许是为了增强安全性&#xff09; PS&#xff1a;猜测后期pod方面会修复&#xff0c;或者苹果修复。目前可以使用以下手段暂时解决。 Podfile 文件新增&#xff1a; 方式一&#xff1a;【…