Tất cả chúng ta đều quen thuộc với từ 'Tự động hóa', nơi mà sự tương tác của con người là tối thiểu và mọi thứ có thể được điều khiển tự động hoặc từ xa. Tự động hóa gia đình là khái niệm rất phổ biến và khắt khe trong lĩnh vực Điện tử, và chúng tôi cũng đang nỗ lực hết sức để làm cho khái niệm này trở nên dễ hiểu và dễ quản lý dưới dạng Dự án Điện tử. Trước đây chúng tôi đã phát triển một số loại Dự án Tự động hóa Gia đình với Video và Mã đang hoạt động, vui lòng kiểm tra:
- Tự động hóa tại nhà dựa trên DTMF
- Tự động hóa gia đình dựa trên GSM sử dụng Arduino
- Tự động hóa nhà điều khiển bằng PC sử dụng Arduino
- Tự động hóa nhà điều khiển bằng Bluetooth sử dụng 8051
- Tự động hóa nhà điều khiển từ xa bằng IR sử dụng Arduino
Và trong dự án này, chúng tôi sẽ xây dựng dự án tự động hóa ngôi nhà tiếp theo của mình bằng cách sử dụng MATLAB và Arduino, đó là Hệ thống tự động hóa ngôi nhà dựa trên GUI sử dụng Arduino và MATLAB
Các thành phần:
- Arduino UNO
- Cáp USB
- ULN2003
- Rơ le 5 volt
- Bóng đèn có giá đỡ
- Kết nối dây
- Máy tính xách tay
- Nguồn cấp
- PVT
Giải thích làm việc:
Trong dự án này, chúng tôi đang sử dụng MATLAB với Arduino để điều khiển Thiết bị gia dụng thông qua Giao diện Người dùng Đồ họa trong Máy tính. Ở đây chúng tôi đã sử dụng giao tiếp có dây để gửi dữ liệu từ máy tính (MATLAB) tới Arduino. Về mặt máy tính, chúng tôi đã sử dụng GUI trong MATLAB để tạo một số nút để điều khiển các thiết bị gia dụng. Để giao tiếp giữa Arduino và MATLAB, trước tiên chúng ta cần cài đặt “ Hỗ trợ MATLAB và Simulink cho Arduino ” hoặc “ Gói IO Arduino ”. Để làm như vậy, hãy làm theo các bước dưới đây hoặc xem video bên dưới:
- Tải xuống Gói IO Arduino từ đây. Bạn cần đăng ký trước khi tải xuống.
- Sau đó, ghi / tải tệp adioe.pde lên Arduino bằng Arduino IDE. Tệp adioe.pde này có thể được tìm thấy trong Gói IO Arduino - ArduinoIO \ pde \ adioe \ adioe.pde
- Sau đó, mở phần mềm MATLAB, đi qua thư mục Arduino IO, mở tệp install_arduino.m và Chạy nó trong Matlab. Bạn sẽ thấy thông báo “Thư mục Arduino được thêm vào đường dẫn” trong cửa sổ lệnh của MATLAB, có nghĩa là đường dẫn MATLAB được cập nhật vào các thư mục Arduino.
Đó là cách chúng tôi tạo ra Arduino, giao tiếp với MATLAB. Phương pháp trên phù hợp với “MATLAB R2013b hoặc các phiên bản cũ hơn”, nếu bạn đang sử dụng phiên bản MATLAB cao hơn (như R2015b hoặc R2016a), bạn có thể nhấp trực tiếp vào Tab Tiện ích bổ sung trong MATLAB, sau đó nhấp vào “Nhận gói hỗ trợ phần cứng”, từ đó bạn có thể cài đặt các gói Arduino cho MATLAB.
Sau khi cài đặt tệp, bây giờ bạn có thể tạo GUI cho Dự án tự động hóa gia đình. Về cơ bản trong GUI, chúng tôi đang tạo các Nút đẩy để điều khiển các thiết bị gia dụng từ máy tính. Các nút có thể được tạo bằng cách vào “Giao diện người dùng đồ họa” trong menu “Mới” trong MATLAB. Hơn nữa, chúng tôi có thể đặt tên và màu sắc của các nút này, chúng tôi đã tạo 8 nút, trong đó sáu nút để BẬT và TẮT ba thiết bị gia dụng và hai nút để BẬT và TẮT tất cả các thiết bị đồng thời.
Bây giờ sau khi tạo các nút, khi bạn nhấp vào nút Chạy trong cửa sổ GUI đó, nó sẽ yêu cầu bạn lưu tệp GUI này (với phần mở rộng là.fig), còn được gọi là ' tệp vả'. Ngay sau khi bạn lưu tệp, nó sẽ tự động tạo tệp mã (có phần mở rộng là.m), còn được gọi là ' tệp M' (xem ảnh chụp màn hình bên dưới), nơi bạn có thể đặt Mã (được cung cấp trong phần Mã bên dưới). Bạn có thể tải xuống tệp GUI và tệp Mã cho dự án này từ đây: Home_Automation_system.fig và Home_Automation_system.m (nhấp chuột phải và chọn Lưu liên kết thành…), hoặc bạn có thể tự tạo chúng như chúng tôi đã giải thích.
Sau khi mã hóa, cuối cùng bạn có thể Chạy tệp.m từ cửa sổ mã, bạn sẽ thấy “Đang cố gắng kết nối..” trong cửa sổ lệnh. Sau đó, thông báo “Arduino đã kết nối thành công” xuất hiện, nếu mọi thứ diễn ra tốt đẹp. Và cuối cùng bạn sẽ thấy GUI (các nút) đã tạo trước đó trong cửa sổ GUI, từ đó bạn có thể điều khiển các thiết bị gia dụng bằng cách chỉ cần nhấp vào các nút trong Máy tính của mình. Đảm bảo rằng Arduino được kết nối với Arduino qua cáp USB. Ở đây trong dự án này, chúng tôi đã sử dụng 3 bóng đèn để trình diễn, cho biết Quạt, Đèn và TV.
Hoạt động của toàn bộ dự án, từ cài đặt gói hỗ trợ Arduino MATLAB đến Bật hoặc TẮT thiết bị, có thể hiểu ở Video ở cuối.
Giải thích mạch:
Mạch của dự án này là rất dễ dàng. Ở đây chúng tôi đã sử dụng một bo mạch Arduino UNO và Trình điều khiển Rơ le ULN2003 để điều khiển rơ le. Ba Rơle SPDT 5 volt được kết nối với chân Arduino số 3, 4 và 5, thông qua trình điều khiển rơle ULN2003, để điều khiển LIGHT, FAN và TV tương ứng.
Giải thích lập trình:
Khi chúng ta nhấn bất kỳ nút nào từ cửa sổ GUI thì nó sẽ gửi một số lệnh đến Arduino và sau đó Arduino thực hiện thao tác đó. Sau khi cài đặt gói hỗ trợ Arduino MATLAB IO, chúng ta có thể truy cập Arduino từ MATLAB bằng cách sử dụng các chức năng Arduino tương tự, với một số biến thể nhỏ, như:
Để tạo một pin CAO trong Arduino, chúng tôi viết mã dưới dạng digitalWrite (pin, HIGH)
Trong MATLAB, chúng ta sẽ sử dụng hàm này với sự trợ giúp của một đối tượng hoặc biến như, và tương tự như vậy.
Trước khi thực hiện việc này, chúng ta phải khởi tạo biến như sau:
Trong dự án này, không có mã Arduino ngoại trừ mã hoặc tệp gói hỗ trợ Arduino MATLAB. Như đã giải thích trước đó rằng tệp mã (tệp.m) được tạo tự động trong khi lưu tệp GUI (tệp.fig). Đã có một số mã được viết sẵn trong tệp.m. Về cơ bản đây là các chức năng Gọi lại cho các nút Đẩy, có nghĩa là chúng ta có thể xác định điều gì sẽ xảy ra khi nhấp vào các Nút Đẩy này.
Trong mã MATLAB, đầu tiên chúng ta khởi tạo cổng nối tiếp và biến nó thành một đối tượng bằng cách sử dụng một biến. Và sau đó chúng ta có thể bắt đầu lập trình như Arduino bằng cách sử dụng biến.
rõ ràng ar; ar toàn cầu; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
Trong chức năng gọi lại của mỗi nút, chúng tôi đã viết mã liên quan cho Bật hoặc TẮT các Thiết bị Gia dụng tương ứng, được kết nối với Arduino qua Rơ le. Ví dụ: chức năng gọi lại cho BẬT đèn được đưa ra bên dưới:
function light_on_Callback (hObject, eventdata, handle)% hObject xử lý thành light_on (xem GCBO)% eventdata dành riêng - được xác định trong phiên bản tương lai của MATLAB% xử lý cấu trúc với các tay cầm và dữ liệu người dùng (xem GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
Tương tự như vậy, chúng ta có thể viết mã trong các chức năng Gọi lại của tất cả các nút, để điều khiển các Thiết bị gia dụng được kết nối khác, hãy kiểm tra Mã MATLAB đầy đủ bên dưới (tệp.m).