Arduino Uno温湿度监测项目:用LED灯和OLED屏打造智能环境提示器
创作时间:
作者:
@小白创作中心
Arduino Uno温湿度监测项目:用LED灯和OLED屏打造智能环境提示器
引用
CSDN
1.
https://blog.csdn.net/2301_78925693/article/details/145205140
在日常生活中,了解环境的温湿度对于许多场景都至关重要,比如家庭、办公室、温室种植等。通过监测温湿度,我们可以更好地调节环境,确保舒适度和适宜的生长条件。今天,我将向大家介绍一个基于Arduino Uno的简单而实用的温湿度监测项目。这个项目不仅能实时监测温湿度,还能通过LED灯和OLED显示屏直观地展示环境状态,让我们对周围环境的温湿度情况一目了然。
所需硬件
- Arduino Uno:作为项目的控制核心,负责协调各个元件的工作。
- 红色LED:当温湿度超过设定的高阈值时亮起,提醒我们环境过热或湿度过高。
- 蓝色LED:当温湿度低于设定的低阈值时亮起,提示环境过冷或湿度过低。
- DHT11温湿度传感器:用于精确测量环境的温度和湿度。
- 0.96英寸OLED显示屏(I2C接口):清晰地显示温湿度数值及相关信息,让我们能够实时了解环境状态。
硬件连接
DHT11温湿度传感器
将DHT11的数据引脚连接到Arduino Uno的数字引脚2。
LED灯
- 红色LED:将红色LED的IN连接到Arduino Uno的数字引脚3。
- 蓝色LED:将蓝色LED的IN连接到Arduino Uno的数字引脚。
OLED(IIC)显示屏
- SDA连接到Arduino Uno的A4引脚。
- SCL引脚连接到A5引脚。
- VCC连接到5V。
- GND连接到GND。
编写代码
在开始编写代码之前,确保你已经安装了DHT11和OLED显示屏所需的库,如Adafruit Unified Sensor库、DHT库和Adafruit SSD1306库等。这些库可以帮助我们更方便地操作传感器和显示屏。
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define SCREEN_WIDTH 128 // OLED显示屏幕的宽度,以像素为单位
#define SCREEN_HEIGHT 64 // OLED显示屏幕的高度,以像素为单位
#define OLED_RESET -1 // 重置引脚,如果不使用可以设置为 -1
#define DHTPIN 2 // DHT11的数据引脚连接到数字引脚2
#define DHTTYPE DHT11 // DHT 11
#define RED_LED_PIN 3 // 红色LED连接到数字引脚3
#define BLUE_LED_PIN 4 // 蓝色LED连接到数字引脚4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(RED_LED_PIN, OUTPUT);
pinMode(BLUE_LED_PIN, OUTPUT);
dht.begin();
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 这里的0x3C是OLED的I2C地址,根据实际情况调整
Serial.println(F("SSD1306 allocation failed"));
for(;;); // 进入无限循环,无法初始化显示屏
}
display.display(); // 显示启动画面
delay(2000); // 等待2秒
display.clearDisplay(); // 清除画面
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
display.clearDisplay(); // 清除画面
display.setTextSize(1); // 设置文本大小
display.setTextColor(SSD1306_WHITE); // 设置文本颜色
display.setCursor(0,10); // 设置文本开始的坐标
display.cp437(true); // 使用扩展字符集
display.println(F("DHT11 Test!")); // 显示标题
display.print(F("Humidity: "));
display.print(h);
display.print(F("% Temp: "));
display.print(t);
display.println(F("*C ")); // 显示温湿度值
display.display(); // 将以上内容显示出来
// 设置温湿度的高低阈值
float tempHighThreshold = 30.0;
float tempLowThreshold = 15.0;
float humHighThreshold = 80.0;
float humLowThreshold = 30.0;
// 根据温湿度值控制LED灯
if(t > tempHighThreshold || h > humHighThreshold){
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(BLUE_LED_PIN, LOW);
}else if(t < tempLowThreshold || h < humLowThreshold){
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, HIGH);
}else{
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(BLUE_LED_PIN, LOW);
}
delay(2000); // 等待2秒再进行下一次读取和显示
}
热门推荐
图像与视频SEO优化提升用户体验与搜索引擎排名的关键策略
有效维护游戏服务器的方法与策略,确保玩家获得优质游戏体验
美味锅塌豆腐,家常餐桌上的小确幸!
智能建筑与智慧园区转型的网络技术架构与实施路径
传统图像处理案例:对比两张图的差异
《战狼2》:一部燃爆银幕的爱国主义动作巨制
论文发表后如何修改以提高质量?
短视频创作指南:探索抖音热门风格与内容方向
塔罗中的图像学
量化中性策略遭遇"牛灾":巨头纷纷调整策略
商王帝辛:历史中的暴君形象与真相探究
来峰峰City Walk,这6条精品线路值得N刷
可再生能源行业如何实现性别平等?
“影史首位3岁百亿影人”,四十余年影视改编哪吒形象如何创新重塑?
俏黄蓉的秘密:智慧与爱情的交织
殡葬行业的新商业模式探索:线上线下融合的发展路径
吃西瓜好吗?怎样吃更有益于个人健康?
揭秘冰表面原子结构和预融化机制
美“史上最严”排放标准,放水了
网站建设:那些绕不开的常见问题及应对之策
室内十大好养的绿植有哪些?一篇文章讲透彻,总有一种适合你
Transformer中的自注意力机制计算过程分析
大模型时代或将落幕:AI专家预测模型将先"瘦身"再优化
管理人员个人业绩目标怎么设定?
半场就没了悬念,今年超级碗为何还创史上最高收视纪录?
以撒的结合阿撒泻勒怎么解锁 以撒的结合阿撒泻勒介绍
补气健脾、固表止汗——白术
光子到底是如何达到光速的?为什么说光子必须以光速飞行?
姿势和平衡:物理治疗的重要服务项目
为什么说“天街小雨润如酥”中的“天街”是洛阳的天街?