Arduino 智能风扇
文件
ArduinoIDE下载
https://www.arduino.cc
所需工具
● Arduino Uno开发板
https://detail.tmall.com/item.htm?spm=1139j.1.0.0.2fa62cadLV9YyO&id=22375863328&ns=1&abbucket=1
DHT11 温湿度模块
DHT11DHT22温湿度传感器模块SHT30/SHT3031 AM2302数字开关探头-tmall.com天猫
LCD1602 显示屏
LCD1602液晶显示屏模块蓝屏IIC/I2C接口转接板串行5V ph2.0防反接-淘宝网 (taobao.com)
1路5V继电器模块
【优信电子】1路5V继电器模块 光耦隔离/低电平吸合 智能小车-淘宝网 (taobao.com)
9v电池
南孚9V电池碱性方块万用表专用电池方形9伏大容量指针数字万用表红外线测温仪器通用电池方形官方旗舰店[367]-tmall.com天猫
1k电阻 2个
金属膜电阻器元件1%色环1K2k 10K 100K 47K470 10欧100欧120欧姆m-tmall.com天猫
直流电机
电动电机 四驱车马达 140马达玩具 手工制作diy 电压3V-淘宝网 (taobao.com)
小风扇
3叶小风扇叶片小马达usb风扇叶学生手工diy制作科学玩具迷你扇叶-淘宝网 (taobao.com)
面包板
MB-102830孔 优质面包板线路板实验板万能板165*55*10mm 红蓝线-淘宝网 (taobao.com)
触摸传感器
冠亲适用于Arduino电子积木 触摸型触摸传感器 触摸芯片-tmall.com天猫
若干条连接导线
杜邦线母对母 公对母 公对公10CM 20CM 30CM 15CM 40CM 连接线-淘宝网 (taobao.com)
首先,先了解arduino uno板以及面包板的工作原理
Arduino由一个基于单片机的开放源码的硬件平台和一套专门的开发环境组成。它可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。
在面包板的上下两侧分别有两列插孔,一般是作为电源引入的通路。上方第一行标有“+”的一列有5组插孔,每组5个(内部5个孔连通),均为正极。上方第二行标有“-”的一列有5组插孔,每组5个(内部5个孔连通),均为接地。面包板下方第一行与第二行结构同上。如需用到整个面包板,通常将“+”与“+”用导线连接起来,“-”与“-”用导线连接起来。
连接步骤
LCD1602 显示屏,连接如下:
● 将 “GND引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” ;
● 将 “VDD 引脚” 连接到 “Arduino Uno 开发板” 的 “VCC(5v) 引脚” ;
● 将 “V0 引脚” 接 “1K电阻” 到 “GND (或者接电位器) 引脚” ;
● 将 “RS 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 12” ;
● 将 “RW 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。此时, “LCD1602 显示屏” 处于读取状态;
● 将 “E(使能) 引脚” 连接到 “Arduino Uno 开发板” 的 “引脚 11” ;
● 将 “D4-D7 引脚” 分别连接到 “Arduino Uno 开发板” 的 “引脚10,9,8,7 引脚” ;
● 将 “BLA 引脚” 接 “1K电阻” 到 “VCC(5v) 引脚” ;
● 将 “BLK 引脚” 接 “GND 引脚” 。
然后将继电器模块连接到 Arduino Uno 开发板 。在继电器模块的输入端,连接如下:
● 将继电器模块的 “VCC 引脚” 连接到 “Arduino Uno 开发板” 的 “5V 引脚 " ;
● 将继电器模块的 “OUT引脚” 连接到 “Arduino Uno 开发板”的 “引脚 3” ;
● 将继电器模块的 “GND 引脚” 连接到 “Arduino Uno 开发板” 的 “GND 引脚”。
然后,按照以下方式连接DHT11温湿度传感器:
● 将 “DHT11” 的 “引脚 1(即VCC引脚)” 连接到 “Arduino Uno 开发板” 的 “5V 引脚” 。
● 将 “DHT11 的 “引脚 2(数据引脚)” 连接到 “Arduino Uno 开发板” 的 “引脚 2” 。
● 将 “DHT11” 的 “引脚 3(数据引脚)” 置空。
● 将 “DHT11” 的 “引脚 4(接地引脚)” 连接到 “Arduino Uno 开发板” 的 “GND 引脚” 。
然后按照以下步骤将触摸传感器与“Arduino Uno 开发板”相连
●将 “触摸传感器“的 “VCC” 连接到 “Arduino Uno 开发板” 的 “5v引脚”
●将 “触摸传感器“的 “GND” 连接到 “Arduino Uno 开发板” 的 “GND引脚”
●将 “触摸传感器“的 “IN” 连接到 “Arduino Uno 开发板” 的 “4号引脚
最后按照以下步骤将继电器和电机相连和电池相连
● 将继电器的“常闭端”连接到直流电机的负极即黑线
● 将继电器的“公共端”连接到电池的负极
● 将直流电机的正极(红线)连接到电池正极
成品展示
此程序需要引用两个 “库文件” ,分别为:
● <LiquidCrystal.h> //直接在Arduino编译软件中添加
● <dht11.h> //需要在Arduino编译软件中另外增加库文件链接:https://pan.baidu.com/s/1k2ukli_xloLktTn5UXw3yA?pwd=6666
提取码:6666
代码展示
#include<LiquidCrystal.h>
#include<dht11.h>
#defineDHT11PIN 2 //定义温湿度针脚号为2号引脚
dht11DHT11;
LiquidCrystallcd(12, 11, 10, 9, 8, 7); //设置接口
intincomedate = 0;
intrelayPin = 3; //继电器引脚
intledPin = 13; // 设置指示灯为板载测试灯
intKEY = 4; // 连接触摸传感器到数字接口4
voidsetup()
{
Serial.begin(9600); //连接到电脑串口监视器
pinMode(relayPin, OUTPUT); //继电器输出模式
pinMode(DHT11PIN,OUTPUT); //温湿度模块输出模式
pinMode(ledPin, OUTPUT); //设置连接到指示灯的管脚为输出模式
pinMode(KEY, INPUT); //设置触摸传感器的连接管脚为输入模式
lcd.begin(16,2);
lcd.clear(); //清屏
delay(1000); //延时1000ms
}
voidloop ()
{
int chk = DHT11.read(DHT11PIN); //将读取到的值赋给chk
inttem=(float)DHT11.temperature; //将温度值赋值给tem
inthum=(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 >16 ||digitalRead(KEY)==LOW) //如果温度大于16摄氏度或者触摸传感器为低电平
{
digitalWrite(ledPin, HIGH);
digitalWrite(relayPin, HIGH); //继电器开,风扇开
Serial.println(" OPEN!");
} else
{
digitalWrite(ledPin, LOW);
digitalWrite(relayPin,LOW);
Serial.println("CLOSE!");
}
delay(500); //延时0.1秒,这里也就是刷新速度。
}
实验结论:通过运行程序,湿温度感应到温度传到显示屏,当温度大于16摄氏度时,风扇会转动,或者触碰触摸传感器时,风扇也会转动。