- วัสดุที่จำเป็น
- แผนภูมิวงจรรวม
- รีเลย์:
- การคำนวณอุณหภูมิโดยใช้เทอร์มิสเตอร์:
- รหัส Arduino
- การทำงานของระบบควบคุมอุณหภูมิภายในบ้านอัตโนมัติ:
สมมติว่าคุณกำลังนั่งอยู่ในห้องและรู้สึกหนาวและคุณต้องการให้เครื่องทำความร้อนของคุณเปิดโดยอัตโนมัติและหลังจากนั้นสักครู่เมื่ออุณหภูมิห้องเพิ่มขึ้นโครงการนี้จะช่วยให้คุณควบคุมเครื่องใช้ในบ้านของคุณโดยอัตโนมัติตามอุณหภูมิ ที่นี่เราจะควบคุมเครื่องใช้ในบ้าน AC กับ Arduino ขึ้นอยู่กับอุณหภูมิ ที่นี่เราได้ใช้ Thermistor เพื่ออ่านอุณหภูมิ เราได้เชื่อมต่อ Thermistor กับ Arduino แล้วและแสดงอุณหภูมิบน LCD
ในการกวดวิชานี้เราจะแนบเครื่องใช้ไฟฟ้า AC พร้อมรีเลย์และทำให้การควบคุมอุณหภูมิของระบบอัตโนมัติที่บ้านโดยใช้ Arduino นอกจากนี้ยังแสดงอุณหภูมิและสถานะของเครื่องใช้บนจอ LCD 16 * 2 ที่เชื่อมต่อกับวงจร
วัสดุที่จำเป็น
- Arduino UNO
- รีเลย์ (5v)
- จอ LCD 16 * 2
- หลอดไฟ (CFL)
- NTC เทอร์มิสเตอร์ 10k
- การเชื่อมต่อสายไฟ
- ตัวต้านทาน (1k และ 10k โอห์ม)
- โพเทนชิออมิเตอร์ (10k)
แผนภูมิวงจรรวม
ระบบอัตโนมัติภายในบ้านที่ใช้อุณหภูมินี้ ประกอบด้วยส่วนประกอบต่างๆเช่นบอร์ด Arduino, จอ LCD, รีเลย์และเทอร์มิสเตอร์ การทำงานส่วนใหญ่ขึ้นอยู่กับรีเลย์และเทอร์มิสเตอร์เนื่องจากอุณหภูมิที่เพิ่มขึ้นรีเลย์จะเปิดขึ้นและหากอุณหภูมิลดลงต่ำกว่าค่าที่ตั้งไว้รีเลย์จะถูกปิด เครื่องใช้ในบ้านที่เชื่อมต่อกับรีเลย์จะเปิดและปิดตามนั้นด้วย ที่นี่เรามีการใช้หลอดไฟ CFL เป็นเครื่องใช้ไฟฟ้า กระบวนการทริกเกอร์ทั้งหมดและการตั้งค่าอุณหภูมิดำเนินการโดยบอร์ด Arduino ที่ตั้งโปรแกรมไว้ นอกจากนี้ยังให้รายละเอียดเกี่ยวกับการเปลี่ยนแปลงของอุณหภูมิในทุกๆครึ่งวินาทีและสถานะของเครื่องใช้ไฟฟ้าบนหน้าจอ LCD
รีเลย์:
รีเลย์เป็นสวิตช์แม่เหล็กไฟฟ้าซึ่งควบคุมโดยกระแสไฟฟ้าขนาดเล็กและใช้เพื่อเปิดและปิดกระแสไฟฟ้าที่ค่อนข้างใหญ่กว่า หมายถึงการใช้กระแสไฟฟ้าขนาดเล็กเราสามารถเปิดรีเลย์ซึ่งช่วยให้กระแสไหลได้มากขึ้น รีเลย์เป็นตัวอย่างที่ดีในการควบคุมอุปกรณ์ AC (กระแสสลับ) โดยใช้กระแสไฟฟ้ากระแสตรงที่น้อยกว่ามาก รีเลย์ที่ใช้กันทั่วไปคือ Single Pole Double Throw (SPDT) Relay มีห้าขั้วดังนี้
เมื่อไม่มีแรงดันไฟฟ้าที่ใช้กับขดลวด COM (ทั่วไป) จะเชื่อมต่อกับ NC (หน้าสัมผัสปิดตามปกติ) เมื่อมีแรงดันไฟฟ้าบางส่วนที่ใช้กับขดลวดสนามแม่เหล็กไฟฟ้าจะถูกสร้างขึ้นซึ่งดึงดูด Armature (คันโยกที่เชื่อมต่อกับสปริง) และ COM และ NO (หน้าสัมผัสที่เปิดตามปกติ) จะเชื่อมต่อซึ่งทำให้กระแสไฟฟ้าไหลได้มากขึ้น รีเลย์มีให้เลือกมากมายที่นี่เราใช้รีเลย์แรงดันไฟฟ้าที่ใช้งาน 5V ซึ่งช่วยให้กระแส 7A-250VAC ไหล
รีเลย์ถูกกำหนดค่าโดยใช้วงจรไดรเวอร์ขนาดเล็ก ซึ่งประกอบด้วยทรานซิสเตอร์ไดโอดและตัวต้านทาน ทรานซิสเตอร์ใช้เพื่อขยายกระแสเพื่อให้กระแสไฟฟ้าเต็ม (จากแหล่ง DC - แบตเตอรี่ 9v) สามารถไหลผ่านขดลวดเพื่อให้พลังงานได้เต็มที่ ตัวต้านทานใช้เพื่อให้ไบซิงกับทรานซิสเตอร์ และ Diode ใช้เพื่อป้องกันการไหลย้อนกลับเมื่อทรานซิสเตอร์ปิดอยู่ ขดลวดตัวเหนี่ยวนำทุกตัวจะสร้าง EMF ที่เท่ากันและตรงข้ามกันเมื่อปิดเครื่องกะทันหันซึ่งอาจทำให้ส่วนประกอบเสียหายถาวรดังนั้นจึงต้องใช้ไดโอดเพื่อป้องกันกระแสไฟฟ้าย้อน โมดูล Relay สามารถใช้ได้ง่ายในตลาดที่มีทั้งหมดวงจรขับรถบนกระดานหรือคุณสามารถสร้างได้โดยใช้ส่วนประกอบดังกล่าวข้างต้น ที่นี่เราใช้โมดูลรีเลย์ 5V
การคำนวณอุณหภูมิโดยใช้เทอร์มิสเตอร์:
เรารู้จากวงจรแบ่งแรงดันไฟฟ้าว่า:
V ออก = (V ใน * Rt) / (R + Rt)
ดังนั้นค่าของ Rt จะเป็น:
Rt = R (Vin / Vout) - 1
ที่นี่ Rt จะเป็นความต้านทานของเทอร์มิสเตอร์ (Rt) และ R จะเป็นตัวต้านทาน 10k โอห์ม
สมการนี้ใช้สำหรับการคำนวณความต้านทานเทอร์มิสเตอร์จากค่าที่วัดได้ของแรงดันเอาต์พุต Vo เราสามารถรับค่าของ Voltage Vout จากค่า ADC ที่ขา A0 ของ Arduino ดังแสดงในรหัส Arduino ที่ระบุด้านล่าง
การคำนวณอุณหภูมิจากความต้านทานเทอร์มิสเตอร์
ในทางคณิตศาสตร์ความต้านทานเทอร์มิสเตอร์สามารถคำนวณได้ด้วยความช่วยเหลือของสมการ Stein-Hart เท่านั้น
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
โดยที่ A, B และ C เป็นค่าคงที่ Rt คือความต้านทานของเทอร์มิสเตอร์และ ln แสดงถึงบันทึก
ค่าคงที่สำหรับเทอร์มิสเตอร์ที่ใช้ในโครงการนี้คือA = 1.009249522 × 10 -3, B = 2.378405444 × 10 -4, C = 2.019202697 × 10 -7ค่าคงที่เหล่านี้สามารถหาได้จากเครื่องคิดเลขที่นี่โดยป้อนค่าความต้านทานสามค่าของเทอร์มิสเตอร์ที่อุณหภูมิต่างกันสามค่า คุณสามารถรับค่าคงที่เหล่านี้ได้โดยตรงจากแผ่นข้อมูลของเทอร์มิสเตอร์หรือคุณสามารถรับค่าความต้านทานสามค่าที่อุณหภูมิต่างกันและรับค่าคงที่โดยใช้เครื่องคิดเลขที่กำหนด
ดังนั้นในการคำนวณอุณหภูมิเราต้องการค่าความต้านทานเทอร์มิสเตอร์เท่านั้น หลังจากได้ค่า Rt จากการคำนวณที่ให้ไว้ด้านบนให้ใส่ค่าในสมการ Stein-hart และเราจะได้ค่าของอุณหภูมิในหน่วยเคลวิน เนื่องจากมีการเปลี่ยนแปลงเล็กน้อยในแรงดันไฟฟ้าขาออกทำให้อุณหภูมิเปลี่ยนแปลง
รหัส Arduino
รหัส Arduino ที่สมบูรณ์สำหรับเครื่องใช้ในบ้านที่ควบคุมอุณหภูมินี้ มีให้ในตอนท้ายของบทความนี้ ที่นี่เราได้อธิบายบางส่วนของมัน
สำหรับการดำเนินการทางคณิตศาสตร์เราใช้ไฟล์ Header “ #include
# รวม
สำหรับการตั้งค่ารีเลย์ (เป็นเอาต์พุต) และ LCD ในตอนเริ่มต้นเราต้องเขียนโค้ดในส่วน การตั้งค่าโมฆะ
การตั้งค่าเป็นโมฆะ () {lcd.begin (16,2); lcd.clear (); pinMode (รีเลย์, เอาท์พุท); }
สำหรับการคำนวณอุณหภูมิโดยสมการ Stein-Hart โดยใช้ความต้านทานไฟฟ้าของเทอร์มิสเตอร์เราจะทำการคำนวณสมการทางคณิตศาสตร์อย่างง่ายในรหัสตามที่อธิบายไว้ในการคำนวณด้านบน:
ลอย a = 1.009249522e-03, b = 2.378405444e-04, c = 2.019202697e-07; ลอย T, logRt, Tf, Tc; เทอร์มิสเตอร์ลอย (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1.0 / (a + b * logRt + c * logRt * logRt * logRt)); // เราได้ค่าอุณหภูมิเป็นเคลวินจากสมการ Stein-Hart Tc = T - 273.15; // แปลงเคลวินเป็นเซลเซียส Tf = (Tc * 1.8) + 32.0; // แปลงเคลวินเป็นฟาเรนไฮต์ส่งคืน T; }
ในรหัสด้านล่างเทอร์มิสเตอร์ฟังก์ชันกำลังอ่านค่าจากพินอะนาล็อกของ Arduino และพิมพ์ค่าอุณหภูมิโดยดำเนินการทางคณิตศาสตร์
lcd.print ((เทอร์มิสเตอร์ (analogRead (0))));
และค่านั้นจะถูกนำมาใช้โดยฟังก์ชัน Thermistor จากนั้นการคำนวณจะเริ่มพิมพ์
เทอร์มิสเตอร์ลอย (int Vo)
เราต้องเขียนรหัสสำหรับเงื่อนไขการเปิดและปิดไฟตามอุณหภูมิที่เราตั้งค่าอุณหภูมิเช่นถ้าอุณหภูมิเพิ่มขึ้นมากกว่า 28 องศาเซลเซียสไฟจะเปิดขึ้นถ้าไฟยังคงดับน้อยกว่า ดังนั้นเมื่อใดก็ตามที่อุณหภูมิทะลุกว่า 28 องศาเราต้องทำให้ RELAY พิน (PIN 8) สูงที่จะทำให้รีเลย์โมดูล และเมื่ออุณหภูมิต่ำกว่า 28 องศาเราต้องทำให้ RELAY ขาต่ำเพื่อปิดโมดูล
ถ้า (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Light status: ON"), delay (500); อื่นถ้า (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Light status: OFF"), delay (500);
การทำงานของระบบควบคุมอุณหภูมิภายในบ้านอัตโนมัติ:
ในการจัดหาแหล่งจ่ายให้ Arduino คุณสามารถจ่ายไฟผ่าน USB ไปยังแล็ปท็อปของคุณหรือเชื่อมต่ออะแดปเตอร์ 12v LCD เชื่อมต่อกับ Arduino เพื่อแสดงค่าอุณหภูมิเทอร์มิสเตอร์และรีเลย์เชื่อมต่อตามแผนภาพวงจร ขาอะนาล็อก (A0) ใช้เพื่อตรวจสอบแรงดันไฟฟ้าของพินเทอร์มิสเตอร์ทุกช่วงเวลาและหลังจากการคำนวณโดยใช้สมการ Stein-Hart ผ่านรหัส Arduino เราสามารถรับอุณหภูมิและแสดงบน LCD ในเซลเซียสและฟาเรนไฮต์
เมื่ออุณหภูมิเพิ่มขึ้นมากกว่า 28 องศาเซลเซียส Arduino ทำให้โมดูลรีเลย์เปิดโดยการทำให้ Pin 8 HIGH (ที่เชื่อมต่อโมดูลรีเลย์) เมื่ออุณหภูมิต่ำกว่า 28 องศา Arduino จะปิดโมดูลรีเลย์โดยทำให้ Pin LOW หลอดไฟ CFL จะเปิดและปิดตามโมดูลรีเลย์
ระบบนี้มีประโยชน์มากในโครงการพัดลมควบคุมอุณหภูมิและเครื่องควบคุมอุณหภูมิ AC อัตโนมัติ
ตรวจสอบโครงการ Home Automationsหลายประเภทของเรา โดยใช้เทคโนโลยีและไมโครคอนโทรลเลอร์ที่แตกต่างกัน เช่น: