โปรเจค ARDUINO พัดลมเปิดปิดอัตโนมัติควบคุมความเร็วตามอุณหภูมิ 4ระดับ




โปรเจค Arduino พัดลมเปิดปิดอัตโนมัติควบคุมความเร็วตามอุณหภูมิ 4ระดับชุดโปรเจคนี้ จะทำพัดลมอัตโนมัติควบคุมความเร็วตามอุณหภูมิ 4 ระดับ ถ้าอุณหภูมิสูงขึ้นพัดลมจะหมุนเร็วขึ้นตามไปด้วย มีจอแสดงผล ค่าอุณหภูมิห้อง ความชื้นในอากาศ และ ไฟสถานะแสดงระดับความเร็วของพัดลม  ใช้ Arduino UNO R3 เป็นบอร์ดประมวลผล ในการอ่านค่าและสั่งงานอุปกรณ์ต่างๆ และใช้ เซ็นเซอร์วัดอุณหภูมิและความชื้น DHT22 วัดค่าอุณหภูมิห้อง

อุปกรณ์ในชุด โปรเจค Arduino พัดลมเปิดปิดอัตโนมัติควบคุมความเร็วตามอุณหภูมิ 4ระดับ

วิธีการต่อ โปรเจค Arduino ควบคุมพัดลมตามอุณหภูมิ

เซ็นเซอร์วัดอุณหภูมิและความชื้น -> Arduino uno r3

Vcc -> 5V
GND -> GND
Out -> Pin 2
แหลงจ่ายไฟ 12v5a -> Arduino uno r3
ต่อช่องแจ็ค Arduino uno r3

จอ LCD 1602 -> Arduino uno r3

Vcc -> 5V
GND -> GND
SCL -> A5
SDA -> A4

โมดูล LCD 8 ดวง -> Arduino uno r3

Vcc -> 5V
GND -> GND
D1,D2 -> pin8

D3,D4 -> pin9

D5,D6 -> pin10

D7,D8 -> pin11

โมดูลขับมอเตอร์ L298N -> Arduino uno r3

Vcc -> 12V
GND -> GND

in3-> pin3

in4-> pin4


Code โปรเจค Arduino พัดลมเปิดปิดอัตโนมัติควบคุมความเร็วตามอุณหภูมิ 4ระดับ

1
#include "DHT.h"
2
#include <Wire.h>
3
#include <LiquidCrystal_I2C.h>
4
int Number = 0;
5
const int in3Pin = 3;
6
const int in4Pin = 4;
7
int p8_Lv1 = 8;
8
int p8_Lv2 = 9;
9
int p8_Lv3 = 10;
10
int p8_Lv4 = 11;
11
LiquidCrystal_I2C lcd(0x27, 16, 2);
12
#define DHTPIN 2 // what digital pin we're connected to
13
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
14
DHT dht(DHTPIN, DHTTYPE);
15
void setup() {
16
Serial.begin(9600);
17
Serial.println("DHTxx test!");
18
dht.begin();
19
lcd.begin();
20
lcd.backlight();
21
pinMode(in3Pin, OUTPUT);
22
pinMode(in4Pin, OUTPUT);
23
analogWrite (in3Pin , 0);
24
digitalWrite(in4Pin, LOW);
25
pinMode(p8_Lv1, OUTPUT);
26
pinMode(p8_Lv2, OUTPUT);
27
pinMode(p8_Lv3, OUTPUT);
28
pinMode(p8_Lv4, OUTPUT);
29
digitalWrite(p8_Lv1, LOW);
30
digitalWrite(p8_Lv2, LOW);
31
digitalWrite(p8_Lv3, LOW);
32
digitalWrite(p8_Lv4, LOW);
33
}
34
void loop() {
35
delay(2000);
36
float h = dht.readHumidity();
37
// Read temperature as Celsius (the default)
38
float t = dht.readTemperature();
39
// Read temperature as Fahrenheit (isFahrenheit = true)
40
float f = dht.readTemperature(true);
41
// Check if any reads failed and exit early (to try again).
42
if (isnan(h) || isnan(t) || isnan(f)) {
43
Serial.println("Failed to read from DHT sensor!");
44
return;
45
}
46
// Compute heat index in Fahrenheit (the default)
47
float hif = dht.computeHeatIndex(f, h);
48
// Compute heat index in Celsius (isFahreheit = false)
49
float hic = dht.computeHeatIndex(t, h, false);
50
Serial.print("Humidity: ");
51
Serial.print(h);
52
Serial.print(" %\t");
53
Serial.print("Temperature: ");
54
Serial.print(t);
55
Serial.print(" *C ");
56
Serial.print(f);
57
Serial.print(" *F\t");
58
Serial.print("Heat index: ");
59
Serial.print(hic);
60
Serial.print(" *C ");
61
Serial.print(hif);
62
Serial.println(" *F");
63
if ( t < 30 ) {
64
Number = 0;
65
analogWrite (in3Pin , 0);
66
digitalWrite(p8_Lv1, LOW);
67
digitalWrite(p8_Lv2, HIGH);
68
digitalWrite(p8_Lv3, HIGH);
69
digitalWrite(p8_Lv4, HIGH);
70
}
71
if ( t > 30 && t <= 35 ) {
72
Number = 1;
73
analogWrite (in3Pin , 255);
74
digitalWrite(p8_Lv1, LOW);
75
digitalWrite(p8_Lv2, LOW);
76
digitalWrite(p8_Lv3, HIGH);
77
digitalWrite(p8_Lv4, HIGH);
78
}
79
if ( t > 35 && t <= 40 ) {
80
Number = 2;
81
analogWrite (in3Pin , 127);
82
digitalWrite(p8_Lv1, LOW);
83
digitalWrite(p8_Lv2, LOW);
84
digitalWrite(p8_Lv3, LOW);
85
digitalWrite(p8_Lv4, HIGH);
86
}
87
if ( t > 40 ) {
88
Number = 3;
89
analogWrite (in3Pin , 255);
90
digitalWrite(p8_Lv1, LOW);
91
digitalWrite(p8_Lv2, LOW);
92
digitalWrite(p8_Lv3, LOW);
93
digitalWrite(p8_Lv4, LOW);
94
}
95
lcd.setCursor(0, 0);
96
lcd.print("Tem:");
97
lcd.print(t);
98
lcd.print("*C");
99
lcd.setCursor(0, 1);
100
lcd.print("Hum:");
101
lcd.print(h);
102
lcd.print("% ");
103
lcd.print("Num:");
104
lcd.print(Number);
105
}


 

ความคิดเห็น

บทความที่ได้รับความนิยม