우리 모두는 인간 상호 작용이 최소화되고 사물을 자동 또는 원격으로 제어 할 수있는 '자동화'라는 단어에 익숙합니다. 홈 오토메이션 은 전자 분야에서 매우 인기 있고 까다로운 개념이며, 우리는 또한이 개념을 전자 프로젝트로 쉽게 이해하고 관리 할 수 있도록 최선을 다하고 있습니다. 이전에 비디오 및 코드가 작동하는 여러 유형의 홈 자동화 프로젝트를 개발했습니다. 다음을 확인하십시오.
- DTMF 기반 홈 자동화
- Arduino를 사용한 GSM 기반 홈 자동화
- Arduino를 사용한 PC 제어 홈 자동화
- 8051을 사용하는 Bluetooth 제어 홈 자동화
- Arduino를 사용한 IR 원격 제어 홈 자동화
그리고이 프로젝트에, 우리는 우리의 다음 빌드하려는 MATLAB과 아두 이노를 사용하여 홈 오토메이션 프로젝트 이며, 아두 이노와 MATLAB을 사용하여 GUI 기반의 홈 오토메이션 시스템
구성품:
- Arduino UNO
- USB 케이블
- ULN2003
- 릴레이 5V
- 홀더가있는 전구
- 전선 연결
- 노트북
- 전원 공급
- PVT
작동 설명:
이 프로젝트에서는 컴퓨터의 그래픽 사용자 인터페이스를 통해 가전 제품을 제어하기 위해 Arduino와 함께 MATLAB을 사용 하고 있습니다. 여기에서는 컴퓨터 (MATLAB)에서 Arduino로 데이터를 전송하기 위해 유선 통신을 사용했습니다. 컴퓨터 측에서는 MATLAB에서 GUI를 사용하여 가전 제품을 제어하기위한 몇 가지 버튼을 만들었습니다. Arduino와 MATLAB 간의 통신을 위해 먼저 " Arduino를 위한 MATLAB 및 Simulink 지원 "또는 " Arduino IO 패키지 " 를 설치해야합니다. 이렇게하려면 아래 단계를 따르거나 아래 비디오를 확인하십시오.
- 여기에서 Arduino IO 패키지를 다운로드하십시오. 다운로드하기 전에 가입해야합니다.
- 그런 다음 Arduino IDE를 사용하여 adioe.pde 파일을 Arduino에 굽거나 업로드합니다. 이 adioe.pde 파일은 Arduino IO 패키지 – ArduinoIO \ pde \ adioe \ adioe.pde에서 찾을 수 있습니다.
- 그런 다음 MATLAB 소프트웨어를 열고 Arduino IO 폴더로 이동하여 install_arduino.m 파일을 열고 Matlab에서 실행하십시오. MATLAB의 명령 창에 "Arduino 폴더가 경로에 추가되었습니다"라는 메시지가 표시됩니다. 이는 MATLAB 경로가 Arduino 폴더로 업데이트되었음을 의미합니다.
이것이 우리가 Arduino를 만들고 MATLAB과 통신하는 방법입니다. 위의 방법은 "MATLAB R2013b 또는 이전 버전"에 적합합니다. MATLAB의 상위 버전 (예: R2015b 또는 R2016a)을 사용하는 경우 MATLAB에서 애드온 탭을 직접 클릭 한 다음 "하드웨어 지원 패키지 가져 오기"를 클릭 할 수 있습니다. 여기에서 MATLAB 용 Arduino 패키지를 설치할 수 있습니다.
파일을 설치 한 후 이제 홈 오토메이션 프로젝트 용 GUI를 생성 할 수 있습니다. 기본적으로 GUI에서는 컴퓨터에서 가전 제품을 제어 할 수있는 Push Button 을 만들고 있습니다. 버튼은 MATLAB의 "새로 만들기"메뉴에서 "그래픽 사용자 인터페이스"로 이동하여 만들 수 있습니다. 또한이 버튼의 이름과 색상을 설정할 수 있습니다. 8 개의 버튼을 만들었습니다. 여기에서 6 개는 ON 및 OFF 3 개의 가전 제품과 2 개의 버튼은 모든 가전 제품을 동시에 ON / OFF합니다.
이제 버튼을 만든 후 해당 GUI 창에서 실행 버튼을 클릭하면 ' fig file' 이라고도하는이 GUI 파일 (확장자.fig)을 저장하라는 메시지가 표시됩니다. 파일을 저장하자마자 ' M 파일' (아래 스크린 샷 참조)이라고도하는 코드 파일 (확장자.m)이 자동으로 생성되며 여기에 코드 (아래 코드 섹션 참조)를 넣을 수 있습니다. 이 프로젝트의 GUI 파일과 코드 파일은 Home_Automation_system.fig 및 Home_Automation_system.m에서 다운로드 할 수 있습니다 (오른쪽 클릭하고 다른 이름으로 링크 저장… 선택). 또는 우리가 설명한대로 직접 만들 수 있습니다.
코딩 후 이제 마지막으로 코드 창에서.m 파일을 실행할 수 있습니다. 명령 창에 "Attempting connection.."이 표시됩니다. 모든 것이 잘되면“Arduino successfully connected”메시지가 나타납니다. 마지막으로 GUI 창에서 이전에 생성 된 GUI (버튼)를 볼 수 있으며 여기에서 컴퓨터의 버튼을 클릭하여 가전 제품을 제어 할 수 있습니다. Arduino가 USB 케이블을 통해 Arduino에 연결되어 있는지 확인하십시오. 이 프로젝트에서는 팬, 조명 및 TV를 나타내는 3 개의 전구를 데모 용으로 사용했습니다.
Arduino MATLAB 지원 패키지 설치부터 어플라이언스 켜기 또는 끄기에 이르기까지 전체 프로젝트의 작업은 마지막 비디오에서 이해할 수 있습니다.
회로 설명:
이 프로젝트의 회로는 매우 쉽습니다. 여기에서는 릴레이 구동을 위해 Arduino UNO 보드와 릴레이 드라이버 ULN2003 을 사용했습니다. 3 개의 5V SPDT 릴레이는 릴레이 드라이버 ULN2003을 통해 Arduino 핀 번호 3, 4 및 5에 연결되어 각각 LIGHT, FAN 및 TV를 제어합니다.
프로그래밍 설명:
GUI 창에서 아무 버튼이나 누르면 Arduino에 명령을 보내고 Arduino가 해당 작업을 수행합니다. Arduino MATLAB IO 지원 패키지를 설치 한 후, 다음과 같은 약간의 변형을 사용하여 동일한 Arduino 함수를 사용하여 MATLAB에서 Arduino에 액세스 할 수 있습니다.
Arduino에서 핀을 HIGH로 만들기 위해 코드를 digitalWrite (pin, HIGH)로 작성합니다.
MATLAB에서는 다음과 같은 객체 또는 변수의 도움으로이 함수를 사용합니다.
그리고 마찬가지로.
이를 수행하기 전에 다음과 같이 변수를 초기화해야합니다.
이 프로젝트에는 Arduino MATLAB 지원 패키지 코드 또는 파일을 제외하고 Arduino 코드가 없습니다. 앞서 설명한 것처럼 GUI 파일 (.fig 파일)을 저장하는 동안 코드 파일 (.m 파일)이 자동으로 생성됩니다..m 파일에 미리 작성된 코드가 이미 있습니다. 기본적으로 이것은 푸시 버튼에 대한 콜백 함수입니다. 즉, 이러한 푸시 버튼을 클릭 할 때 발생해야하는 작업을 정의 할 수 있습니다.
MATLAB 코드에서 먼저 직렬 포트를 초기화하고 변수를 사용하여 객체로 만듭니다. 그런 다음 변수를 사용하여 Arduino와 같은 프로그래밍을 시작할 수 있습니다.
명확한 ar; 글로벌 ar; ar = arduino ('COM13'); ar.pinMode (3, '출력'); ar.pinMode (4, '출력'); ar.pinMode (5, '출력'); ar.pinMode (13, '출력');
각 버튼의 콜백 기능에는 릴레이를 통해 Arduino에 연결된 각 가전 제품의 On / Off 관련 코드를 작성했습니다. 예를 들어 Light ON에 대한 콜백 기능은 다음과 같습니다.
function light_on_Callback (hObject, eventdata, handles) % hObject handle to light_on (GCBO 참조) % eventdata 예약 됨-향후 버전의 MATLAB에서 정의 예정 % 핸들 및 사용자 데이터가있는 구조를 처리합니다 (GUIDATA 참조) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
마찬가지로 모든 버튼의 콜백 함수에 코드를 작성하여 연결된 다른 가전 제품을 제어하려면 아래의 전체 MATLAB 코드 (.m 파일)를 확인하십시오.