아두이노 DIY 무작정 따라하기 (중·고급편) 음성으로 제어하는 간접등 만들기 음성인식 모듈을 활용하여 내 목소리로 간접등을 끄고 켜고 스마트한 나만의 공간 만들기! 글 | 디바이스마트 정대진, 박진아 스마트 스피커로 집안을 제어하거나, 집안의 전기 사용량, 온·오프 등을 앱으로 관리할 수 있게 만들어주는 사물인터넷, 스마트 홈에 대한 관심이 날로 높아지며 일상생활에 많은 변화를 주고 있습니다. 사물인터넷은 유무형의 객체들이 다양한 방식으로 서로 연결되어 개별 객체들이 제공하지 못했던 새로운 서비스를 제공할 수 있게 됨을 말합니다. 디바이스마트 매거진 구독자분들이 이러한 4차 산업혁명 시대에 빠질 수 없는 사물인터넷, 스마트홈에 대한 개념을 이해하고 생각해볼 수 있는 시간을 갖고,
코로나19로 지친 심신을 원하는 장소의 간접등을 설치하는 과정을 통해 기분을 전환해보는건 어떨까 하여 이번 프로젝트를 소개해드리게 되었습니다. Tip : LED 스트립 길이가 짧아 확장이 필요하다면 18AWG × 2C, 24AWG × 2C 규격의 전선을 구매 후 납땜하여 사용이 가능합니다. 확장한 전선을 깔끔하게 처리하고 싶으신 경우에는 케이블타이와 케이블타이 마운트를 필요한 수량만큼 구매하여 사용하시길 권장합니다. 1. 음성 제어 간접등 만들기에 필요한 제품소개 필수 준비물 제품은 각 각 한개씩 사용하였으며, 프로젝트에 사용되는 모든 제품은 디바이스마트에서 구매가 가능하오니 디바이스마트 검색창에 상품번호를 입력해보시기 바랍니다. Tip : LED 스트립 길이가 짧아 확장이 필요하다면 18AWG × 2C, 24AWG × 2C
규격의 전선을 구매 후 납땜하여 사용이 가능합니다. 확장한 전선을 깔끔하게 처리하고 싶으신 경우에는 케이블타이와 케이블타이 마운트를 필요한 수량만큼 구매하여 사용하시길 권장합니다. 2. 음성인식 모듈에 명령어 세팅하기 2.1. 음성 인식 모듈 연결하기 이번에 사용한 음성 인식 모듈은 최대 15개의 음성 명령어를 저장할 수 있습니다. 연결 도식표는 아래와 같습니다. 음성 인식 모듈과 USB to TTL 컨버터를 연결한 후 PC USB포트에 USB to TTL 컨버터를 꽂아주면 PC의 장치관리자에서 포트 번호를 확인 할 수 있습니다. 저희는 포트 번호가 COM22입니다. 2.2. 음성인식 모듈에 명령어
저장하기 프로그램은 http://www.sudt.com/en/ap/download.htm에서 다운로드 받으실 수 있습니다. AccessPort 프로그램을 실행 시킨 후, 왼쪽 상단에 있는 노란색과 초록색의 톱니바퀴 모양의 Configuration 아이콘을 눌러줍니다. 그럼 Options 창이 뜹니다. 여기서 USB to TTL 컨버터와 연결된 Port 번호를 입력하고, Baud Rate는 9600으로 맞춰줍니다. Send display는 Hex format으로 Receive display는 Char Format으로 설정해준후 OK 버튼을 눌러줍니다. 이 후 원래창 아래쪽에 Hex 명령어로 ‘AA36’을 Send 버튼을 통해 보내주었을 때, Common Mode라는 답변이 온다면, 제대로 연결된 것입니다. Hex 명령어로 ‘AA11’을 보내면, 음성 명령어 녹음이 시작됩니다. 음성 인식 모듈의 마이크에 대고 명령어를 녹음해주시면 됩니다. 각 명령의 길이는 최대 1300ms(1.3초)이므로, 짧은 단어로 명령을 넣는게 좋습니다. 녹음을 시작하면, 한 그룹의 5가지 음성 명령 녹음을 끝내기 전까지 녹음 과정을 멈출 수 없는점 유의해 주시기 바랍니다. START 라는 답변이 오면 명령어를 녹음해주시면 됩니다. No Voice, Different등을 통해 이전 녹음과 다른지, 녹음이 되고 있는지 확인이 가능합니다. Finish one이 나오면
1개의 명령어가 녹음되었다는 뜻입니다. 순차적으로 5개가 모두 녹음 완료되면, Group 1 finish라는 답변이 옵니다. 이 후 Hex 명령어로 ‘AA21’을 보내주면, Group1 Imported라는 답변이 옵니다. 첫번째 그룹의 5개의 명령어 입력이 끝났습니다. Common Mode는 음성 명령값을 ‘Result:11’과 같은 ASCII 코드 값으로 전달해 주지만, Compact Mode는 음성
명령값을 ‘11’과 같은 Hex값으로 전달해줍니다. Tip : 음성 명령어는 녹음할 때 사용자의 목소리 위주로 인식하기 때문에, 다른 사람이 명령어를 넣으면 제대로 작동하지 않을 수 있습니다. 3. 하드웨어 구성 하기 회로도와 상세연결도식표를 보며 아두이노를 브레드보드, 음성인식 모듈, 릴레이모듈에 연결해줍니다. Tip : 하드웨어 전체를 케이스에 넣게될 경우엔 아두이노에 코딩 작업을 하기 어려워지니 케이스에 넣기 전에 코딩작업을 먼저 진행하시길 권장드립니다. 전선의 경우, LED 스트립 설치 시 전선길이가 부족했기에 안내해드렸던 추가전선과 LED 스트립선을 납땜, 수축튜브를 활용하여 연결해주었습니다. DC잭에서 출력되는 전압은 아두이노의 VIN핀, GND로 연결하여 아두이노에 전원을 공급해주고, 또한 릴레이를 거쳐 LED스트립에 전원을 공급해 줍니다. LED스트립의 플러스 선(빨간선)은 다이렉트로 DC잭의 플러스 선으로 연결해주고, LED스트립의 마이너스 선(검정선)은 릴레이의 NO(Normal Open)단자에 연결해줍니다. 또 릴레이의 COM(Common)단자에는 DC잭의 마이너스 선으로 연결해주면 됩니다. 전원 어댑터와 연결된 DC 잭을 통해 아두이노와 LED 스트립에 전원을 공급하게 됩니다. 또 릴레이 모듈과 음성 인식 모듈에도
5V를 인가해줘야 하기 때문에 아두이노의 5V 출력 핀에서 브레드 보드를 통해 전원을 나눠서 공급할 수 있게 연결을 해줬습니다. 완성된 모습은 위와 같습니다. 점퍼선들로 복잡해 보이지만 회로도를 보고 따라서 천천히 작업하다보면 쉽게 하실 수 있습니다. 4. 아두이노 설치 및 소스코드 업로드하기 4.1. 아두이노 통합개발환경(IDE) 4.2. 아두이노 통합개발환경(IDE) 설치 아두이노 공식 홈페이지에 접속하신 후 SOFTWARE-DOWNLOADS를 클릭해 주세요. Download the Arduino IDE 부분에서 각자 운영체제의 알맞은 버전의 파일을 선택해서 다운받으시면 됩니다. 제가 다운로드 받을 시점에서 최신 버전은 1.8.13입니다. 파일을 선택하시면 아두이노 소프트웨어에 대한 기부를 권하는 창이 뜹니다. 기부를 하지 않으시려면 JUST DOWNLOAD를 클릭하시면 다운로드 됩니다. 4.3. 아두이노 통합개발환경(IDE) 기본
세팅 보드를 선택하는 방법은 메뉴바 – 툴 – 보드 – Arduino Uno 보드를 선택해 주면 됩니다. 포트 선택하는 방법은 메뉴바 – 툴 – 포트에서 아두이노에 해당하는 COM 포트를 선택해 주면 됩니다. 4.4. 소스코드 업로드하기 /* #include <SoftwareSerial.h> void setup() void loop() case 0×12: case 0×13: case 0×14: case 0×15: } 업로드 하는 방법은 아두이노 IDE 툴에서 보드와 포트가 정확히 선택되었는지 확인하신 후, 위쪽 오른편에 있는 화살표 모양을 클릭해 주시면 업로드가 진행됩니다. 업로드가 완료되면 아래편에 업로드 완료라고 표시가 됩니다. 소스 코드에 대해 설명드리겠습니다. #include <SoftwareSerial.h> 음성 인식 모듈과 아두이노를 Serial 통신으로 연결하여 사용하기 위해, 소프트웨어 시리얼 라이브러리를 포함시키고, 디지털 2번핀 3번핀을 각각 Rx핀 Tx핀으로 할당시켜주는 코드입니다. 릴레이를 제어하기 위해 디지털 7번핀에 relay 변수를 선언하고, 음성을 인식하기 위한 변수 voice_recogn를 초기값 0으로 선언해주었습니다. void setup() 보드에 전원이 들어왔을 때 혹은 리셋 되었을 때 한번만 동작하는 Setup()함수에 작성해야 할 내용입니다. Serial.begin()함수와 mySerial.begin()함수를 9600보오 레이트로 통신 속도로 설정해줍니다. relay 변수를 출력모드로 설정해주고, Serial통신으로 연결된 음성 인식 모듈에 명령어를 넣어 Compact Mode로 설정, Group2에 연결된 명령어를 가져와 줍니다. void loop() case 0×12: case 0×13: case 0×14: case 0×15: loop()함수에 들어가는 내용은 아두이노에 전원이 들어가 있는 한 계속 반복됩니다. 5. 불키고, 끄고 확인하고 완성하기 하드웨어 구성과 코딩작업이 완료된 후에는 LED 스트립은 필요한 장소에 부착합니다. 완성된 모습입니다. 회의실 한편이 은은한 조명으로 멋스러워졌습니다. 만일 명령어를 말했을때 불이 들어오지 않는다면? 1. LED
스트립과 릴레이가 제대로 동작하는지 확인해 보세요. Box Content 이 코드를 사용해서 릴레이가 제대로 동작하지 않는다면 배선을 다시 한번 점검해보시거나 모듈의 불량을 의심하여 모듈을 교체해줍니다. 2. 음성인식 모듈이 제대로 작동하는지 확인해 보아야합니다. 아두이노와 연결했을 때 아두이노 시리얼 모니터를 통해 음성인식 모듈에 명령어가 제대로 인식되고 있는지 확인 가능합니다. 아두이노에서 음성 인식 모듈에 명령어를 불러오기가 끝나면 위 화면과 같이 ‘The settings are complete’라고 출력이 됩니다. 음성을 인식해 주면 아래와 같이 ‘voice input’이라는 글자가 출력이 되고, 첫번째와 두번째 명령어를 인식하면 ‘relay turn on/off’로 글자가 출력이 됩니다. |