温湿度传感器的应用和使用案例教程

MEMS/传感技术

1292人已加入

描述

 

 什么是温湿度传感器?应用领域有哪些?

温湿度传感器是一种用于测量环境中温度和相对湿度的传感器。它可以通过电子或机械方式测量温度和湿度,并将其转换成数字信号以便于处理和记录。

温湿度传感器可以广泛应用于很多领域,例如:

1、室内环境监测:温湿度传感器可以用于监测室内温度和湿度,以确保室内环境的舒适度和健康性。

2、农业:温湿度传感器可以用于农业生产,监测温度和湿度以优化作物生长条件,预测天气变化等。

3、工业控制:温湿度传感器可以用于工业控制,例如在制造工艺中监测温度和湿度,以控制产品质量和生产效率。

4、医疗保健:温湿度传感器可以用于监测医疗保健设施中的环境条件,以确保患者和医务人员的健康和安全。

5、物流和运输:温湿度传感器可以用于监测货物的温湿度,以确保货物质量和安全运输。

总之,温湿度传感器在许多领域都具有重要的应用价值,可以帮助我们更好地了解环境条件,并做出相应的调整和控制。

应用领域  

温湿度传感器物联网应用

温湿度传感器是一种用于测量环境温度和湿度的设备,它可以通过物联网技术与其他设备或系统进行连接,实现自动化控制和数据采集。以下是几个温湿度传感器在物联网应用中的案例:

1、农业领域:温湿度传感器可以用于农业领域中的温室控制系统,监测温室内的温度和湿度,以确保作物生长的最佳环境条件。传感器可以与灌溉系统和通风设备等其他设备连接,自动调整环境条件。

2、建筑物管理:温湿度传感器可以用于建筑物的温度和湿度监测,以优化空调和加湿设备的控制,提高能源效率。传感器可以将数据发送到云端,通过分析数据来确定优化措施,并向设备发送指令进行控制。

3、食品储存和运输:温湿度传感器可以用于监测食品的温度和湿度,以确保食品在储存和运输过程中的安全性和质量。传感器可以与智能冷链设备和物流管理系统连接,提供实时监控和报警功能。

4、医疗保健:温湿度传感器可以用于医院和实验室中的温度和湿度监测,以确保药品和生物样本的质量和安全。传感器可以将数据发送到云端,并与智能制药和仓库管理系统等其他设备连接。

5、家庭自动化:温湿度传感器可以用于家庭自动化系统,监测室内温度和湿度,以自动控制空调和加湿设备。传感器可以与智能家居中心和智能手机等其他设备连接,提供远程控制和监测功能。

总之,温湿度传感器在物联网应用中可以用于许多不同的领域,包括农业、建筑物管理、食品储存和运输、医疗保健和家庭自动化等。

应用案例

下面以Seeeduino Grove-DHT11温湿度传感器为例,介绍其Arduino平台的使用教程。

  Grove - DHT11温湿度传感器

DHT11 温湿度传感器常用于室内环境监测,它可监测的相对温度范围为“0 至 50 °C”,相对湿度范围“20% 到 90% RH”,通信方式为使用预先校准的数字输出方式,使用电容元件测量湿度,使用热敏电阻测量温度,具有出色的可靠性和稳定性(注意:此传感器不能用于室外低于0 度的温度环境),采用Grove接口方便安装,支持Arduino和树莓派等平台。

 

Arduino平台下的应用方法

第1步:硬件部分,使用Grove Beginner Kit 可以快速进行硬件学习,我们选择中间的主控板和右边的DHT11温湿度传感器,将DHT11连接到D3数字接口上,如下图所示。

控制板

第2步:打开库管理器,在搜索框中输入【Grove Temperature and Humidity Sensor(DHT11)】 ,选择版本,单击“安装”安装库文件,安装完成后,点击右上角的X关闭此窗口,注意:安装库文件需要有网络连接才行,因为要下载库文件,如下图所示:

控制板

第3步,编写代码并将温度和湿度串口输出,如下图所示:

控制板

具体介绍一下代码:

 

#include   // 安装完库文件后,可以直接添加库文件注意没有分号符。


#define DHTPIN  3  // 自定义一个常量,名字是DHTPIN   值是:3  就是设置3号数字针脚为DHT11针脚号
#define DHTTYPE DHT11  // 自定义一个常量,名字叫DHTTYPE  定义传感器的类型,值是:DHT11  或者DHT22


DHT dht ( DHTPIN ,DHTTYPE ) ;  // 声明 dht函数(针脚号, 类型 )


void setup() {
  Serial.begin ( 9600 );   //设置串口波特率
  dht.begin();          // 初始化dht函数
}


void loop() {
  float  tempC , humi ;   //定义浮点型变量  tempC表示温度   humi表示湿度
  tempC = dht.readTemperature();  // 读取传感器温度值,并赋值给变量tempC
  humi = dht.readHumidity();  //读取传感器湿度值,并赋值给变量humi
    
  // 下面代码是串口输出温度和湿度值及相应的文本内容
  Serial.print ( "温度:");
  Serial.print ( tempC );
  Serial.print (" ^C ");
  Serial.print ("" );
  Serial.print ( "湿度:"  );
  Serial.print ( humi );
  Serial.println (" %RH" );
  delay ( 200 );
}

 

第4步:在Arduino IDE软件中,先保存文件然后单击“验证”,先验证下程序是否有错误,如果没有错误单击“上传”按钮,上传到Arduino控制板上。

控制板

第5步:上传成功后,单击右上角的“串口监视器”图标,打开串口监视器窗口,波特率设置为9600,这时串口监视器窗口会显示出当前的温度和湿度值并每隔200毫秒更新一次,如下图所示。

控制板

案例2 在OLED显示屏上显示温湿度

下面在介绍一个案例,在Grove Beginner Kit 上利用oled显示屏显示温湿度值。

默认DHT11温湿度传感器连到D3接口上,OLED显示屏连接到IIC接口上,如下图所示。

控制板

第1步:添加OLED库文件,打开Arduino IDE 软件,点击:项目->加载库->管理库选项,如下图所示。

控制板

第2步:打开库管理器,在搜索框中输入“U8g2”,可以看到U8g2库介绍文本,选择版本号,点击“安装”按钮,这样就安装好库文件了,如下图所示。

控制板

第3步:编写程序,将DHT11温湿度值显示到Oled显示器上,代码如下所示:

 

#include "DHT.h"
#include 
#define DHTPIN 3
#define DHTTYPE DHT11
  DHT dht( DHTPIN ,DHTTYPE );
  U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
void setup() {
  dht.begin();
  u8x8.begin();
  u8x8.setPowerSave (0);
  u8x8.setFlipMode ( 1);
} 
void loop() {
  float  temp , humi;
  temp = dht.readTemperature();
  humi = dht.readHumidity();
  
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 33);
  u8x8.print("Temp:");
  u8x8.print(temp);
  u8x8.print("^C");
  u8x8.setCursor(0,50);
  u8x8.print("Humidity:");
  u8x8.print(humi);
  u8x8.print("%");
  u8x8.refreshDisplay();
  delay(200);
}

 

下面说明一下代码

 

#include "DHT.h"  // 添加库文件,结尾不需要分号结束




U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
//声明对象后,即可使用库中的函数




u8x8.begin();  // 初始化u8g2库
u8x8.setPowerSave (0);  // 将显示屏旋转180度,值:0 和 1
u8x8.setFlipMode ( 1);  // 设置显示字体




u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.setCursor(0, 33);
u8x8.print("Temp:");
u8x8.print(temp);
u8x8.print("^C");
u8x8.setCursor(0,50);
u8x8.print("Humidity:");
u8x8.print(humi);
u8x8.print("%");
u8x8.refreshDisplay();
delay(200);
//此区域是在OLED显示屏上,输出温度值和湿度值,最后延时200毫秒,再次监测温湿度值

 


相关功能函数

u8x8.setCursor(x, y) ;       

x, y: 打印函数光标的列/行位置

u8x8.print();  打印文本到OLED显示屏

以上两个语句,可以使用一条u8x8.drawString (); 代替

u8x8.drawString ( 列数 , 行数 , “打印文本” );  

坐标值从0开始计算,比如:

u8x8.drawString ( 1 ,0 , "Grove" );

OLED屏一行可以显示16个字符,可以显示6行都是从0开始

比如:0列,0行    列:0到15    行:0到5

u8x8.clear();  此语句的功能的清屏

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分