Arduino + DHT11 + 以太网盾板温湿度数据记录仪
组件与材料
| 组件 | 数量 |
|---|---|
| DHT11 温湿度传感器(4引脚) | 1 |
| Arduino UNO | 1 |
| Arduino Ethernet W5100 Shield | 1 |
| 杜邦线、面包板 | 若干 |
| 9V 电池、电池扣 | 各1 |
项目简介
将 Arduino UNO 叠加 Ethernet Shield,接入 DHT11 传感器,利用 SD 卡库定时记录温湿度数据到 datalog.txt。适合长期无人值守环境监测,掉电自动恢复记录。
硬件连接
- DHT11 数据脚接 A0,VCC 接 5V,GND 接地
- Ethernet Shield 直接叠加在 UNO 上,SD 卡插入 Shield 卡槽
- 建议长时间运行使用外接稳压电源(如 9V 电源适配器),避免电池耗尽丢失数据
软件实现
基于 Arduino IDE 自带 SD 卡数据记录器 示例修改:
- 引入
dht.h库,定义DHT11_PIN A0 - 修改循环上限:
analogPin < 1(仅读取一个虚拟通道触发采样) - 每 10 分钟(600000ms)采集一次温湿度,写入 SD 卡并串口打印
核心代码
#include
#include
#include
dht DHT;
#define DHT11_PIN A0
const int chipSelect = 4;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed"); return;
}
Serial.println("card initialized.");
}
void loop() {
String dataString = "";
for (int analogPin = 0; analogPin < 1; analogPin++) {
int chk = DHT.read11(DHT11_PIN);
dataString += String(chk);
if (analogPin < 2) dataString += ",";
}
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(DHT.temperature);
dataFile.println(DHT.humidity);
dataFile.close();
Serial.print("Temperature = "); Serial.println(DHT.temperature);
Serial.print("Humidity = "); Serial.println(DHT.humidity);
delay(600000); // 10分钟
} else {
Serial.println("error opening datalog.txt");
}
}
原理图
文中提供两张原理图:面包板接线图与 Ethernet Shield 引脚对应图。
制造工艺
- 树莓派配合 EzTemp 实现无缝温湿度监测
- 打造可靠的 Arduino 能源监测与数据记录仪——分步指南
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- BME280 环境数据实时显示于 Nextion 触摸屏——Visuino 图形化开发
- Arduino 声纳实时测距与 Processing 可视化
- 非接触体温筛查闸机:Arduino MKR1000 + 红外测温 + 舵机控制
- Blynk + Arduino 读取 DHT11 温湿度数据教程
- 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 精准温控木炭烟熏炉套件:Arduino MKR1000 物联网 BBQ 大师
- MKR1000 接入 Azure IoT:DHT22 温湿度实时上云监控