当前位置: 首页 > news >正文

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

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

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

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

#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11DHT 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或0x45Serial.println("找不到SHT31传感器!");while (1) delay(1);}
}void loop() {float t = sht31.readTemperature();float h = sht31.readHumidity();if (!isnan(t) && !isnan(h)) {Serial.print("Temp *

相关文章:

  • 系统分析师-第十三、十四章
  • 软考高项(信息系统项目管理师)第 4 版全章节核心考点解析(第4版课程精华版)
  • java中线程安全的集合
  • Java中的内部类?
  • 龙虎榜——20250429
  • AXPA17388: 4x45W 车用AB类四通道桥式输出音频功率放大器
  • AimRT 从零到一:官方示例精讲 —— 一、工具链与基本概念
  • windows编译chromium环境配置官方文档说明
  • Mac配置Maven环境变量避坑
  • 【数据治理】数据生命周期
  • 4.28-4.29 Vue
  • MCP 哪家强?深度分析 Cline、Cursor、Trae、Coze 四大平台
  • Astro大屏中关于数据流转的数据接入与数据中心之间的逻辑关系梳理
  • VSCode Verilog编辑仿真环境搭建
  • 【Vue】 实现TodoList案例(待办事项)
  • 赛事季突围!备战2025全国信息素养大赛 python挑战赛~
  • 流量控制机制
  • 基于 Windows I/O 完成端口(IOCP)的多线程任务队列系统小case
  • 鬼泣:motion warping 总结
  • 通过漂移-扩散仿真研究钙钛矿-硅叠层太阳能电池中的电流匹配和滞后行为
  • 智能终端出海服务创新联合体成立
  • 书业观察|一本书的颜值革命:从毛边皮面到爆火的刷边书
  • 中国海警局新闻发言人就菲律宾非法登临铁线礁发表谈话
  • 加拿大温哥华一车辆冲撞人群,造成多人伤亡
  • 人民日报:光荣属于每一个挺膺担当的奋斗者
  • 罗马教皇方济各葬礼在梵蒂冈举行