Copyright (C) 커널연구회 (www.kernel.bz)문서작업: 정재준(rgbi3307 골뱅이 nate.com)문서위치 메인(출처): http://www.kernel.bz/SmartHomeM아래 내용은 누구나 사용할 수 있습니다.단, 저자정보는 지우지 말고 공유하시고 출처를 기입해 주시기 바랍니다.마지막 수정일: 2018-03-01 스마트홈M 이해 및 장치 연결방법커널연구회에서 제작한 스마트홈M(SmartHome_M)은 스마트홈 환경을 미니어쳐 형태로 축소하여 소스 코딩을 연습할 수 있는 키트이다. 스마트홈M 메인보드에는 조도, 온도, 습도, 가스누출탐지, 적외선 센서들이 있어서 주변 데이터들을 수집하고 사용자는 이 데이터에 스마트폰으로 접근할 수 있다. 또한, 직접 소스를 코딩하여 스마트홈M에 있는 여러가지 장치들을 제어하는 방법들을 익혀 나갈 수 있도록 다음과 같이 구성되어 있다. 커널연구회 스마트홈M 외형 커널연구회 스마트홈M 기능 블록도 기능 요약커널연구회의 스마트홈M은 가정집을 미니어쳐 형태로 축소한 것이다. 이러한 환경에서 스마트홈을 구현하는 방법들을 쉽게 익힐 수 있도록 했다. 스마트홈에 필요한 여러가지 센서들과 장치들을 어떻게 연동하여 기능 구현하는지 배울 수 있다. 스마트홈M에는 미니 컴퓨터가 내장되어 있어서 전원, 키보드, 마우스, HDMI 화면을 연결하여 바로 소스 코딩을 하면서 스마트홈 기능들을 프로그래밍할 수 있도록 했다. 스마트홈M 내부에 있는 센서(조도, 온도, 습도, 가스, 적외선)들은 시중에서 사용되고 있는 실제 모델들을 적용했다. 가정집의 가전기기(보일러, 에어컨, 가습기, 제습기, 공기청정기, 소화기)들은 동작제어 상태를 LED로 표시한다. 스마트홈M은 센서들로부터 다음과 같은 데이터를 수집하고 LED로 표시한다. 시간 알람: 현재시간 표시, 부저 알람기능 조도 센서: 조명 On/Off(LED표시) 온도 센서: 온도 표시, 보일러/에어컨/환풍기 On/Off(LED표시) 습도 센서: 습도 표시, 가습기/제습기/환풍기 On/Off(LED표시) 가스 센서: 가스누출 탐지, 공기청정기/소화기/환풍기 On/Off (LED표시), 부저 경보 적외선 센서: 현관 침입 탐지, 부저 경보 위의 장치들에 대해서 동작을 표시하는 LED는 다음과 같이 번호별로 정의 되어 있다. 동작 표시 LED 제어 정의 또한 스마트홈M에는 다음과 같은 스위치 버턴들이 있어서 장치들의 동작을 쉽게 확인해 볼 수 있다. 스위치 버턴들은 모두 12개가 있고 왼쪽 세로줄에 6개 오른쪽 세로줄에 6개씩 있다. 이 버턴들은 다음과 같이 기능 정의되어 있다. 동작 테스트 버턴 정의 스마트홈M에는 DC모터와 스테핑 모터가 있다. DC모터는 환풍기 제어에 사용하고 스테핑 모터는 환관 출입문 제어에 사용된다. 모터 동작 정의 스마트홈M에는 실제 시간 클럭(RTC: Real Time Clock)이 내장되어 있어 실제 시간을 표시하고 알람기능을 수행하도록 프로그래밍할 수 있다. 시간표시 LED 시간은 파란색 LED가 점등( On)되면서 표시되고, 온도와 조도, 습도는 녹색 LED가 점등(On)되면서 표시 된다. 파란색 LED와 녹색 LED는 1초 간격으로 번갈아 가면서 점등되고 그때마다 시간과, 온도, 조도, 습도도 번갈아 가면서 표시가 된다. 온도, 조도, 습도 표시 LED 스마트홈M에 있는 온도 센서를 사용하여 실제 온도를 다음과 같이 표시하고, 온도 변화에 따라서 여러가지 프로그래밍을 할 수 있도록 했다. 온도 표시 정의 2자리 숫자로 온도 표시(녹색 LED 점등)온도가 19도 이하이면 보일러 On, 30도 이상이면 에어컨 On온도가 50도 이상이면 화재 부저 경보, 에어컨 Off, 환풍기 On 스마트홈M에 있는 조도 센서를 사용하여 실제 빛의 밝기를 수집한 결과를 다음과 같이 표시하고, 조도 변화에 따라서 여러가지 프로그래밍을 할 수 있도록 했다. 조도 표시 정의 1자리 숫자로 조도 표시조도가 4(40%) 이하이면 조명 On, 6(60%) 이상이면 조명 Off 스마트홈M에 있는 습도 센서를 사용하여 실제 습도를 수집한 결과를 다음과 같이 표시하고, 습도 변화에 따라서 여러가지 프로그래밍을 할 수 있도록 했다. 습도 표시 정의 1자리 숫자로 습도 표시습도가 4(40%) 이하이면 가습기 On, 6(60%) 이상이면 제습기 On 스마트홈M에 있는 가스 센서를 사용하여 실제 가스 농도를 수집한 결과를 다음과 같이 표시하고, 가스 누출 경보와 함께 여러가지 프로그래밍을 할 수 있도록 했다. 가스 누출 경보 1자리 숫자로 가스 농도 표시가스 농도가 4(40%) 이하이면 환풍기, 부저 경보 Off, 6(60%) 이상이면 환풍기, 부저 경보 On 지금까지 기술한 내용들은 스마트홈M의 기능들을 간략히 요약하여 설명한 것이다. 앞으로 스마트홈M에 내장되어 있는 부품들을 자세히 소개하고, 이들을 사용하여 어떻게 스마트홈 기능들을 구현하는지 설명한다. 부품 소개부품은 SmartHome_M 메인보드, 라즈베리파이 제로W, 모터, 센서(조도, 온도, 습도, 가스, 적외선센서)들, LED등으로 구성되어 있다. 외형 기구물은 3D 프린팅하여 출력한다. 메인 보드SmartHome_M 메인보드는 다음과 같이 구성되어 있다. 두뇌 역할을 하는 MCU는 STM32F0(Cortex-M0)을 사용했다. SmartHome_M 메인 보드 앞면 전원은 12V 외부 어댑터와 USB 5V 전원을 모두 사용할 수 있다. 전류 용량은 1A에서 2A정도 소모된다. 12V 외부 어댑터를 사용하면 모든 기능들을 제어할 수 있다. USB 5V 전원만 사용하면 외부 가전기기 Relay 스위칭을 제외한 모든 기능을 사용할 수 있다. 장치들을 직접 테스트할 수 있는 스위치 버턴이 보드 중앙 상단에 12개가 있고 외부에 LED를 8개까지 연결할 수 있다. 스테핑 모터는 1개 DC 모터(환풍기) 1개를 연결할 수 있고, 센서들은 온도센서, 습도센서, 조도센서, 가스누출탐지센서, 적외선 센서등이 내장되어 있다. 12V 외부 어댑터 전원을 인가하고 외부에 Relay 스위치를 연결하면 가정에 있는 가전기기들의 전원을 On/Off 스위칭할 수 있다. 아래는 스마트홈M에 있는 각각의 장치들에서 전류 소모량을 측정하여 정리한 것이다. 전류에 대해서는 전압, 저항과 함께 2장부터 자세히 설명한다. Power 소비 (12V 또는 5V / 평균 650mA)가스 센서: 150mACooling Fan: 50mAESP WiFi: 100mA라즈베리파이 제로(W): 200mAStepping Motor: 200mA합계 최소 전류 소비: 450mA합계 평균 전류 소비: 650mA SmartHome_M 메인보드 뒷면에는 라즈베리파이 제로 W를 연결하는 확장핀(40핀)이 있고, RTC(현재 날짜 시간)을 유지하기 위한 코인셀 배터리가 있다. 또한 부저, 별도의 WiFi 모듈이 있다. 외부로 연결하는 장치들을 위한 헤더핀들도 보드 하단부에 위치하고 있다. 연결하는 방법들은 다음장에서 자세히 설명된다. SmartHome_M MCU 보드 뒷면 기구물기구물은 다음과 같이 7가지 종류를 3D 프린팅하여 상호 조립하여 완성한다. 3D 프린팅 파일(.STL)들은 아래의 커널연구회 github 주소에서 다운로드 받을 수 있다. https://github.com/kernel-bz/SmartHome_M 다운로드 파일명은 SmartHome_M_3D_Model.zip 이며 다음과 같은 .STL 파일들을 압축한 파일이다. 바닥층(floor_0) 1층(floor_1) 2층(floor_2) 3층(floor_3) 벽1(wall_1) 메인보드 바닥 벽2(wall_2) 메인보드 앞 보드 덮개(board_top) 조립한 외형 센서다음 내용은 SmartHome_M에 사용한 각종 센서들을 소개하는 것이다. 센서 부품들에 대해서 간단히 소개하고, 소스 코딩을 통해서 제어하는 방법들은 다음장부터 자세히 설명된다. 적외선 센서 적외선: 940nm, 다이오드 지름 5mm적외선 발신(Emitter) 센서 다이오드 (흰색)적외선 수신(Receiver) 센서 다이오드 (검정색) 초음파 센서 초음파 센서: 5V / 2mA, 측정거리 2cm ~ 450cm 조도 센서 조도 센서: 빛의 밝기에 따라서 저항값 변화(20K ~ 300KΩ) 가스 누출 탐지 센서 가스누출 탐지 센서: LPG, 메탄, 가연성 가스 탐지 온도/습도 센서 온도측정: -40 ~ +120도 / 습도측정: 0 ~ 100% 습도 모터모터는 환풍기에서 DC 모터를 사용하고, 1층 현관에 위치한 적외선 칩입 탐지 센서와 함께 스테핑 모터를 사용한다. 소스 코딩을 통해서 모터를 제어하는 방법은 4장에서 자세히 설명한다. 환풍기 팬 Cooling Fan: 5V / 90mA, 가로x세로x높이: 25 x 25 x 7mm회전 속도: 3000RPM (분당 회전수)극성: 적색선(+), 흑색선(-) 스테핑 모터동작전압: 5V (5라인 4상)직경: 28mm (31mm x 35mm)스텝각: 5.625도 1/64 (클럭당 회전각도) 출력 장치 부품부저는 사용자가 버턴을 눌러서 장치들을 조작할때나 가스누출 및 칩입탐지가 되었을 때 경보음으로 울린다. 부저 부저: 5V / 0.1mA직경 12mm, 높이 9.5mmContinous Beep Tone(극성있음: 긴다리+, 짧은다리-) LED는 침실조명, 에어컨, 보일러, 제습기, 가습기, 공기청정기, 소화기, TV 등의 동작표시(on/off)로 사용 된다. LED 동작전압: 3.3V / 20mA직경 3mm 오색(red, green, blue, yellow, white) 확장사양 부품확장사양 부품으로 라즈베리파이 ZERO(W) 보드가 있다. 아래와 같이 마이크로 SD카드, HDMI 화면, 키보드, 마우스를 연결하여 PC처럼 개발환경을 구성할 수 있다. 40핀 I/O 소켓에 SmartHome_M 메인 보드를 연결하여 상호 제어 프로그래밍을 할 수 있다. 라즈베리파이 ZERO(W) 보드 1번: 마이크로 SD카드를 장착한다.2번: HDMI 포트에 비디오 화면을 연결한다.라즈베리파이 제로의 HDMI 포트는 Mini 크기 이므로 비디오 화면의 HDMI 포트가 일반 크기의 HDMI 라면 Mini Adapter가 필요하다. HDMI to HDMI Mini Adapter 3번: 키보드와 마우스를 마이크로 USB 포트에 연결한다. 라즈베리파이 제로는 마이크로 USB 포트가 하나 이므로 키보드와 마우스 2개를 모두 연결하려면 마이크로 USB 포트용 허브가 있어야 한다. 마이크로 USB 포트 허브 스마트홈 보드 뒷면에 있는 40핀 I/O 소켓에 라즈베리파이 제로(W) 보드를 연결하여 조립한다. 스마트홈 보드와 라즈베리파이는 I2C 인터페이스로 상호간에 제어되고 라즈베리파이는 제로(W) 보드에는 아파치 웹서버를 구동하여 사용자 휴대폰과 무선 WiFi로 접속된다. 이런 환경에서 프로그래밍하는 방법은 앞으로 계속 설명된다. SmartHome_M 보드 뒤면 추가 옵션 부품스마트홈M에 추가적으로 연결하는 부품으로 릴레이 스위치가 있다. 릴레이 스위치는 다음과 같이 스마트홈M 뒤편에 추가적으로 장착하여 가정용 전자기기의 전원(220V)을 스위칭할 수 있다. 이 부품은 스마트홈M 제품 구매시 추가 옵션 부품으로 구매해야 한다. 자세한 구매 정보는 아래 웹페이지 링크를 참고해 주기 바랍니다. 구매정보 링크 스마트홈M 뒤편에 장착하는 릴레이 스위치4개 위의 장치를 연결하는 방법은 다음절부터 자세히 설명된다. 장치 연결방법대부분의 장치들은 SmartHome_M 메인보드 하단부에 있는 헤더핀들에 다음과 같이 연결한다. 장치연결용 헤더 핀 왼쪽(LEFT) 핀 오른(RIGHT) 핀 위의 장치들을 모두 연결하여 기구물들(3D 프린팅)과 조립하면 스마트홈M이 완성되고, 주변장치 들은 다음과 같이 장착한다. 전원은 12V 어댑터(전류 2A)를 연결한다. 키보드와 마우스, 외부 인터넷 케이블은 마이크로 USB 허브에 연결한다. 화면은 미니 HDMI포트에 연결한다. 아래 그림은 각각의 연결 포트 위치를 설명하는 것이다. 주변장치 연결 포트 위치 마이크로 USB허브 아래 사진은 주변 장치들을 모두 연결한 모습이다. 주변장치들 연결 (기본 사양) 키보드와 마우스, 외부 인터넷 케이블은 마이크로 USB허브에 연결한다. 이것은 스마트홈M 제품 구매시 기본적으로 제공한다. 제품구매 바로가기 추가 옵션 부품 연결방법스마트홈M의 뒤편에 추가적으로 연결하는 릴레이 스위치는 가정에 있는 가전기기의 전원(220V)을 On/Off할 수 있다. 이 릴레이 스위치에는 다음 그림과 같이 전선을 연결하는 단자가 3개 있다. 릴레이 스위치 전선연결 단자 위의 3개 단자들중에서 전선은 1번과 2번 단자에만 다음과 같이 연결한다. 릴레이 스위치 단자에 전선연결 방법 스마트홈M의 뒤편에 추가적으로 연결하는 릴레이 스위치는 다음 사진과 같이 쵀대 4개의 가전기기들을 연결하고 전원을 On/Off할 수 있다. 스마트홈M 뒤편에 있는 릴레이 스위치 연결 사진 스마트폰 메뉴에서 다음과 같이 스위치1, 2, 3, 4를 On/Off할 수 있으며, 스마트폰과 연동하는 방법은 아래 링크에서 자세히 설명한다. 스마트폰과 무선 WiFi 연동하는 방법 스마트홈M의 기능들을 프로그래밍하는 방법은 교재(책)를 참고해 주기 바란다. 스마트홈M 교재(책) 바로가기 감사합니다.