基于arduino的温湿度传感器应用

温湿度传感器深度解析与多平台开发实战

一、温湿度传感器代码实现(Arduino平台)

1. 基础传感器驱动(DHT11)

#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  delay(2000);  // 传感器最小采样间隔1秒
  
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  if (isnan(h) || isnan(t)) {
    Serial.println("传感器读取失败!");
    return;
  }
  
  // 计算体感温度(热指数)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("湿度: ");  Serial.print(h);  Serial.print("%\t");
  Serial.print("温度: ");  Serial.print(t);  Serial.print("°C\t");
  Serial.print("体感温度: ");  Serial.print(hic);  Serial.println("°C");
}
代码解析
  • 采样限制:DHT11需至少1秒间隔,强行高频读取会导致数据错误

  • 错误处理isnan()检测NaN值,避免程序崩溃

  • 热指数计算:DHT库内置算法实现人体感知温度模拟


2. 高精度传感器驱动(SHT31 + I2C)

#include <Wire.h>
#include <Adafruit_SHT31.h>

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
  Serial.begin(115200);
  
  if (!sht31.begin(0x44)) {   // 地址可选0x44或0x45
    Serial.println("找不到SHT31传感器!");
    while (1) delay(1);
  }
}

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

  if (!isnan(t) && !isnan(h)) {
    Serial.print("Temp *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python算法(魔法师版)

谢谢鼓励,您为支持开源做出贡献

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值