โครงงานนี้อธิบายถึงการออกแบบระบบอัตโนมัติในบ้านซึ่งควบคุมโดยคอมพิวเตอร์เพื่อเปิดและปิดอุปกรณ์ไฟฟ้าและอิเล็กทรอนิกส์ต่างๆ สำหรับการสาธิตเราใช้หลอดไฟขนาดศูนย์ 3 วัตต์ซึ่งระบุว่า LIGHT, FAN และ TV ใช้บอร์ด Arduino Uno เป็นตัวควบคุมและรีเลย์ 5V เพื่อเชื่อมต่อหลอดไฟกับวงจร
อาจมีการสื่อสารหลายประเภทเพื่อควบคุมอุปกรณ์เช่นเครื่องใช้ในบ้านเครื่องใช้ในอุตสาหกรรม ฯลฯ โดยทั่วไปเราสามารถจัดประเภทเป็นแบบมีสายและไร้สายได้ ตัวอย่างเช่นในการสื่อสารไร้สายเราส่งสัญญาณโดยใช้คลื่นความถี่วิทยุ (RF) และในการสื่อสารแบบใช้สายเราใช้สายไฟ การสื่อสารแบบใช้สายสามารถแบ่งออกได้เป็น:
การสื่อสารแบบขนาน
การสื่อสารแบบอนุกรม
ในการสื่อสารแบบขนานเราใช้สายไฟจำนวนมากขึ้นอยู่กับขนาดข้อมูลเป็นบิตกล่าวคือถ้าเราต้องการส่ง 8 บิตเราจะต้องใช้สาย 8 บิต แต่ในการสื่อสารแบบอนุกรมเราใช้เพียงสองสายในการส่งข้อมูลและรับข้อมูลเช่นเดียวกับในการสื่อสารข้อมูลแบบอนุกรมจะถูกส่งแบบอนุกรมทีละบิต
ส่วนประกอบที่จำเป็น
Arduino UNO
สายเคเบิลอนุกรม
ULN2003
รีเลย์ 5 โวลต์
หลอดไฟพร้อมที่ยึด
การเชื่อมต่อสายไฟ
กระดานขนมปัง
16x2 LCD
แล็ปท็อป
แหล่งจ่ายไฟ
PVT
รีเลย์
เราต้องการรีเลย์เพื่อเชื่อมต่อวงจรกับเครื่องใช้ไฟฟ้ากระแสสลับที่มีแรงดันไฟฟ้าสูงกว่าเช่นหลอดไฟทีวีพัดลม ฯลฯ รีเลย์เป็นสวิตช์ชนิดหนึ่งที่ใช้สำหรับการเชื่อมต่อแบบอิเล็กทรอนิกส์กับไฟฟ้า รีเลย์ประกอบด้วยขดลวดและแกนหน้าสัมผัสสวิตชิ่งบางส่วน รีเลย์มีหลายประเภทเช่น:
เสาเดี่ยว Single Through (SPST)
เสาเดี่ยวสองทาง (SPDT)
เสาคู่เดียวผ่าน (DPST)
เสาคู่สองทาง (DPDT)
ที่นี่เราได้ใช้รีเลย์แบบ single pole double through (SPDT) รีเลย์ SPDT ประกอบด้วยหมุด 5 ตัวโดยที่ 2 พินสำหรับขดลวดและอีกอันหนึ่งสำหรับเสาและอีกสองตัวคือ "ปกติเชื่อมต่อ" (NC) และ "เปิดตามปกติ" (NO)
แผนภาพวงจรและคำอธิบาย
ดังแสดงในแผนภาพด้านบนโมดูล LCD 16x2 ใช้สำหรับแสดงสถานะของเครื่องใช้ภายในบ้านที่เชื่อมต่อโดยตรงกับ arduino ในโหมด 4 บิต หมุดข้อมูลของ LCD คือ RS, EN, D4, D5, D6, D7 เชื่อมต่อกับขาดิจิตอลของ arduino หมายเลข 7, 6, 5, 4, 3, 2 สำหรับการส่งคำสั่งไปยัง arduino จากแล็ปท็อปหรือพีซีเราใช้สาย USB ที่เรา ใช้สำหรับอัพโหลดโปรแกรมลงใน arduino และรีเลย์ไดรเวอร์IC ULN2003ยังใช้สำหรับรีเลย์ขับ 5 โวลต์ SPDT 3 รีเลย์ใช้สำหรับควบคุม LIGHT, FAN และ TV และรีเลย์เชื่อมต่อกับขา arduino หมายเลข 3, 4 และ 5 ผ่านรีเลย์ไดรเวอร์ IC ULN2003 สำหรับควบคุม LIGHT, FAN และ TV ตามลำดับ
ที่นี่การสื่อสารแบบอนุกรมใช้เพื่อควบคุมเครื่องใช้ภายในบ้าน เราส่งคำสั่งเช่น LIGHT ON, LIGHT OFF, FAN ON, FAN OFF, TV ON และ TV OFF เพื่อควบคุมเครื่องใช้ไฟฟ้าภายในบ้าน หลังจากได้รับคำสั่งที่กำหนดแล้ว arduino จะส่งสัญญาณไปยังรีเลย์ซึ่งมีหน้าที่ในการเปิดหรือปิดเครื่องใช้ไฟฟ้า
เมื่อเรากด ENTER หลังจากพิมพ์คำสั่งใด ๆ บนไฮเปอร์เทอร์มินัลหรือเทอร์มินัลอนุกรม arduino จะทำงานที่สัมพันธ์กันเช่นการเปิด "พัดลม" และงานอื่น ๆ ในทำนองเดียวกัน และข้อความที่เกี่ยวข้องยังแสดงบนจอ LCD 16x2 ซึ่งตั้งโปรแกรมไว้ในรหัส (ดูส่วนรหัสด้านล่าง)
คำอธิบายรหัส
ก่อนอื่นเรารวมไลบรารีสำหรับจอแสดงผลคริสตัลเหลวจากนั้นกำหนดข้อมูลและพินควบคุมสำหรับ LCD และเครื่องใช้ภายในบ้าน
หลังจากเริ่มต้นการสื่อสารแบบอนุกรมที่ 9600 bps และกำหนดทิศทางในการใช้พิน
สำหรับการรับข้อมูลแบบอนุกรมเราใช้สองฟังก์ชั่นหนึ่งคือ Serial.available ซึ่งตรวจสอบข้อมูลอนุกรมว่ามาหรือไม่และอีกอันคือ Serial อ่านซึ่งอ่านข้อมูลที่มาแบบอนุกรม
หลังจากได้รับข้อมูลแบบอนุกรมเราจะจัดเก็บไว้ในสตริงจากนั้นรอให้ Enter
เมื่อกด Enter จะเริ่มโปรแกรมเพื่อเปรียบเทียบสตริงที่ได้รับกับสตริงที่กำหนดไว้แล้วและหากสตริงตรงกันการดำเนินการแบบสัมพัทธ์จะดำเนินการโดยใช้คำสั่งที่เหมาะสมที่กำหนดในโค้ด
สำหรับการใช้สตริงการเปรียบเทียบเราได้ใช้ไลบรารีที่เป็น string.h ซึ่งมีคีย์เวิร์ดบางคำเช่น strcmp, strncmp, strcpy เป็นต้น