วันอังคารที่ 25 กันยายน พ.ศ. 2561

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

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

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

  • Arduino UNO R3 แถมฟรี สายUSB 1 ชิ้น
  • บอร์ดทดลอง Breadboard 830 Point 1ชิ้น
  • สายไฟจัมเปอร์ ผู้-ผู้ ยาว 20cm. จำนวน 40 เส้น 1 แพร
  • สายไฟจัมเปอร์ ผู้-เมีย ยาว 20cm. จำนวน 40 เส้น 1 แพร
  • สายไฟจัมเปอร์ เมีย-เมีย ยาว 20cm. จำนวน 40 เส้น 1 แพร
  • Electronics box กล่องอิเล็กทรอนิกส์ ขนาด 200mmx300mmx63mm (กxยxส) 1 ใบ
  • DC male Adapter Jack plug สำหรับ Arduino 2.1 x 5.5 mm 1 ชิ้น
  • สายไฟพร้อมหัวปลั๊ก ขนาด2*0.75 ยาว2m 1 เส้น
  • DHT22 / AM2302 Module โมดูลวัดอุณหภูมและความชื้น Temperature and Humidity Sensor Module พร้อมสายไฟ 1ชิ้น
  • L298N Motor Drive Module 1 ชิ้น
  • 1602 LCD (Blue Screen) 16x2 โมดูลจอ LCD พร้อม I2C Interface 1 ชิ้น
  • พัดลมเป่าเทอร์โบ 12v ขนาด 74*74mm 1 ชิ้น
  • Switching Power supply แหล่งจ่ายไฟ 12V 3A 1 ชิ้น
  • บอร์ดทดลอง LED 8 ดวง สีแดง

วิธีการต่อ โปรเจค 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

 


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


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 , 100);
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 , 150);
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
}


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



เมื่อมีการเอาไดร์เป่าผม มาเป๋าเพื่อ เพิ่มอุณหภูมิ ค่าอุณหภูมิ ที่ Arduino วัดได้ จะสูงขึ้น สถานะไฟของพัดลมจะเพิ่มขึ้น และความเร็วของพัดลมจะเพิ่มขึ้นตามไปด้วย


//ที่มาhttp://www.myarduino.net

ไม่มีความคิดเห็น:

แสดงความคิดเห็น