วิธีควบคุมเครื่องใช้ในบ้านโดยใช้ MATLAB?
เทคโนโลยีเครือข่ายระบบอัตโนมัติภายในบ้านได้รับการพัฒนาในช่วงทศวรรษที่ 90 และโปรโตคอลการสื่อสารที่ใช้ในเวลานั้นคือ X10. ตั้งแต่นั้นมาแนวคิดของระบบอัตโนมัติได้รับความนิยมและมีการคิดค้นโปรโตคอลล่าสุดที่รับผิดชอบในการสื่อสารระหว่างอุปกรณ์อิเล็กทรอนิกส์ การรักษาแนวคิดของระบบอัตโนมัติในมุมมองฉันคิดว่าทำไมไม่ควบคุมเครื่องใช้ภายในบ้านทั้งหมดโดยใช้ซอฟต์แวร์ที่มีชื่อเสียงที่สุดที่เรียกว่า MATLAB ในโครงการนี้เราจะออกแบบระบบ Automation จากนั้นควบคุมโดยให้คำสั่ง Serial ซอฟต์แวร์ที่จะใช้ในการสั่งงานระบบนี้มีชื่อว่า MATLAB และหลังจากเสร็จสิ้นโครงการนี้เราจะสามารถควบคุมเครื่องใช้ไฟฟ้าของเราได้เพียงแค่นั่งบนโซฟาหรือนอนบนเตียง
วิธีทำให้เครื่องใช้ในบ้านของคุณเป็นอัตโนมัติโดยใช้ MATLAB GUI?
ตอนนี้เรามาดูการรวบรวมส่วนประกอบประกอบเข้าด้วยกันเพื่อสร้างวงจรสร้าง MATLAB Graphical User Interface (GUI) และเขียนโค้ดใน MATLAB เพื่อทำให้เครื่องใช้ในบ้านของคุณเป็นแบบอัตโนมัติ
ขั้นตอนที่ 1: ส่วนประกอบที่ต้องการ (ฮาร์ดแวร์)
จะดีกว่าเสมอที่จะทราบรายละเอียดเกี่ยวกับส่วนประกอบต่างๆ ก่อนเริ่มโครงการ เพื่อหลีกเลี่ยงความไม่สะดวกใดๆ ระหว่างโครงการ ด้านล่างนี้คือรายการส่วนประกอบที่เราจะใช้:
ที่นี่เรากำลังใช้โมดูลรีเลย์ 8 ตัวเพราะเราจะควบคุมเครื่องใช้ไฟฟ้า 8 เครื่องเท่านั้น หากคุณต้องการทำให้เครื่องใช้ไฟฟ้าจำนวนมากทำงานโดยอัตโนมัติคุณสามารถใช้โมดูลรีเลย์อื่นได้ มีโมดูลรีเลย์มากมายในตลาดเช่นเดี่ยว, รีเลย์ 8 ตัว, รีเลย์ 12 ตัวเป็นต้น
ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น (ซอฟต์แวร์)
หลังจากจัดเรียงส่วนประกอบฮาร์ดแวร์แล้วเราจะมองหาซอฟต์แวร์ที่จะใช้ในโครงการ เราจะติดตั้ง MATLAB เวอร์ชันล่าสุดบนแล็ปท็อปหรือพีซีที่เราใช้งานอยู่ MATLAB 2019 เป็นซอฟต์แวร์ล่าสุด ดังนั้นควรดาวน์โหลด MATLAB 2019 ดีกว่า ลิงก์ไปยังเว็บไซต์ทางการของ Mathworks มีให้ดาวน์โหลดซอฟต์แวร์ด้านล่าง แพ็คเกจ Hardware Support มีให้ใน MATLAB 2019 สำหรับ 32 บิต Windows 64 บิตและ Linux 64 บิต
หลังจากดาวน์โหลด Proteus 8 Professional แล้วให้ออกแบบวงจรบนนั้น ฉันได้รวมการจำลองซอฟต์แวร์ไว้ที่นี่เพื่อให้ผู้เริ่มต้นออกแบบวงจรและทำการเชื่อมต่อกับฮาร์ดแวร์ได้อย่างเหมาะสม
ขั้นตอนที่ 3: ศึกษาส่วนประกอบ
ตอนนี้เราได้ทำรายการส่วนประกอบทั้งหมดที่เราจะใช้ในโครงการนี้ ให้เราก้าวไปอีกขั้นและศึกษาคร่าวๆเกี่ยวกับส่วนประกอบฮาร์ดแวร์หลักทั้งหมด
Arduino UNO: Arduino UNO เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ประกอบด้วยไมโครชิป ATMega 328P และพัฒนาโดย Arduino.cc บอร์ดนี้มีชุดพินข้อมูลดิจิทัลและแอนะล็อกที่สามารถเชื่อมต่อกับบอร์ดขยายหรือวงจรอื่นๆ ได้ บอร์ดนี้มีพินดิจิตอล 14 พินอนาล็อก 6 พินและตั้งโปรแกรมได้ด้วย Arduino IDE (Integrated Development Environment) ผ่านสาย USB ประเภท B ต้องใช้พลังงาน 5V บน และก รหัส Cในการดำเนินการ
โมดูลรีเลย์ 12V:โมดูลรีเลย์เป็นอุปกรณ์สวิตชิ่ง รับสัญญาณและเปลี่ยนอุปกรณ์อิเล็กทรอนิกส์หรือเครื่องใช้ไฟฟ้าตามสัญญาณอินพุต ทำงานในสองโหมด ปกติเปิด (NO) และ ปกติปิด (NC)ในโหมดปกติเปิด วงจรจะขาดในตอนแรกเมื่อสัญญาณอินพุตไปยังรีเลย์ต่ำ ในโหมดปิดปกติวงจรจะสมบูรณ์ในตอนแรกเมื่อสัญญาณอินพุตอยู่ในระดับต่ำ
RS232 เป็น TTL Serial Port Converter Module: โมดูลนี้ใช้สำหรับการสื่อสารแบบอนุกรม บอร์ด Arduino UNO ของเรามีพอร์ตสื่อสารแบบอนุกรมหนึ่งพอร์ตชื่อ UART หรือ USART บอร์ด Arduino มีสองพินที่รับผิดชอบการสื่อสารแบบอนุกรม TX และ RX (พิน 0 และพิน 1) หมุดทั้งสองนี้มีอยู่ในโมดูล RS232 ด้วย โมดูลนี้ใช้พลังงานจาก Arduino 5V และแปลง 5V เป็น 12V สำหรับการใช้งานอุปกรณ์ต่าง ๆ ที่ทำงานบน 12V เราใช้โมดูลนี้เนื่องจากเครื่องใช้ไฟฟ้าไม่ทำงานด้วย 5V
ขั้นตอนที่ 4: ทำความเข้าใจหลักการทำงาน
หลังจากเสร็จสิ้นโครงการนี้เราจะสามารถควบคุมอุปกรณ์จากระยะไกลได้โดยให้คำสั่งเป็นลำดับ บอร์ด Arduino ใช้สำหรับการสื่อสารแบบอนุกรมกับ RS232 อุปกรณ์เชื่อมต่อกับโมดูลรีเลย์และ RS232 เชื่อมต่อกับพิน TX และ RX ของ Arduino และเมื่อกดปุ่มบน MATLAB คำสั่งอนุกรมจะถูกสร้างขึ้นและส่งไปยังพอร์ตอนุกรมของ RS232 ซึ่งจะเปลี่ยนกลับ เปิดหรือปิดเครื่อง ประการแรก MATLAB เชื่อมต่อกับบอร์ด Arduino จากนั้นวงจรจะถูกนำไปใช้กับฮาร์ดแวร์ หากใครมีปัญหาเกี่ยวกับการเชื่อมต่อ MATLAB กับ Arduino สามารถอ้างถึงบทความของฉันที่ชื่อ จะเชื่อมต่อ ARDUINO กับ MATLAB ได้อย่างไร? จากนั้นเขา / เธอจะสามารถนำโปรเจ็กต์นี้ไปใช้กับฮาร์ดแวร์ได้ หลังจากเสร็จสิ้นโครงการนี้แล้วให้ติดตั้งในสถานที่ที่เหมาะสมตำแหน่งที่ต้องการจะอยู่ใกล้กับซ็อกเก็ตที่วางสายไฟของเครื่องใช้ไฟฟ้าเพื่อให้สามารถติดตั้งโมดูลรีเลย์ได้อย่างง่ายดายที่นั่น
ขั้นตอนที่ 5: แผนภาพวงจร
แผนผังวงจรโปรตีอุสจะมีลักษณะดังนี้ เชื่อมต่อส่วนประกอบฮาร์ดแวร์ตามวงจรนี้ในภายหลัง
ขั้นตอนที่ 6: เริ่มต้นใช้งาน MATLAB
หลังจากออกแบบวงจรบน Proteus Open MATLAB แล้วพิมพ์“คู่มือ” บนหน้าต่างคำสั่ง กล่องโต้ตอบจะเปิดขึ้นและจากกล่องนั้นให้เลือก Blank GUI จานสีส่วนประกอบจะปรากฏทางด้านซ้ายและจะแสดงรายการส่วนประกอบที่คุณต้องการวางใน GUI ของคุณ
เลือกปุ่มกดและวาง 16 ปุ่มบนแผงควบคุม ขั้นแรกให้วางปุ่ม ON จากนั้นวางปุ่มปิดขนานกัน คุณสามารถแก้ไขสีและชื่อของปุ่มได้โดยดับเบิลคลิกที่ปุ่มกด หลังจากคลิกปุ่มกดแล้วหน้าต่างตัวตรวจสอบจะเปิดขึ้นและสามารถแก้ไขคุณสมบัติบางอย่างของปุ่มได้ที่นั่น สำหรับการเปลี่ยนชื่อปุ่มให้มองหา สตริง ตัวเลือกเขียนในนั้น
หลังจากเปลี่ยนชื่อปุ่มเปลี่ยนสีพื้นหลัง (บันทึก: ขั้นตอนนี้เป็นทางเลือกและคุณสามารถข้ามไปได้หากไม่ต้องการเปลี่ยนสีพื้นหลัง)
วางปุ่มกด 16 ปุ่มและทำการเปลี่ยนแปลงด้านบนในหน้าต่างตัวตรวจสอบ สำหรับการตั้งชื่อรีเลย์ ข้อความคงที่ ใช้ตัวเลือกที่อยู่ในแถบด้านซ้าย รูปลักษณ์สุดท้ายของ GUI ของฉันแสดงอยู่ด้านล่าง:
หลังจากสร้าง GUI เปิดรหัส GUI ที่สร้างขึ้นที่แบ็กเอนด์และทำการเปลี่ยนแปลงบางอย่างในโค้ดที่ระบุไว้ภายใต้
ขั้นตอนที่ 7: MATLAB Code of GUI:
ฟังก์ชัน varargout = รหัสสุดท้าย (varargin)% FINAL MATLAB สำหรับ final.fig% FINAL สร้าง FINAL ใหม่หรือเพิ่ม% singleton * ที่มีอยู่ %% H = FINAL ส่งคืนหมายเลขอ้างอิงไปยัง FINAL ใหม่หรือหมายเลขอ้างอิงเป็น% ของ singleton ที่มีอยู่ * %% FINAL ('CALLBACK', hObject, eventData, handles, ... ) เรียกใช้ฟังก์ชัน% โลคัลชื่อ CALLBACK ใน FINAL.M ด้วยอาร์กิวเมนต์อินพุตที่กำหนด %% FINAL ('Property', 'Value', ... ) สร้าง FINAL ใหม่หรือเพิ่ม% Singleton ที่มีอยู่ * เริ่มจากทางซ้ายคู่ค่าคุณสมบัติจะถูกนำไปใช้กับ GUI ก่อนที่จะเรียก final_OpeningFcn ชื่อคุณสมบัติที่ไม่รู้จัก% หรือค่าที่ไม่ถูกต้องทำให้แอ็พพลิเคชันคุณสมบัติ% หยุด อินพุตทั้งหมดจะถูกส่งไปยัง final_OpeningFcn ผ่าน varargin %% * ดูตัวเลือก GUI ในเมนูเครื่องมือของ GUIDE เลือก "GUI อนุญาตให้เรียกใช้อินสแตนซ์เพียง% เดียว (เดี่ยว)" % ดูเพิ่มเติม: GUIDE, GUIDATA, GUIHANDLES% แก้ไขข้อความด้านบนเพื่อแก้ไขคำตอบเพื่อช่วยสุดท้าย% Last Modified by GUIDE v2.5 25 ส.ค. 2019 13:10:11% เริ่มต้นรหัสเริ่มต้น - อย่าแก้ไข gui_Singleton = 1; gui_State = struct ('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @final_OpeningFcn, ... 'gui_OutputFcn', @final_OutputFcn, ... 'gui_LayoutFc. .. 'gui_Callback', []); ถ้า nargin && ischar (varargin {1}) gui_State.gui_Callback = str2func (varargin {1}); สิ้นสุดถ้า nargout [varargout {1: nargout}] = gui_mainfcn (gui_State, varargin {:}); อื่น gui_mainfcn (gui_State, varargin {:}); end% สิ้นสุดรหัสเริ่มต้น - ห้ามแก้ไข% --- ดำเนินการก่อนที่ขั้นสุดท้ายจะปรากฏขึ้น function final_OpeningFcn (hObject, eventdata, handles, varargin)% ฟังก์ชั่นนี้ไม่มี args เอาต์พุตโปรดดูที่ OutputFcn % hObject ที่จับเพื่อหารูป% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ในเวอร์ชันอนาคตของ MATLAB% จะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) อาร์กิวเมนต์บรรทัดคำสั่ง% varargin ถึงขั้นสุดท้าย (ดู VARARGIN)% เลือกเอาต์พุตบรรทัดคำสั่งเริ่มต้นสำหรับแฮนเดิลสุดท้าย .output = hObject; % อัปเดตจัดการ guidata โครงสร้าง (hObject, handles); % UIWAIT รอขั้นสุดท้ายสำหรับการตอบกลับของผู้ใช้ (ดู UIRESUME)% uiwait (handles.figure1); % --- เอาต์พุตจากฟังก์ชันนี้จะถูกส่งกลับไปยังบรรทัดคำสั่ง ฟังก์ชัน varargout = final_OutputFcn (hObject, eventdata, handles) อาร์เรย์เซลล์% varargout สำหรับการส่งคืนอาร์เรย์เอาต์พุต (ดู VARARGOUT); % hObject handle เพื่อหารูป% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ในเวอร์ชันอนาคตของโครงสร้างจัดการ MATLAB% พร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA)% รับเอาต์พุตบรรทัดคำสั่งเริ่มต้นจาก handles structure varargout {1} = handles.output; ลบทั้งหมด; ทั่วโลกก; a = อาร์ดิโน; % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 1 function pushbutton1_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton1 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D6', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 2. function pushbutton2_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton2 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D6', 1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 3. function pushbutton3_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton3 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D7', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 4. ฟังก์ชัน pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (ดู GCBO) % eventdata ที่สงวนไว้ - เพื่อกำหนดใน MATLAB % จัดการโครงสร้างที่มีการจัดการและข้อมูลผู้ใช้ในอนาคต (ดู GUIDATA) global a; writeDigitalPin(a,'D7',1);\ % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 5. function pushbutton5_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton5 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D8', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 6. function pushbutton6_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton6 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D8', 1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 7. function pushbutton7_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton7 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D9', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 8. ฟังก์ชัน pushbutton8_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (ดู GCBO) % eventdata ที่สงวนไว้ - เพื่อกำหนดใน MATLAB % เวอร์ชันอนาคตที่จัดการโครงสร้างที่มีการจัดการและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D9', 1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 9. function pushbutton9_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton9 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D10', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 10. ฟังก์ชัน pushbutton10_Callback(hObject, eventdata, handles) % hObject handle to pushbutton10 (ดู GCBO) % eventdata ที่สงวนไว้ - กำหนดใน MATLAB % เวอร์ชันอนาคตที่จัดการโครงสร้างที่มีการจัดการและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin(a,'D10',1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 11. function pushbutton11_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton11 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin(a,'D11',0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 12. function pushbutton12_Callback (hObject, eventdata, handles)% hObject handle ไปยัง pushbutton12 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin(a,'D11',1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 13. function pushbutton13_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton13 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D12', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 14. function pushbutton14_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton14 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin(a,'D12',1); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 15. ฟังก์ชัน pushbutton15_Callback(hObject, eventdata, handles) % hObject handle to pushbutton15 (ดู GCBO) % eventdata ที่สงวนไว้ - กำหนดใน MATLAB % handles โครงสร้างที่มีการจัดการและข้อมูลผู้ใช้ในอนาคต (ดู GUIDATA) global a; writeDigitalPin (a, 'D13', 0); % --- ดำเนินการเมื่อกดปุ่มในปุ่มกด 16. function pushbutton16_Callback (hObject, eventdata, handles)% hObject handle ถึง pushbutton16 (ดู GCBO)% eventdata ที่สงวนไว้ - ที่จะกำหนดไว้ใน MATLAB% เวอร์ชันในอนาคตจะจัดการโครงสร้างพร้อมแฮนเดิลและข้อมูลผู้ใช้ (ดู GUIDATA) global a; writeDigitalPin (a, 'D13', 1);
ไฟล์ m พร้อมกับรหัส GUI สามารถดาวน์โหลดได้จากที่นี่
ขั้นตอนที่ 8: คำอธิบายรหัส
เมื่อเราสร้างโค้ด MATLAB GUI จะถูกสร้างขึ้นโดยอัตโนมัติที่แบ็กเอนด์และเราต้องทำการเปลี่ยนแปลงบางอย่างในโค้ด มีทั้งหมด 16 ฟังก์ชันในโค้ด แปดสำหรับการหมุน บน รีเลย์และแปดสำหรับการหมุน ปิด รีเลย์ ประการแรกเราสร้างตัวแปรส่วนกลางชื่อ ‘a’ถูกประกาศไว้นอกฟังก์ชันแล้วใช้ในทุกเงื่อนไขเพราะมีประโยชน์เมื่อหลายฟังก์ชันเข้าถึงข้อมูลเดียวกัน จากนั้นเราก็เขียน a = arduinoใน Code เนื่องจากเรากำลังเชื่อมต่อ Arduino กับ MATLAB ฟังก์ชันทั้งหมด 16 รายการที่ออกแบบมาสำหรับปุ่มกดในรหัสได้รับการแก้ไขและเราเขียนว่า "0" สำหรับปิดรีเลย์และ "1" สำหรับเปิดรีเลย์ในฟังก์ชันเหล่านั้น คุณจะต้องเพิ่มสองบรรทัดนี้ในตอนท้ายของทุกฟังก์ชั่นและแก้ไขตามนั้น:
โกลบอลเอ; writeDigitalPin (a, 'D13', 1);
ขั้นตอนที่ 9: การประกอบฮาร์ดแวร์
หลังจากเขียนโค้ดแล้วเราจะเริ่มประกอบส่วนประกอบฮาร์ดแวร์ ประการแรกเราต้องทราบการเชื่อมต่อโมดูลรีเลย์ ใช้ลวดบวกของเครื่องแล้วตัด เชื่อมต่อปลายด้านหนึ่งเข้ากับไฟล์ ไม่ พอร์ตและปลายอีกด้านหนึ่งของ COM พอร์ตของโมดูลรีเลย์ ดูภาพด้านล่างและเชื่อมต่ออุปกรณ์ทั้งสี่เข้ากับโมดูลรีเลย์ตามที่แสดง ตรวจสอบให้แน่ใจว่าคุณได้ขันสกรูของโมดูลรีเลย์เพื่อไม่ให้การเชื่อมต่อขาดในภายหลัง
หลังจากเชื่อมต่อพิน NO และ COM ของโมดูลรีเลย์แปดตัวกับอุปกรณ์แปดตัวแล้วเราจะเชื่อมต่อพิน OUT ของโมดูล Pin no 6-13 ของ Arduino ใช้สำหรับเชื่อมต่อขา OUT ของโมดูลรีเลย์ เสียบขา OUT ของรีเลย์ 1 เข้ากับขา 6 ของ Arduino จากนั้นทำการเชื่อมต่อทั้งหมดตามรหัส ใช้เขียงหั่นขนมเพื่อทำการเชื่อมต่อทั่วไปของ Vcc และกราวด์จากนั้นวางสายของพินทั้งสองนี้ของโมดูลรีเลย์ในการเชื่อมต่อเหล่านั้น หลังจากทำการเชื่อมต่อ Relay แล้วให้เชื่อมต่อ Vcc และ Ground ของ RS232 เข้ากับ 5V และ Ground ของ Arduino ตามลำดับ เชื่อมต่อ Tx pin ของ RS232 กับ RX pin ของ Arduino และเชื่อมต่อ Rx pin ของ RS232 กับ Tx pin ของ Arduino ใช้อะแดปเตอร์ Serial DB9 ตัวผู้และเชื่อมต่อด้านหนึ่งกับโมดูลตัวแปลง Serial Port และอีกด้านหนึ่งเข้ากับแล็ปท็อปหรือพีซีที่คุณใช้
แค่นั้นแหละ! เราได้เสร็จสิ้นโครงการอัตโนมัติของเราแล้วและตอนนี้เราสามารถควบคุมเครื่องใช้ไฟฟ้าของเราได้โดยใช้ MATLAB ไม่จำเป็นต้องลุกขึ้นและเปิดเครื่องใช้ไฟฟ้าเราสามารถเปิดและปิดได้จากระยะไกล สามารถนำไปใช้ในบ้านและสำนักงาน ฯลฯ