สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
บล็อกนี้จะสาธิตวิธีการสร้างระบบ Home Automation ซึ่งจะเริ่มส่งเสียงเตือนเมื่อใดก็ตามที่อุณหภูมิสูงกว่าค่าเกณฑ์ที่ตั้งโปรแกรมไว้ มันจะแสดงอุณหภูมิปัจจุบันของห้องบน LCD และการดำเนินการที่จำเป็นต่อไป (เช่น: ลดอุณหภูมิ) เมื่ออุณหภูมิถึงมากกว่าค่าเกณฑ์ ในบทช่วยสอนนี้ ฉันใช้เซ็นเซอร์อุณหภูมิ AD22100 ซึ่งผลิตโดย Analog Devices และ AG-1005G Buzzer AD22100 เป็นเซ็นเซอร์อุณหภูมิแรงดันขาออกพร้อมการปรับสัญญาณ
ขั้นตอนที่ 1: อะไหล่
คุณต้องมีชิ้นส่วนเหล่านี้กับคุณก่อนที่จะเริ่มทำงานที่ไม่สามารถทำลายได้
1. บอร์ด Arduino UNO
2. จอ LCD (16x2)
3. Buzzer - 2 ขา (AC-1005G)
4. เซ็นเซอร์อุณหภูมิ - 3 ขา (AD22100)
ขั้นตอนที่ 2: การเชื่อมต่อชิ้นส่วนต่างๆ ด้วย Arduino UNO
การเชื่อมต่อ LCD กับบอร์ด Arduino UNO
LCD RS Pin (ขา 4) พร้อมขา 7 ของบอร์ด Arduino
LCD เปิดใช้งานพิน (พิน 6) พร้อมพิน 8 ของบอร์ด Arduino
LCD D4 ขา (ขา 11) พร้อมขา 9 ของ Arduino Board
LCD D5 Pin (พิน 12) พร้อม Pin 10 ของ Arduino Board
LCD D6 Pin (Pin 13) พร้อม Pin 11 ของ Arduino Board
ขา LCD D7 (ขา 14) พร้อมขา 12 ของบอร์ด Arduino
เพิ่มหม้อ 10 KΩ เป็น +5v (Pot Pin 1) และ GND (Pot Pin 3)
เชื่อมต่อพินกลางของหม้อ (พินหม้อ 2) เข้ากับพิน LCD V0 (พิน 3)
LCD VDD Pin (พิน 2) และ LCD A Pin (พิน 15) พร้อม +5v บนบอร์ด Arduino
LCD VSS Pin (พิน 1) และ LCD K Pin (พิน 16) พร้อม GND บนบอร์ด Arduino
AD22100 Temp Sensor เชื่อมต่อกับ Arduino UNO Board
Pin 1 (V+) ของ AD22100 ควรเชื่อมต่อกับ +5 v บน Arduino Board
Pin 2 (Vo) ของ AD22100 ควรเชื่อมต่อกับ Pin A1 บน Arduino Board
ขา 3 (GND) ของ AD22100 ควรเชื่อมต่อกับ GND บน Arduino Board
การเชื่อมต่อ Buzzer (AC-1005G) กับ Arduino UNO Board
พิน 6 เอาต์พุต PWM ของบอร์ด Arduino ควรเชื่อมต่อกับอินพุต + ของ Buzzer
GND ของ Arduino Board ควรเชื่อมต่อกับ -ve input ของ Buzzer
ขั้นตอนที่ 3: รหัส Arduino
รวบรวมและอัปโหลดบนบอร์ด Arduino และสังเกตการสาธิตระบบอัตโนมัติภายในบ้าน
//โปรแกรมเริ่มต้นที่นี่
ค่า int;
int tempPin = A1;
ออด int = 6;
#include LiquidCrystal LCD (7, 8, 9, 10, 11, 12);
การตั้งค่าเป็นโมฆะ () {
// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว:
lcd.begin(16, 2);
lcd.clear();
Serial.begin(9600);
pinMode (ออด, เอาต์พุต);
}
void loop() {// ใส่รหัสหลักของคุณที่นี่เพื่อเรียกใช้ซ้ำ ๆ:
val = analogRead (tempPin); // AD22100 เชื่อมต่อที่ Pin A1
/*
*สำหรับ 25C วาลมีค่าเท่ากับ 900 ซึ่งหมายความว่า
* 900 สอดคล้องกับ 1.9375 v
* ฟังก์ชั่นการถ่ายโอนคือ (V+/5)* (1.375 + 22.5 mv/degC * 25 degC)
* อ่านเอกสารข้อมูลของ AD22100
*/
float cel = ((((1.9375/900) * val) – 1.375)/22.5)*1000;
float farh = (เซล*9)/5 + 32;
Serial.print(val);
Serial.println();
Serial.print("อุณหภูมิ = ");
Serial.print(cel);อนุกรม.print(“*C”);
Serial.println();
ถ้า (เซล > 26){
โทนเสียง(ออด, 1,000);
lcd.clear();
lcd.print("อุณหภูมิเหนือเกณฑ์");
lcd.setCursor(0, 1);
lcd.print("ลดอุณหภูมิ");
}
อื่น
{noTone(เสียงกริ่ง);
lcd.clear();
lcd.print("อุณหภูมิภายใต้การควบคุม");
lcd.setCursor(0, 1);
lcd.print ("ชั่วคราว = ");
lcd.print (เซลล์);
lcd.print(“degC”);
}
ล่าช้า (500);
}
//สิ้นสุดโปรแกรมที่นี่
ขั้นตอนที่ 4: ทำความเข้าใจโปรแกรมโดยละเอียด
ฉันจะพยายามอธิบายบางส่วนของรหัส
ฟังก์ชั่นที่เกี่ยวข้องกับคำสั่ง if/else
หากอุณหภูมิมากกว่าค่าเกณฑ์ ฉันกำลังส่งสัญญาณไปที่ออดเพื่อส่งเสียงเตือนและแสดงบน LCD เพื่อลดอุณหภูมิด้วยส่วนด้านล่างของโค้ด
ถ้า (เซล > 26)
{โทน(ออด, 1,000);
lcd.clear();
lcd.print("อุณหภูมิเหนือเกณฑ์");
lcd.setCursor(0, 1);
lcd.print("ลดอุณหภูมิ");
}
ถ้าไม่เช่นนั้นให้ส่งค่าอุณหภูมิปัจจุบันไปที่ LCD และแสดงว่าอุณหภูมินั้นอยู่ในการควบคุม
อื่น
{noTone(เสียงกริ่ง);
lcd.clear();
lcd.print("อุณหภูมิภายใต้การควบคุม");
lcd.setCursor(0, 1);
lcd.print ("ชั่วคราว = ");
lcd.print (เซลล์);
lcd.print(“degC”);
}
ฟังก์ชั่นที่เกี่ยวข้องกับ Buzzer
tone(buzzer, 1000) - ฟังก์ชันนี้จะส่งสัญญาณ 1 khz ไปยัง pin ที่ชื่อ buzzer ซึ่งถูกกำหนดเป็น Pin 6 และ Magnetic buzzer เชื่อมต่อที่ Pin 6.noTone(buzzer) - จะหยุดส่งสัญญาณ 1 khz ดังนั้นเสียงกริ่งจะหยุด
ฟังก์ชันที่เกี่ยวข้องกับเซ็นเซอร์อุณหภูมิ
การแปลงค่าอนาล็อกของการอ่านอุณหภูมิเป็นค่า deg C ทำได้โดยใช้ฟังก์ชันการถ่ายโอนซึ่งสามารถหาได้จากเอกสารข้อมูล AD22100 ตามที่เขียนไว้ด้านล่าง
Vout = (V+/5 V) × (1.375 V + 22.5 mV/°C × TA) และพิมพ์ค่าเดียวกันบนจอ LCD
ขั้นตอนที่ 5: การสาธิตของ Instructables
เมื่อคอมไพล์และอัพโหลดโปรแกรมบนบอร์ด Arduino UNO แล้ว
ให้เราลองเพิ่มอุณหภูมิที่ตรวจจับด้วยเซ็นเซอร์อุณหภูมิ AD22100 และสนุกกับระบบ Home Automation
เพื่อเพิ่มอุณหภูมิของเซ็นเซอร์ ฉันกำลังสัมผัสมันด้วยหัวแร้งที่มีอยู่ในแล็บ
สามารถรับชมการสาธิตได้ที่นี่..
การสาธิตระบบโฮมออโตเมชั่น