디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

입구부터 집안까지 이어지는 홈시스템 콧코로 제작기

멜리사J갤로그로 이동합니다. 2022.12.16 10:36:11
조회 48266 추천 442 댓글 390



7df390aa062ab55282f1c6bb11f11a393b448fb2fae6d9869bf1


드디어!! 이번 제작을 위해 여태까지 해왔던 노하우를 한곳에 응용할때가 왔어!


현관문 자동 오픈부터 시작해서 콧코로 홈 컨트롤 시스템까지 하나의 시나리오로 이어지는 홈시스템 컨트롤 콧코로를 제작 할 거야.



7df390aa062ab55282ff5a48c25aebe574e9f7de12b943ec69d7dfb937c896a74e32bf90


대충 어떤 시스템인지 보여주는 움짤이고 실사용 영상은 아래 있으니 참고 부탁해.



꽤 방대한 양이라서(이미지 업로드 갯수 초과로 인하여) 최대한 압축해서 설명 할 예정이라 사진과 설명이 많이 빠질 수 있음을 미리 양해 구할게.


대신 소스코드를 업로드 할 예정이니 거기서 참고하면 될 거야.



목차는 다음과 같아.


1. 계획


2. 현관문 자동 시스템 하드웨어 제작


3. 현관문 자동 시스템 소프트웨어 제작


4. 현관문 콧코로 + 홈시스템 콧코로 하드웨어 제작


5. 현관문 콧코로 + 홈시스템 소프트웨어 제작


6. 결과



1. 계획



7cf390ac3636b55c83f1c6bb11f11a390c95369f7966daf4


이번에 짠 계획은 여태 해왔던 계획에 비하면 초라할거야. 왜냐면 기존에 작업했던 노하우를 보강하면서 작업할 예정이야.


필요한 재료와 기술에 관한 내용만 적어놨어.


사진의 내용을 요약하자면



현관문 자동열림을 위해 블루투스 비콘을 사용.


현관에 설치할 콧코로 음성인식 시스템


침실에 사용할 홈시스템 음성인식 콧코로


총 3개를 제작할거야.



2. 현관문 자동 시스템 하드웨어 제작



세개중 가장 쉬운것부터 제작할거야.


계획표에 비콘이라 적힌걸 구현할건데, 비콘을 간단하게 설명하자면, 자기가 누구인지를 끊임없이 외치고 있는 사람이라고 생각하면 편할거야.


이러면 다른사람은 이 외침을 들을 수 있고 대충 거리가 어느정도인지 파악 할 수도 있어. 이 원리를 이용하여 거리를 계산하여 자동으로 열리게 할거야.


아마 아파트에서 어플 깔고 입구 진입할때 자동으로 열린다면 블루투스 비콘 시스템을 사용하고 있을 가능성이 높아.



7ff3902ee88368e864afd19528d5270303fe8eea9235e586


비콘을 완성품으로 살 수도 있지만 아두이노를 통해서 쉽게 구현 할 수 있어. 가격도 저렴하게 12000원이면 하나 살 수 있지.


HM10이라는 블루투스 모듈을 간단한 AT커맨드로 비콘 모드로 바꾸고 저전력 세팅을 했어. 이후에 아두이노는 필요 없어질 예정이야.


비콘 구현방법은 사진 갯수 제한 맞춰야 해서 굳이 적지 않을게. 인터넷에 많이 퍼져있으니 쉬울거야.



7ef390ad3502b542be341079565dd3ed8cb18f8f562349af48c6326f3facd933407dbc3d


이후 배터리로 구동하기 위해서 3000mAh 리튬 폴리머 배터리를 사서 충전한 뒤 연결 해주면 못 해도 세달 이상은 동작하는 비콘이 준비가 되었어.


리튬 폴리머의 경우 3.7V로 출력할텐데 HM10의 경우 충분히 구동 가능한 사양이니 참고하자.


와중 배터리 케이블 타입이 2핀이어서 냅땜해서 바꿔놨어. 살때 핀 타입 꼭 확인할것!



79f390aa3932b45bba333c71565de4c13c352132b6741090e61eac644006ee81c03a5a5c


케이스는 포맥스를 이용하여 제작 한 뒤 나사로 경첩박는걸로 마무리 할거야.


그리고 마스킹테이프로 마무리 하면 깨끗하게 완성!



78f390ad3d26b365a6323e799a3be07d9106ea7b8598487d75015536073f7e646910f7f0513970


7bf390ad3332b476a7f1c6bb11f11a39d2feea24acc7d384625e


케이스에 블루투스를 넣고 내부와 외부에 부착하는걸로 하드웨어 준비는 끝났어.



혹시나 누가 저걸 훔쳐가면 문이 프리패스로 오픈되는거 아닐까 하는 걱정이 된다면 아래 소프트웨어 개발 부분에서 궁금증이 해소 될 듯 싶어.



3. 현관문 자동 시스템 소프트웨어 제작



현관문 자동 시스템을 개발하기전에 하나 짚고 넘어가야 할게 있어.


문앞에 왔을 경우에 스마트폰을 들고 어플을 실행시켜서 열게되면 결국 비밀번호 입력 후 들어가는거랑 별 차이가 없어.


그러므로 이전 개발 작품중에 음성인식 상시 구동을 위해 포그라운드 설정을 했던 경험을 살려서 제작 할 거야.



포그라운드 : 어플이 꺼져도, 폰이 재부팅해도 끝까지 작동하는 서비스



7af390aa012eb37f8a333c71565cddc1d9aa7856c9d63c21add9b86f862793342182b5ce0d


버튼을 구현해서 포그라운드를 동작시키고 끄는 서비스를 제작할거야.


어차피 동작시키면 안볼 예정이니까 버튼 디자인도 예전에 PSD 저장된 샘플로 대충 해놓자.



75f39024e9d7782a847b5a6fe291aee5bff970a407c7dd4fc0e8e235caefa3e2f1d3a374c98f211f79dc


포그라운드가 시작되는 서비스 클래스로 넘어가서 ble 스캔 기능을 위한 기능 구현을 시작할거야.


이부분에서 setDeviceAddress 부분에 아까 제작한 블루투스 MAC Address 를 넣고 실시간 스캔 콜백을 요청할거야.


내부와 외부 총 2개를 스캔해야하니 스캔 2개를 구현할거야.



이 부분에서 AT 커맨드로 MAC Address 가 안나오는 경우가 있어!


이런 경우에는 스토어에서 블루투스 비콘 스캐너를 설치해서 주소를 얻어오는것도 하나의 방법이야.



74f390aa0f16b47c9aff5a68ea5af4eca20fe3e73b66920ff6ea777c1f332e75


스캔 콜백 부분은 단어 그대로 데이터 스캔한 결과가 콜되면 처리하는 부분이야.


단순히 스캔만 하면 rssi 라는 수신 세기만 가지고도 할 수 있는데 이러면 정확도가 매우 떨어지므로



ratio = rssi_data * 1.0 / txpower_data


distance = (0.89976) * Math.pow(ratio, 7.7095) + 0.111


라는 비콘 스캔 거리 공식을 사용 할 거야.


여기서 txpower_data는 블루투스 비콘에서 설정되어 나오는 값이니 가급적 건드리지말자. 아마 -59 값으로 설정되어있을거야.



이대로 거리 값을 사용하면 참 좋겠는데... 사진의 우측을 보면 추가 처리를 해놨어.


무선 송신값은 항상 일정하지 않다는 문제가 있어서 값이 확 튀는 경우가 생각보다 많아.


이 문제로 인하여 아파트 단지내 자동 열림 시스템을 보면 비콘이 최소 3개는 붙어있는 경우가 많아.


정확도를 향상시키기 위해서인데 나는 그럴 자신이 없으니 특정 범위내의 값을 받아서 배열로 저장 한 뒤에 평균값을 내서 안정성을 올릴 예정이야.


사실 이것도 정확하게하려면 10개 정도 데이터를 추합해서 하라는데 이러면 문열리는데 한참걸리니 3개정도로 깔끔하게 처리하자.



7ced9e666938fc2ab44b963fc6236a3aef92b4af92f4b3ea8f5a798ee156da


아직 필터가 되지 않은 거리값이 잘 나옴을 확인했어.



7cec9e666e36fc2b84675a4efa5cc5f1db82ec254278698a1666ca31898ac572c8686d7b3c50c9b6d31be858


스캔해서 받은 값을 필터해서 약 1.5m 이내로 들어왔다는 판정을 받으면 네트워크 송신을 보낼거야.


예전에 ifttt를 이용하여 컨트롤 했던 방식을 응용해서 다음과 같은 방식으로 송수신 될거야.


송신 구조는 다음과 같아.



스마트폰 -> ifttt -> 현관문 리모컨(에 붙어있는 IoT) -> 열림



하지만 감지 후 딜레이 안걸면 무한으로 리모컨에 요청가니까 30초동안 딜레이를 거는 핸들러는 꼭 만들자.



이후에는 내부 비콘이 감지되는동안 외부 비콘이 감지되도 동작하지 않도록 락을 걸어놓을거야.



사실 현관문 도어락에 IoT 시스템이 있다는 광고를 본거같은데... 도어락 회사가 전화를 안받고 사이트도 공사중이라 확인 할 방안이 없었어...


인터넷에 설명서도 사이트가 터져서 볼 수가 없어.



7cef9e666e3dc12a904e9639e33daffbeaf11cdde9c2a97c9d363fe29ce943d082


딜레이를 응용해서 내부 블루투스가 안잡히면 방을 외출상태로 만들도록 응용 할 수도 있어.


내부 비콘이 30초 이후 잡히지 않는다 -> 내 방의 커튼과 전등을 끈다.


내부 비콘이 다시 잡힌다 -> 내 방의 커튼과 전등을 켠다.



이렇게 현관문 자동 시스템은 준비가 다 됐어.


하지만 이게 전체의 20퍼도 안되는 작업이었어...



4. 현관문 콧코로 + 홈시스템 콧코로 하드웨어 제작



사실 이게 본격적인 작업의 시작이라 볼 수 있어.



먼저 콧코로를 보기 위한 디스플레이가 필요한데... 이 작업을 위해서 모니터를 새로 사기엔 가격이 좀 나가고 다른 방법이 없을까 생각하다가...


모니터가 안켜진다. + 모니터에서 이상한 고주파가 나서 못견디겠다. 라면서 버려지는 모니터를 2개 얻어왔지!


사실 모니터 액정이 깨진거 아닌 이상 대부분 모니터의 AD 보드에 문제가 생기는 경우가 많아. 그래서 이걸로 작업 할 거야.



7cee9e666e18f02d85575b51c691757d59079ebb54c78093ca667a90aeec5931027dcd156d0ef2


이 모니터는 내가 이미 수리를 끝낸 모니터야. AD 보드 문제가 확실해서 패널 이름보고 AD 보드만 사서 살려놨지. AD 보드 값은 13000원 정도 들었네.



7ce99e666e18f02d85575b51c691767d6d94466de3c2431fe3d48a8aa9124d34a8d6d369614abac2a588f7ad80cd


이 모니터는 이제 수리를 시작 할 모니터야. 1366x768 해상도의 BOE사 패널이라고 적혀있네. 그리고 eDP패널용 AD 보드니까 사는데 주의를 요할 필요가 있어.

그리고 eDP 보드는 가격이 생각보다 세니 (35000원) 세재품대비 가격이 안좋으면 과감하게 패널 갖다 버리자.

그리고 5볼트 1.5암페어 이상의 어댑터가 있으면 끝이야. (권장은 2암페어 이상)


7ce89e666e18f02d85575b51c691767d260a9e515d60b15ecec669f8816519a4c9f1fc9967b657110b10554e8be4


패널이 망가진게 아니라서 잘 작동하는걸 확인 했어. 아주 만족스러워.


7ceb9e66692afc2d9d435d74ea5dd9e9651a7bdf31ed469ed4c393edbacb0da60194342b28e6da0a944b61


이대로 오드로이드 XU4, N2+ 를 준비하도록 하자. 안드로이드 개발자들이 사용하라고 나온 개발보드 제품인데 일반 사용자도 다양하게 사용 하고 있는 제품이야.

전원으로 동작하며 HDMI 를 끼울수 있게 되어있어서 PC 준비하듯이 작업 할 수 있는게 장점이야.

단지 스피커 슬롯이 없거나 있어도 마이크 호환이 안되서 외장 사운드카드가 추천되고 와이파이, 블루투스, GPS 모듈을 따로 사야하는게 단점이긴 해.

하지만 난 다사서 작업할거야. 롬은 리니쥐 OS (XU4 : 안드로이드 파이, N2+ : 안드로이드 11) 를 사용하기로 했어. 여기도 오드로이드 설정 어플이 있더라.


7cea9e666938fc2b9a635a6ed291aff7fb284a9a4a5db09e9ef9b29eafa9760fd36a0a7ae2


콧코로를 부르면 대답할때 아무말도 못하면 안되니까 스피커도 제작할거야.

현재 집에 가지고있던 스피커모듈은 4옴 5와트, 8옴 5와트, 8옴 10와트 이렇게 3종류의 제품이 있어.

그런데 스피커 모듈을 이미 하나 만들어본게 있어서 그걸 사용 해 볼 생각인데..


7ce59e68a55efc46e566323ee629a8cbd478a976610ea45c55c0c5cace1bc2994788f877747e94e11999906ea23474ebe8b6434d015b8a4d44


꽃아보니 소리가 심각하게 작은거야. 스피커 모듈 불량체크는 다했는데 뭐가 문제인지 파악하다가 다시보니...

증폭기! 를 작업 안해놓고 다이렉트로 꽃은거야. 왠지 작더라.. 결국 처음부터 다시 작업해야해.


7ce49e66b69c6d2b82535a48c291a8c38eb7849eac282b8259feb20bd22b7abe66197b8d48


스피커모듈을 처음부터 다시 작업해보자. 지금은 3.5파이 모듈에 납땜을 할거야.


7fed9e66b69c6d2b82535a48c291afdfea002529f7f210e6ccf51f946ca47849f1d00a8ce7


돌려서 열어보면 L R G 납땜하라고 구멍이 있어. 그 구멍에 맞춰서 플럭스 칠 해주고 납땜하고 다시 돌려넣으면 끝이야.

다만 내가 뾰족 납땜 기구를 위주로 납땜한 사람이 아니라서 조금 불편하더라.


7fec9e66b15ec0722eea5a4cf65ccee51972524efae89bf4f1386ea83df2b57f01c933e6dc1f737d2d40e217e95ed35283d4


스피커 모듈을 납땜 할거야. 그런데 증폭기를 싼걸 구한다고 샀는데 (900원) 이게 출력이 너무약해서 스피커 모듈을 다운그레이드할거야.

4옴 5와트 스피커 모듈을 납땜하기로 했어.


7fef9e66692bdc2a8a6e5a48ca5bfdd156a53ec0829f0cb4cc88e8a7f89fc42484


그리고 증폭기에 스피커(L, R) + 5V 전원 (usb 와 연결) + 3.5파이 를 각각 납땜해서 준비가 다됐어.


이제 제대로 동작만 하면 스피커는 끝나!




라고 하고싶은데 망했다.....



스피커에 끝도 없이 노이즈가 타고 오는 문제가 생겼어. 심지어 이 노이즈가 팍팍 튀고 지지직지직 하는 노이즈야.

페라이트 코어로 잡을 수 있어 보이는 노이즈라고 판단해서 구매했더니 화이트노이즈가 아니라서 안잡히더라.

문제는 여분으로 산 증폭기 모듈 4개 전부다 노이즈가 타고 올라오는거야. 그라운드 문제인가 싶어서 그라운드 처리 된 USB 충전기에 꽃아도 들리길래 그냥 다 버렸다.



7fee9e666915dc2aa9439639ef35a8d9546516f7912b76a588c7d1b3029de0c166c5


결국 TDA7297 앰프로 교체 하고 해결봤어. 다음부턴 PAM8403 피해야겠다.


이 앰프는 L R 각각 15와트의 출력을 내 줄수 있어서 8옴 10와트 스피커 모듈로 제작했어.




소리가 쭉쭉 뻗어나가는게 아주 맘에 들어.


울림통을 만들 계획이었지만 추후 케이스가 울림통을 해 줄수 있을것으로 예상되어 제작하지 않았어.



7fe99e66690ed82a936b5a5fd291a8fd87078891d5768da84c62e970d05cc835490b9a1e2275eb


이제 모니터와 부착할 케이스를 제작 할 거야.


포맥스를 모니터 액정에 맞게 자르고 아래 스피커 모듈 들어갈 위치까지 잡아 준 뒤 순간접착제로 붙혀버릴거야.


어차피 불량나도 내다 버리기만 하면 되는 제품이니 문제 없다고 생각했어.


동그란 구멍은 드릴로 냈는데 파편이 너무 많이생겨서 뒷청소가 매우 힘들었어...



7fe89e66690ed82a936b5a5fd291a8fd868b8558264bd53886c1afc16c9b675b4ca476f1efc3


순간 접착제가 잘 붙었으니 사이드 파츠를 접착제로 붙혀 주고



7feb9e66690ed82a936b5a5fd291a8fd91ddcd4427cac432be9ac4d6ec8b81e9ec704fc4f3712f


검은색 질감이 괜찮은 마스킹테이프로 깨끗하게 붙혀 주고 스피커 모듈을 끼워 넣을거야.



7fea9e666938fc2b9a635a6ed291a8fcbeff0440b082959bdc1865f634a42e02e2cdde0459


마지막으로 스피커 망이랑 스피커 케이스를 조여주면 되는데


아놔 부서졌네...



7fe59e666e18f02d85575b51c691a8c4cdc3a914d76a5bd5a309395ace753e9a59e12146c2


이렇게 하면 모니터 완성했어. 라고 하기엔 위에 구멍이 2개 뚫렸는데 각각 마이크와 조도센서가 들어갈 위치야.


조도 센서를 넣을 예정이었지만, 조도센서는 동작하는데 오드로이드 운영체제에서 모니터 밝기를 조절하는데 치명적인 버그가 있어서 못쓰게되서 흔적만 남았어...



우측은 현관 벽에 걸 예정이라서 고리를 3개 붙혔어.


그런데 이 고리 괜찮은걸 못찾아서 캠핑용 고리 3개를 붙혀서 제작했어


에폭시 접착제로 붙히니까 매우 단단하게 고정 되더라. 벽에는 3M 코맨드 훅 이라는 제품을 사용해서 붙혀놨는데 나중에 벽지가 안찢어지게 뗄수있다더라.



그리고 콧코로 홈시스템을 구축하기전에 IoT 제품을 점검 하기로 했어.


대부분의 제품이 기존에나온 IoT 제품과 호환이 잘 안되서 제품을 추가로 사서 전부 네트워크와 연결을 시켜놓긴 했는데...



7fe49e666836e82ab7479639f20da8d9b487a2f8566e751288c3de13ecb0b2e20a2a


터치 센서가 스위치로 동작 안되서 큰일났네.


혹시나 해서 리튬 원형 배터리를 붙혀서 터치하면 동작 된다고 한걸 들어서 해보니 안되는거야.


그래서 생각한게 배터리가 소모되는 상황에서 터치하면 되지 않을까? 라는 생각에 (터치센서가 전류가 흐르는걸 판단하는걸로 예상됨)



7eed9e666f02cd2aae43963ef418afc8965a331106fa643c214482ebf2940918f728


배터리 소켓을 이용하여 전위차를 일으켜 강제로 배터리를 소모시킨 상태를 만들어서 테스트 해보기로 했어.



7eec9e66692fec2cbc539639ef2d6a2d981b293d2fce5d84601515a7d30450


그런데 이게 왜 동작함?????


일단 동작하니까 엘리베이터 콜 및 거실에 설치는 해놨어.


진짜 전류가 흐르는 상태끼리 접촉해야 센서가 동작하는건가.. 모르겠다.



7eef9e666906d02a93535b59fa91a8d977b2cf197cac5d7ec802f7049999e973448580b48197575c2078d167


현관문 콧코로 제작이 아직 덜끝났네. 현관 내부 진입과 외부진입을 체크하기 위하여 벽과 벽사이 거리를 체크하는 초음파 센서를 설치 할 거야.



7eee9e666906d02a93535b59fa91a8d97df54979325e1d548ba2bda54b38aa8ed295a21d2da03cbd838994decedf949832f40b


이것도 역시 아두이노로 준비를 했고 일정 거리를 유지 못하고 값이 바뀌면 감지 되었다는 신호를 블루투스를 통해 보내도록 해놨어.

그런데 초음파센서와 아두이노간의 케이블 길이를 3미터로 해놨는데 신호가 닿아서 다행이네. 닿지 않았다면 코딩이 더 힘들었을거야.

18AWG 케이블로 하길 잘 했다 생각 중 이야.


5. 현관문 콧코로 + 홈시스템 소프트웨어 제작

이렇게 하드웨어는 준비되었으니 소프트웨어를 제작 할 시간이야.

기존에 제작했던 음성인식 시스템은 안정성이 떨어지는 문제와 포그라운드로 빠지도록 구조가 되어 있어서 보수 해야 할 필요성을 느꼈어.


7ee99e666e39fc2aaa4e9639eb3da8d909b50ccae6c41d9c1427fb70f21626dba18644ba2d1e3fab


음성인식을 한개만 하는게아니라 한번에 여러번 판단하게 해서 안정성을 올리고 음성 인식 강도를 표시하도록 해놨어.

그런데도 콧코로 인식 못하는거봐라.


7ee89e66eadc2aa37daadaa1059f343373a4ac84741b67a6f2f188a7


onresults 메소드에서 결과값을 바로 처리하도록 해놨어.


7eeb9e2af0d131a751bcd7b91a9f3433e00bea5ed4eb0bca5a6523df


lucia_call 에서는 onresults 에서 음성인식한 값을 파악하는 용도로 쓰이는 메소드야.

대기상태에서 콧코로가 불렸을경우, 콧코로가 불린 이후에 무엇을 해야 하는지에 대하여 작업과 영상 처리를 하는 메소드야.

메소드 이름이 루시아로 되어있는 이유는 콧코로 이전에 프로토타입 제작 중 나온 이름이니 신경 쓰지 말자.


다음으로 넘어가기 전에 영상 처리와 음성처리 관련 이야기를 하고 넘어가야 할 듯 싶어.


7eea9e666927d42b8253963eda05afe47443b108eb053a9b8a4faff269440b1610


이번 콧코로 시스템은 뒷배경이 날짜와 날씨에 의해서 변하고 움직이는 시스템으로 구현하기 위해서 크로마키 시스템이 필요하다고 판단했어.

그러나 아이폰은 알파컬러 관련 공식 개발지원이 있어서 작업이 쉬운데 안드로이드는 아직 알파 컬러를 제대로 지원하지 않아.

이 문제로 인해 반쯤 포기한 상태로 외국 사이트를 조사하다가 하나를 찾았어. alpha-movie 라는 라이브러리야.

알파 컬러값을 지정하고 정확도를 지정하면 특정 컬러값을 투명값으로 바꿔주도록 하는듯 싶어. 덕분에 작업이 가능해졌어.


7ee59e666e26fd2d91735d5eeb9f3433445e36fbd9f37512c4669758


음성의 경우에는 처음에는 내가 콧코로 목소리를 딥러닝으로 구현하려고 약 네 달 작업을 해봤어.

순수 노가다로 게임에서 목소리 추출해서 일본어 발음을 텍스트 처리까지 해봤는데..

콧코로 목소리가 아니라 캬루에게 배신당하고 귀신된 콧코로 목소리가 나오는 문제가 발생했어.


다행히 외국분께서 콧코로 외 천가지가 넘는 캐릭터의 딥러닝을 해준 데이터를 공유해주셨어.



위 영상은 목소리 샘플 영상인데 궁금하면 들어봐도 괜찮아

미식전과 나카요시부 목소리가 있어.

그래도 안타까운건 일본어는 받침음이 거의 없다는 문제점과 한국어와 다른 억양으로 인하여 한국어 하는 외국인같은 이미지는 지워지지 않아.


7ee49e66692fd42a8a6e963edc34affd34b094883fe9eba9c5cc44e3596049a28df3d69c60ade60b79f14cb59bf623954e


이전 같으면 switch - case 문으로 하나하나 분류해서 처리하도록 했었는데, 이번에는 좀더 간결하게 처리하는 방식으로 바꿨어.


for문을 보면 어떤 배열을 돌아다니며 일치하는 단어를 찾도록 해놨는데 이 배열값은 strings.xml 에 모아놓기로 했어.


당장 윗부분을보면 배열 선언처리 되는 부분이 있음을 알 수 있어.


저 배열선언은 요리할래, 밥지을래 같이 요청 단어가 여러개일 경우를 대비하여 배열을 여러개 선언하는 과정이야.


예시로 보여주자면 이런 방식이야.


A배열 = {안녕, 밥지을래, 씻을게, 잘래}

B배열 = {하이, 요리할래, 샤워할래, 잘자}



79ed9e666e02e82a996b9639c429affbf0e30330cfe5079f5d2264109846c03363


strings.xml 에 들어있는 배열이야.


음성 추적부터 비디오, 오디오, 네트워크에 동작 요청까지 전부 하나하나 같은 위치에 나열되어있어.


for문으로 음성추적된 변수를 바탕으로 비디오, 오디오, 네트워크에 같은 배열위치 값을 사용하도록 해놨어.


대신 배열 위치값을 맞추기 위해 더미데이터 캐르릉을 넣는 행동을 했지만 어쩔수 없지.



기본적인 비디오와 오디오는 setOnCompletionListener 를 통하여 동작후 기본 동작으로 돌아가도록 해놨고 간단한 작업이라 넘기고 타이머와 알람 관련 부분을 보여줄게


setOnCompletionListener : 재생이 완료 된 뒤에 무언가를 처리함.



79ec9e666927d42d9053963ec601a8cad69ef492138354eba5a6088c199dcc5999bbc85bc815ea0f


기본 원리는 음성 데이터에서 띄어쓰기를 제외하고 시, 분을 분리한뒤 for문을 돌려서 배열내 일치값을 신규 배열에 등록하는 방식을 사용 할 거야.


이러면 배열[0] 배열[1] 시 배열[2] 배열[3] 분 으로 나열 할 수 있고 화면에 알람 숫자 표시를 이미지 방식으로 이용할거라 등록하기 쉬워져.



79ef9e666927d42d90539639eb0cafd7cc05d7d38d4b1e3cd8f74c5e3d189ebd2ceb7f8c07aff7c9


아까 배열 저장했던걸 기억하자. 똑같은 배열 위치에 있는 음성을 하나 하나 읽는 방식이야.


음성재생 한 뒤 setOnCompletionListener를 통해서 다시 메소드로 진입해서 다음 음성을 읽게 하고 마지막 음성을 읽은 뒤 중지하도록 해놨어.


이걸 위해 콧코로의 숫자 읽는 방식을 전부 녹음해서 처리해놨어.



마무리로 핸들러로 진입해서 요청한 알람과 현재 시간이 일치하면 알람 동작을 하도록 하면 끝!


타이머도 제대로 소개 하고 싶은데 사진 제한이 점점 다가온다... 원리는 같아. 대신 알람이 울리는 영상은 추가할게.






79ee9e666e30f82a9a7798a518d60403093247b055ced5b320b7


날씨는 저번처럼 오픈weatherapi를 사용 할 거야.


조금 다른 점은 HUD 만들때 사용했던 JSON 파싱 방식으로 깔끔하게 작업 했고


저 api 기능에 3시간 단위로 5일동안의 데이터를 제공해주는 기능을 활용해서 오늘 날씨의 최대, 최소 온습도와 내일 날씨 및 내일 최대, 최소 온습도를 구현 했다는 점이야.


대신 3시간 단위의 날씨를 읽는데 새벽 6시에 측정을 해야 00시부터 측정되는 점 때문에 처음 시작하고나서 새벽 6시까진 데이터가 없단점이 안타깝네


화면에 표시하는 방식과 날씨를 읽어주는 방식은 알람 표시와 읽는 방식과 똑같아.



79e99e66692cf42db85f5b59f39f3433abed043683267a8e1a571390b1


구글 홈 맥스 같은 시스템을 보면 새벽에 기기가 몰래 재부팅 하는 경우를 볼 수 있어.


어플을 켜놓고 너무 오래있으면 예상하지 못한 램누수가 생기기 때문인 듯 싶어서 나도 똑같이 구현해놨어.


기존 설정된 알람, 타이머, 날씨데이터는 필수적이니 SharedPreferences 를 통해서 값을 기록해놓고 재부팅하면 다시 불러오도록 하자.



79e89e666e0acc2dad775b5dda5dcef90620a7b9f9d70244359c6043811930d2fc0074e82a8aab142968050794002d90


마지막으로 현관에서 동작할 콧코로 시스템 제작이야.


홈컨트롤 콧코로에서 대부분의 기능은 빠지고 현재날씨, 내일날씨, 날짜, 시간, 음성인식 동작 정도만 남겨놓고 블루투스 자동연결을 넣어놓을거야.


자동연결도 살짝 꼼수를 부렸는데, 현재 오드로이드와 연결된 블루투스가 초음파 센서 판단용 블루투스 하나 라서 페어링된 목록에서 바로 0번을 선택하도록 해놨어.


처음 연결시 비밀번호도 입력해놨으니 자동으로 연결 될거야.



79eb9e666e0acc2dad775b5dda5dcef93355df7935f05946479965219ad8687cae0b1a1ea5425841a0104abf5cd794eb2ea71c48


우측을 보면 메세지가 값으로 오는걸 볼 수 있어. 아까 부착해 놓은 센서인데 내부용 감지센서는 평상시에 87cm, 외부 감지센서는 101cm 정도 감지하고 있음을 알 수 있어.


이러다가 내가 지나가면 값이 바뀌는걸 감지해서 현관 콧코로가 동작하도록 하는거야.


내부가 감지되면 엘리베이터 호출여부를 물어보고


외부가 감지되면 집안에서 무엇을 도와줄지 물어보도록 할거야.



79ea9e666927dc2d9f4f5a48c25ac1e5b4439e22864ccab059fbdeb89e66be15ea713c2a485049e328a0c80c


아두이노 측에서 초음파 센서 거리를 측정하고 거리 변경에 따른 ON/OFF 를 블루투스로 송신 하도록 할거야.


딜레이는 100밀리 세컨드 정도 줄거야. 1초 하니까 살짝 밀리는 느낌이 들더라.


사실 안드로이드 측에서 모두 처리를 하게 하고픈데 오드로이드XU4 가 힘을 못쓴다...



초음파 센서 감지 움짤을 넣으려고하는데 갯수 초과 되서 더이상 못 넣는데 ㅠㅠ 이건 영상을 참고해줘.





이렇게 현관문 자동 시스템 콧코로 + 현관 안내 콧코로 + 홈시스템 콧코로가 완성되었어.


약 3일동안 실제 구동 테스트를 해봤는데 얘가 말을 못알아 듣는 경우가 발생하긴 한데 이건 내가 조절해 나가면 되는 부분이라고 생각해.



위에서 설명하지 못한 부분을 약간이라도 해소시킬수 있는 실제 구동 영상을 보여줄게.




1) 홈시스템 콧코로 개별 동작






콧코로 기본동작 : 0:00


알람 분류 : 01:31


타이머 분류 : 03:57


시간과 날짜 : 05:34


날씨 : 06:06


침실 내부 동작 : 07:08


거실 내부 동작 : 09:48


주방 동작 : 13:07


화장실 동작 : 13:46


엘리베이터 호출 : 14:17


현관문 오픈 : 15:02


1분뒤 슬립모드 : 15:26



2) 홈시스템 콧코로 모드 동작





TV 시청 모드 : 0:00


요리모드 : 01:13


샤워모드 : 01:46


게임(작업)모드 : 02:21


수면 모드 : 03:26



3) 현관문 자동 시스템 콧코로 + 현관 안내 콧코로 + 홈시스템 콧코로 콜라보 시나리오





외출 (엘리베이터 콜, 자동차 원격 시동) : 00:00


복귀 (현관문 자동열림 및 티비시청) : 01:36


복귀 (요리) : 02:55


복귀 (샤워) : 03:36


복귀 (컴퓨터) : 04:02


아차 적다보니 자동차 원격시동을 안적었는데 이건 저번 원격시동 시스템과 99% 같아.




이제 나는 출퇴근 하고 돌아오면 반겨주는 콧코로가 탄생했어.


어흐흑 미식전 온거같아!(아파트임)




마지막으로 개발해왔던 코드를 올려줄게. 주석으로 조도 감지에 따른 밝기 자동조절 부분도 있으니까 확인 해 보는게 좋아.


API 키는 내가 삭제했어. 직접 발급받아서 사용 하길 바랄게. 그리고 100MB 넘는 파일은 전부 제거했어. 깃허브에 올리지못하게 되어있더라... 필요하면 방명록에 개인 요청 부탁할게.


각각 브런치로 개별 정리되어있으니 파일 없다고 놀라지말고 브런치 한번 눌러봐.


https://github.com/MelissaJSM/Home_System_Kokkro.git





출처: 프린세스커넥트 리다이브 갤러리 [원본 보기]

추천 비추천

442

고정닉 168

96

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연인과 헤어지고 뒤끝 작렬할 것 같은 스타는? 운영자 24/04/22 - -
17394 유즈 밀레니엄 잠바 [638] Cocopommel 23.01.13 52688 764
17393 요즘그린거 볼래? [761] RIfleman 23.01.13 74911 1146
17392 이번엔 찐졸업 함미다 (feat. 아크릴 몽쉘 제작기) [337] ㅇㅇ(183.105) 23.01.12 44876 145
17391 날개 달린 여고생 만화 [346] 삼중이갤로그로 이동합니다. 23.01.12 49844 458
17390 콜라 마시는 만화 [491] 드레잉갤로그로 이동합니다. 23.01.11 80912 985
17389 깐돌선생 홈마카세 2022년 정리해봅니다~ [375] 깐돌선생(223.39) 23.01.11 34496 366
17388 [여행기]아이슬란드는 맑음 [스압] [76] 김도시락갤로그로 이동합니다. 23.01.10 18674 76
17386 기록용으로 남겨보는 코스옷 제작 과정 [198] SA4CE갤로그로 이동합니다. 23.01.10 31846 271
17383 클레이로 마키마 피규어 만듬 [352] 싸만코 23.01.09 36891 253
17382 아리우스의 공주, 아츠코의 방독면을 만들어보자 [252] DBshotgun갤로그로 이동합니다. 23.01.07 34981 182
17381 집에서 ps4 스파이더맨 홈메이드 코스프레 해봤오 [스압] [304] 덕후몬갤로그로 이동합니다. 23.01.06 38572 241
17380 모르는 아저씨와 크리스마스에 서울코믹월드 가는 망가 [276] 불효좌갤로그로 이동합니다. 23.01.06 59452 383
17379 컴붕이랑 2시간반동안 영상통화 했다 [507] catdog 23.01.05 73892 701
17378 스벅에 아이맥 들고가기 [522] 레붕이갤로그로 이동합니다. 23.01.05 63922 179
17377 2022년 한 해를 마무리하는 착샷 및 사진모음. [스압] [462] 강망구짱갤로그로 이동합니다. 23.01.04 38941 122
17376 오랜만에 스톱모션 찍어봤습니다 [155] 6Dcreation갤로그로 이동합니다. 23.01.04 27061 187
17375 유령 이야기 [724] 고랭순대갤로그로 이동합니다. 23.01.03 42767 1213
17374 차살꺼다, 차샀다, 차가지러 간다. 사고났다. 정리글 적는다. [1038] 영맨인데_하는_르노인데갤로그로 이동합니다. 23.01.03 93033 1314
17373 해피 뉴 이어 . MANHWA [239] ..김지민갤로그로 이동합니다. 23.01.02 30850 681
17372 [스압] 그냥 일출과 그냥 내가 좋아하는 22년 사진.webp [101] 도식갤로그로 이동합니다. 23.01.02 15056 101
17370 아조씨...올해...코스후레한거...결산...해봐오... [1437] 『유동닉』 22.12.31 131266 1173
17368 아이슬란드는 지금 [스압] [182] 김도시락갤로그로 이동합니다. 22.12.30 34991 294
17367 은으로 진짜 크롬검 만들기 - 2/2편 (완성) [154] ㅣㅣ(121.129) 22.12.30 38063 337
17366 인형과 함께한 유럽 여행, 두번째 이야기 [스압] [328] 和泉つばす갤로그로 이동합니다. 22.12.29 30880 219
17365 (자작) 넥슨 트오세 섭종하는 만화 下 [451] 유연09갤로그로 이동합니다. 22.12.29 40054 541
17364 2022년 마무리 물질, 안다만 시밀란 리브어보드 [54] FallOut갤로그로 이동합니다. 22.12.28 20100 57
17363 군대 생활복 그림 외 다수(스압) [304] ㅇㅇ(221.149) 22.12.28 41780 418
17362 【스압】용으로 힛갤간 해 용으로 끝내기 겸 연말정산 [176] 뻬인타놉갤로그로 이동합니다. 22.12.27 25312 323
17361 단편) 이 세상을 정복하겠습니다 [296] 강효운갤로그로 이동합니다. 22.12.27 41632 357
17360 심심해서 쓰는 통기타 만드는 법(스압, 진지) [276] 하응기잇타갤로그로 이동합니다. 22.12.26 28906 273
17359 산타와 눈사람 만화 [158] 전기톱장어갤로그로 이동합니다. 22.12.26 24284 247
17358 [도장파기] 2022년 연말정산 [196] 난로갤로그로 이동합니다. 22.12.24 28899 411
17357 [요리대회] 쿠스노키 토모리의 토모리(灯り)케이크 [151] キセキヒカル갤로그로 이동합니다. 22.12.23 19892 104
17356 [스압] 오늘의 해를 품은 인천대교 일출 [96/1] 12b갤로그로 이동합니다. 22.12.23 18631 113
17355 티코 전손게이 cctv 받앗음 [1395/1] 슈퍼카오너갤로그로 이동합니다. 22.12.22 73881 436
17353 (크리스마스 특집)회사동기 여사친이랑 자취방에서 술마신 썰.manhwa [612] mangmoongming갤로그로 이동합니다. 22.12.22 102614 770
17352 스압) 3D 프린터로 제작한 졸업작품 - 스마트 팩토리 [204] DBshotgun갤로그로 이동합니다. 22.12.21 34027 101
17351 진짜 본토박이 터키 커피 끓이기 - 제즈베편 [164] 골리앗갤로그로 이동합니다. 22.12.21 23957 178
17350 휴가나와서 한끼-마이야르 보쌈 [434] 쌉돼아지갤로그로 이동합니다. 22.12.20 47954 778
17349 [스압] 크리스마스 미니어쳐 완성했다!.JPG [70] ㅎㅎ(211.212) 22.12.20 18573 109
17348 2022년 키보드 및 데스크 셋업 정산 [장문,스압] [332] dodobird갤로그로 이동합니다. 22.12.19 39767 102
17347 쿠킹호일로 아바타2 물폭포 만들기 [218] 스머프부자갤로그로 이동합니다. 22.12.19 36258 364
17346 위시리스트 0순위, 타코의 나라 다녀왔습니다 [102] 김만타(39.113) 22.12.17 32668 146
17345 요망한 신입 여직원 민하씨 [완][스압] [294] 팬케익갤로그로 이동합니다. 22.12.16 180873 349
입구부터 집안까지 이어지는 홈시스템 콧코로 제작기 [390] 멜리사J갤로그로 이동합니다. 22.12.16 48266 442
17343 일주일간 노숙한 후기 씹스압, 사진많음주의. [201] 댕댕이애호가갤로그로 이동합니다. 22.12.15 66649 128
17342 판타지 한컷 스토리 -옛날 옛적에- [192] A.Shipwright갤로그로 이동합니다. 22.12.15 28935 350
17341 로드킬 [328] 고랭순대갤로그로 이동합니다. 22.12.14 50264 396
17340 모터로 2족보행하는 걸프라 만듬 [301] 샤전용갤로그로 이동합니다. 22.12.14 37417 556
17339 아침을 여는 버드피딩(스압) [196] ㅇㅇ(175.197) 22.12.13 32069 258
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2