Arduino温控风扇
本篇文章,主要介绍如何使用DHT22温湿度传感器和继电器制作一款Arduino温控风扇。使用DHT22传感器获取温度值,然后将在LCD显示屏上显示此温度值。我们将检查温度值是否大于26,如果温度大于26,则启动继电器,风扇将开始旋转。
所需的硬件
● Arduino Uno 开发板
● DHT22 温湿度传感器
● LCD1602 显示屏
● 继电器
● 9V电池 //其他电池也可以
● 1K电阻
● 直流电机
● 小风扇
● 面包板
● 若干条连接导线
LCD1602 显示屏,连接如下:
● 将 “LCD1602 显示屏” 的 “VSS 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” ;
● 将 “VDD 引脚” 连接到 “Arduino Uno 开发板” 的 “VCC(5v) 引脚” ;
● 将 “V0 引脚” 接 “1K电阻” 到 “GND (或者接电位器) 引脚” ;
● 将 “RS 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 12” ;
● 将 “R / W 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。此时, “LCD1602 显示屏” 处于读取状态;
● 将 “E(使能) 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 11” ;
● 将 “D4-D7 引脚” 分别连接到 “Arduino Uno 开发板” 的 “引脚10,9,8,7 引脚” ;
● 将 “A 引脚” 接 “1K电阻” 到 “VCC(5v) 引脚” ;
● 将 “K 引脚” 接 “GND 引脚” 。
然后将继电器模块 relayPin 连接到 Arduino Uno 开发板 。在继电器模块的输入端,连接如下:
● 将继电器模块的 “VCC 引脚” 连接到 “Arduino Uno 开发板” 的 “5V 引脚 " ;
● 将继电器模块的 “IN 引脚” 连接到 “Arduino Uno 开发板”的 “引脚 3” ;
● 将继电器模块的 “GND 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。
最后,按照以下方式连接DHT22温湿度传感器:
● 将 “DHT22” 的 “引脚 1(即VCC引脚)” 连接到 “Arduino Uno 开发板” 的 “5V 引脚” 。
● 将 “DHT22” 的 “引脚 2(数据引脚)” 连接到 “Arduino Uno 开发板” 的 “引脚 2” 。
● 将 “DHT22” 的 “引脚 3(数据引脚)” 置空。
● 将 “DHT22” 的 “引脚 4(接地引脚)” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” 。
成品展示
源码
#define DHT11PIN 2 //定义温湿度针脚号为2号引脚
dht11 DHT11;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //设置接口
int incomedate = 0;
int relayPin = 3; //继电器引脚
void setup()
{Serial.begin(9600); //连接到电脑串口监视器pinMode(relayPin, OUTPUT); //继电器输出模式pinMode(DHT11PIN,OUTPUT); //温湿度模块输出模式lcd.begin(16,2);lcd.clear(); //清屏delay(1000); //延时1000ms
}void loop ()
{ int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chk
int tem=(float)DHT11.temperature; //将温度值赋值给tem
int hum=(float)DHT11.humidity;
Serial.print("Humidity:"); //打印出Humidity:
Serial.print(hum);
Serial.print("Tempeature:");Serial.print(tem); //使屏幕显示文字//打印出湿度结果
Serial.println("%");
delay(200);lcd.setCursor(0, 0) ; //设置光标位置为第1行第1个位置lcd.print("Tempeature:");lcd.print(tem); //使屏幕显示温度lcd.setCursor(0, 1) ;lcd.print("Humidity:"); lcd.print(hum); //使屏幕显示湿度if (tem >26) //如果温度大于26摄氏度{digitalWrite(relayPin, LOW); //继电器开,风扇开Serial.println(" OPEN!");} else{digitalWrite(relayPin,HIGH);Serial.println("CLOSE!");}delay(500); //延时0.1秒,这里也就是刷新速度。 }
注意:
此程序需要引用两个 “库文件” ,分别为:
● <LiquidCrystal.h> //直接在Arduino编译软件中添加
● <dht11.h> //需要在Arduino编译软件中另外增加库文件
链接: https://pan.baidu.com/s/1wHXLNhYdRS_h3CqHphllbw
提取码: 7vhi
运行代码
#include <LiquidCrystal.h>
#include <dht11.h>#define DHT11PIN 2 //定义温湿度针脚号为2号引脚
dht11 DHT11;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //设置接口
int incomedate = 0;
int relayPin = 3; //继电器引脚
void setup()
{Serial.begin(9600); //连接到电脑串口监视器pinMode(relayPin, OUTPUT); //继电器输出模式pinMode(DHT11PIN,OUTPUT); //温湿度模块输出模式lcd.begin(16,2);lcd.clear(); //清屏delay(1000); //延时1000ms
}void loop ()
{ int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chk
int tem=(float)DHT11.temperature; //将温度值赋值给tem
int hum=(float)DHT11.humidity;
Serial.print("Humidity:"); //打印出Humidity:
Serial.print(hum);
Serial.print("Tempeature:");Serial.print(tem); //使屏幕显示文字//打印出湿度结果
Serial.println("%");
delay(200);lcd.setCursor(0, 0) ; //设置光标位置为第1行第1个位置lcd.print("Tempeature:");lcd.print(tem); //使屏幕显示温度lcd.setCursor(0, 1) ;lcd.print("Humidity:"); lcd.print(hum); //使屏幕显示湿度if (tem >26) //如果温度大于26摄氏度{digitalWrite(relayPin, LOW); //继电器开,风扇开Serial.println(" OPEN!");} else{digitalWrite(relayPin,HIGH);Serial.println("CLOSE!");}delay(500); //延时0.1秒,这里也就是刷新速度。 }
编译完成
Arduino温控风扇相关推荐
- 基于Arduino的温控风扇
概述 基于Arduino的温控风扇系统,经DS18B20温度采集,将数据传送到Arduino,通过PWM调节占空比进而控制电机转速,经过驱动电路驱动电机,由电机的计数模块得到电机转速并用LCD1602 ...
- Arduino与Proteus仿真实例-温控风扇仿真
温控风扇仿真 1.仿真应用介绍 在实例将使用 Arduino 构建一个温控风扇. 此实例,模拟够根据室温调节我们家或办公室的风扇速度,并在 16x2 LCD 显示屏上显示温度和风扇速度的变化.因此,在 ...
- 基于Blinker ESP8266 远程电压电流、功率计、温湿度计、ADC接口测温、温控风扇、低电压保护、低压报警功能。用来监测我的太阳能充电。SSD1306可轮番显示电压信息和温度信息。APP图表
ESP8266系列文章目录 目录 ESP8266系列文章目录 经过不断的努力,处女之作终于做出来了.用的Arduino 经过一段时间不断熟练了,做了一些更新:2022.10.30 可以直接主页下载 ...
- 树莓派3B+温控风扇
树莓派3B+温控风扇 已添加散热片的树莓派3B+,在空载工作过程中温度过高,需要增加风扇达到物理降温的效果.但在使用过程中,风扇发出的声音过高,需要在温度较低的情况下停止风扇的工作. 准备材料 树莓派 ...
- RK3588 实现温控风扇之获取cpu温度(一)
RK3588 实现温控风扇系列文章 第一章: RK3588 实现温控风扇之如何获取cpu温度(一) 第二章: RK3588 实现温控风扇之pwm驱动调试(二) 第三章: RK3588 实现温控风扇之通 ...
- 毕业设计 stm32智能温控风扇系统 - 单片机 嵌入式
文章目录 1 简介 2 绪论 2.1 课题背景 3 系统设计 3.1 系统架构 3.2 硬件部分 3.2.1 DS18B20 简介 3.2.2 LCD1602 液晶屏简介 3.3 软件部分 3.3.1 ...
- 基于stm32单片机智能温控风扇控制系统Proteus仿真
资料编号:103 下面是相关功能视频演示: 103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料) 功能介绍:采用stm32单片机.ds18b20温度传感器采集温 ...
- 北邮信通导论第三单元智能温控风扇
智能温控风扇(显示温度转速+高温自动开启) #include <U8glib.h> #define INTERVAL_LCD 20 unsigned long lcd_time = mil ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- 基于STM32的智能温室控制系统仿真电路设计(温控补光)-基于STM32的智能蓝牙温控风扇控制系统设计-基于STM32的无线蓝牙心电监护仪系统设计【毕设课设分享】
1609 基于STM32的智能蓝牙温控风扇控制系统设计-毕设课设 1.LCD1602液晶显示当前温度,温度上下限值,风扇等级,自动手动模式: 2.设置有4个按键,按键1可以设置自动和手动2种模式切换: ...
最新文章
- Konstrukt PHP REST框架 教程二
- Git 基础 —— 安装 配置 别名 对象
- 盘点:崛起中的九大HTML5开发工具
- java网络编程(一)
- RequestMapping介绍
- XCTF-高手进阶区:baby_web
- 简述垃圾对象产生_使用零垃圾创建数百万个对象
- 子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承
- oracle 锁问题的解决
- Matplotlib 中文用户指南 8.1 屏幕截图
- Oracle分页查询格式(八)
- 常用排序算法之插入排序 ( 直接插入排序、希尔排序 )
- Oracle中 如何用一个表的数据更新另一个表中的数据(含表备份)
- 计算机应用基础试卷分析报告,计算机应用基础试卷分析.pdf
- 初学STM32之使用STM32CubeMX编写跑马灯程序
- 黎曼传记资料(2010-04-22 22:17:06)
- 山东大学暑期实训——智能人物画像综合分析系统
- 音视频技术开发周刊 | 177
- rust哪个护甲高_《废土2》全部武器护甲资料及代码
- 监管之外,加密货币在日本大行其道的其他原因
热门文章
- linux shell经典脚本,10个经典Linux Shell脚本
- JAVA知识点(尚硅谷宋红康老师的b站授课自我整理)
- Multisim BLUE14.0使用介绍
- Hbase中的二级索引
- 云时代的“双态IT”运维思路
- 随着公司对各种网络需要的满足,公司服务器的响应不如购买及时性,第八章网络企业的供应链管理.ppt...
- 神州微型计算机,神舟笔记本序列号查维修-怎样根据神舟笔记本电脑的序列号查询...
- jspsmartupload简述
- 电工与电子技术基础【2】
- Lock接口和AQS原理与实现(Java并发编程的艺术整理)