Si7021湿度和温度传感器挂钩指南

页面
参与者: 约瑟夫埃尔布
喜爱的 最喜欢的 3.

介绍

这个Si7021是一种低成本的,易于使用,高度准确,数字式温湿度传感器。你只需要给我写两行C通信,和你会有相对湿度读数和准确的温度!该传感器非常适合于环境传感和数据记录,非常适合于气象站或湿度控制系统。

亚博官网火花源湿度和温度传感器的突破-Si7021

亚博官网火花源湿度和温度传感器的突破-Si7021

SEN-13763
7.95美元

Si7021还配备有疏水PTFE过滤器,覆盖传感器的入口。这种过滤器阻挡污染物,但允许水蒸气通过,保持您的传感器安全免受水损害,同时仍然证明准确的传感器读数。

所需材料

跟随这个连接向导,您将需要以下内容:

建议阅读

在开始本教程之前,您会发现以下链接很有用:

拉升电阻

简单介绍上拉电阻——乳清他们重要,以及如何使用它们/何时使用它们。

安装Arduino库

如何安装自定义Arduino库?这很容易!本教程将复习如何安装一个Arduino库使用Arduino库管理器。图书馆与Arduino IDE,我们还将手动安装Arduino库。

逻辑水平

亚博在线娱乐官网学习3.3V和5V设备与逻辑级别的区别。

I2C

介绍I2C,当今使用的主要嵌入式通信协议之一。

板概述

让我们详细回顾一下Si7021的突破。

替换文本

SI7021详情:

  • 使用IC接口
  • 典型湿度精度±2%
  • 典型的温度精度±0.3摄氏度
  • 工作在0到100%的湿度,但这种传感器不推荐用于恶劣的环境,在那里它可以接触到水(如雨)
  • 3.3V传感器-在线使用逻辑电平转换器或10kΩ电阻以限制5V信号
  • 只有一个Si7021传感器可以驻留在I一次C总线

拉升电阻

这种突破董事会内置4.7 kΩ我上拉电阻C通信。如果你正在连接多个I在同一总线上的C设备,您可能希望禁用/启用一个或多个板的上拉电阻。Si7021,引体向上是默认启用。禁用它们,简单使用一些焊锡丝将跳线标签上的焊料聚氨酯。这将断开电阻从VCC和I2C总线。

PTFE滤纸

IC上的微小白色覆盖物被称为聚四氟乙烯(PTFE)膜过滤器。它使水分但允许湿度。这个过滤器非常低调,疏水性和疏油性,并且排除了尺寸减小到0.35微米的微粒。

抬起头来!!不要移除这个白色过滤器,把它误认为是一些IC磁带,这是错误的。移除过滤器可能导致装置的寿命缩短或在高湿度区域失效。

来自SI7021数据表

“因为传感器工作在测量电容变化的原理上,聚合物膜的介电常数的任何变化都将被检测为相对湿度的变化。因此,重要的是最小化的概率污染物接触传感器。灰尘和其他颗粒以及液体都会影响RH读数。”“

替换文本

硅实验室提供的图片数据表

把它钩起来

连接Si7021非常简单!我们建议软钎焊公头到突破董事会。你也可以焊接电线如果您的应用程序的需求。

权力

这块木板在3.3V。请务必从3.3V引脚供电板!因为我C是一个开路漏极信号,不需要担心信号电平偏移;3.3V信号将足以与Arduino通信,并且信号永远不会达到Si7021上的引脚的危险水平。

连接:Arduino的突破

方法1

有两种方法可以将Si7021连接到Arduino。第一种是在经典的Aduino板上使用引脚A4和A5。这个突破是使用我们的标准I设计的。C引脚,允许传感器直接连接到Arduino,而无需使用电路板或电线。

  • GND~A2
  • VCC~A3
  • SDA→A4
  • SCL~A5

这看起来像下面的:

弗里茨

抬起头来!!此方法只适用于运行在 3.3V3.3V Arduino Pro,这个 3.3 v Arduino迷你,这个 亚博官网SAMD21火花小突破亚博官网SparkFun SAMD21开发突破

同时,如果使用这个接线图,一定要 将引脚A2和A3分配为GND和VCC,分别在您的代码中。

如果您需要在5V微控制器上使用这个设备,您将需要使用一个 逻辑电平转换器

方法2

这个方法对于那些新模型Arduino电路板SDA和sci线爆发。我们将把VCC和GND连接到普通电源插脚和两条数据线。C通信。将SDA和SCL线直接连接到SDA和Arduino头上断开的SCL线。

  • VCC→3.3 v
  • GND与GND
  • SDA→SDA
  • SCL~SCL

这看起来像下面这样:

替换文本

Si7021库和示例代码

开始,使用下面的示例代码和库文件。

注:本示例假设您正在桌面上使用Arduino IDE的最新版本。如果这是你第一次使用Arduino,请检查我们的教程安装Arduino IDE。

如果您以前没有安装Arduino库,请检查我们的 安装指南。

您可以从下面的链接下载这个库。看看我们的安装一个Arduino库教程需要更多帮助。

Si7021 Arduino图书馆

一旦安装了图书馆,阿尔杜诺并展开示例菜单。您应该看到Si7021例子。

菜单

示例菜单展开以显示Si7021示例

语言:c / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 亚博官网* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SparkFun Si7021突破例子乔尔·巴特利特@ SparkFun电子原始创建日期:5月18日2015年5月4日更新,2016.本图打印串口温湿度。本例中使用的库可以在这里找到:https://github.com/spathub.com/spark./spark./Si7021_Breab亚博官网reak/树/主/库/库/主库/库的硬件连接:HTU21D----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------开发环境规范标识: IDE:粒子开发硬件平台: SparkFun红板Arduino IDE 1.6.5.此代码是啤酒;如果你看到我(或任何其他SparkFun雇员)在当地,亚博官网您发现我们的代码很有帮助,请购买一个圆!按原样分布;不提供任何保证。***********************************************************************************/#include”亚博官网SparkFun_Si7021_Breakout_Library.h”包括:
           
            浮子湿度=0;浮动温度f=0;int权力= A3;int接地= A2;/ /创建实例HTU21D或SI7021温度和湿度传感器和MPL3115A2 barrometric sensorWeather传感器;/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -空设置(){ Serial.begin(9600);//在9600波特pin.(电源,输出;脉冲模式(GND)输出;数字写作高);数字写作低);//初始化I2C传感器并将它们ping为..begin();{/------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------PrimtIn();延迟(1000);}/--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/ /测量温度从HTU21D或Si7021 tempf = sensor.getTempF();/ /每次请求RH温度测量。//更快,因此,阅读它从以前的RH / /计量getTemp()而不是readTemp()} / / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -空printInfo(){ / /这个函数打印天气数据默认串口并(“温度:);Serial.print(tempf);串行打印(“f“);串行打印(“湿度:);并同时(湿度);Serial.println("%”);}
           

一旦上传了代码,使用串行终端查看输出。

Si7021功能:

天气:getRH ()-返回当前相对湿度测量。

天气:readTemp ()——返回从先前RH温度摄氏温度测量。

天气:getTemp ()-返回当前摄氏温度。

Weather::readTempF()-从以前的RH测量中返回华氏温度。

Weather::getTempF()-返回当前华氏温度。

天气:changeResolution ()-允许用户改变湿度和温度分辨率。绝大多数用户不需要改变分辨率。默认情况下,传感器将处于其最高分辨率设置。这个函数是非常有用的,如果你需要减少读数之间的时间或节省电力。看到数据表更多信息。作为一个例子,将分辨率改变为11位RH和11位温度,你可以叫我湿度。设置分辨率(0b10000001);设置位7和位0。

替换文本

分辨率表可以在数据表的第25页找到。

资源与进一步发展

这样,你现在应该有一个功能的湿度和温度传感系统。查看下面的链接了解更多信息。

需要一些灵感呢?看看这些其他教程:

Arduino天气盾V12联播指南

读取湿度,快速轻松地压力和亮度。增加风速,方向和雨量计用于全天候站能力。

ESP32环境传感器屏蔽连接向导

亚博官网鬼混SparkFun ESP32环境传感器盾提供传感器和监控环境条件。本教程将向您展示如何将传感器套件连接到互联网并在线发布天气数据。

气象表挂钩指南

如何组装你自己的天气计!!

光谱三合会(AS7265x)连接向导

亚博在线娱乐官网学习如何运用18紫外线渠道的力量与AS72651 NIR光谱(UV),AS72652 (VIS),以及AS72653(NIR)传感器!!