做一个物联网温湿度传感器(一)SHT30传感器介绍

摘要:本文介绍物联网项目设计时常用的传感器之一——温湿度传感器。以SHT30传感器为例。

做一个物联网温湿度传感器(一)SHT30传感器介绍

在阿里云物联网HaaS开发案例中,有一个全自动加湿器,使用的是SHT30温湿度传感器。就是下面这个案例。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 该传感器的外观有很多种,最常见的是这种电路板式的。

 

做一个物联网温湿度传感器(一)SHT30传感器介绍

 还有这种带有外壳的,核心的器件都是相同的。驱动也是相同的。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 供电电压是2.4V到5.5V,所以常见的arduino控制器以及ESP32等都是可以用的。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 引脚定义如下图所示。通信协议选择IIC协议。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 通信时序图如下所示。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 下面用arduino来测试一下,具体连线如下图所示,供电采用3.3V。用5V也没关系,不会烧掉芯片。请注意用UNO,这个板子上没有专用的SCL SDA接线柱,然后它是用的A4复用为SDA,A5复用为SCL。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 

 

arduino版本

做一个物联网温湿度传感器(一)SHT30传感器介绍

 驱动直接下载库

做一个物联网温湿度传感器(一)SHT30传感器介绍

 编程的源代码如下所示。

//本程序是用UNO连接温湿度传感器SHT30
//供电用3.3V
//传感器的SCL连接UNO的A5
//传感器的SDA连接UNO的A4
//串口波特率是9600
//温湿度传感器的库,选择Adafruit_SHT31

#include 
#include 
#include "Adafruit_SHT31.h"


Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
Serial.begin(9600);


while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens

Serial.println("SHT31 test");
if (! sht31.begin(0x44)) { // Set to 0x45 for alternate i2c addr
Serial.println("Couldn't find SHT31");
while (1) delay(1);
}
}

void loop() {
float t = sht31.readTemperature();
float h = sht31.readHumidity();

if (! isnan(t)) { // check if 'is not a number'
Serial.print("Temp *C = "); Serial.println(t);

} else {
Serial.println("Failed to read temperature");

}

if (! isnan(h)) { // check if 'is not a number'
Serial.print("Hum. % = "); Serial.println(h);

} else {
Serial.println("Failed to read humidity");

}
Serial.println();
delay(1000);
}

使用arduino自带的串口显示数据

做一个物联网温湿度传感器(一)SHT30传感器介绍

 使用arduino调试,读取出来正确的温湿度之后,这些数据就可以作为参考,下一步使用ESP32来调试,并且将温湿度上传到阿里云物联网平台上。

做一个物联网温湿度传感器(一)SHT30传感器介绍

 

敬请期待。

 

本文章来源于互联网,如有侵权,请联系删除!原文地址:做一个物联网温湿度传感器(一)SHT30传感器介绍

相关推荐: 物联网应用平台开发——项目总结报告

文章目录 项目实战——物联网应用平台项目总结报告 1. 项目概述 1.1 项目背景 1.2 项目名称 1.3 项目介绍 1.4 相关人员及项目支持 1.4.1 任务提出者 1.4.2 开发者 1.4.3 面向用户 2. 编写概要 2.1 编写目的 2.2 定义…