사용법2019. 6. 21. 15:54

아래 방식은 테스트한지 2년이 지나서 잘 작동되는지 알 수 없습니다.

또한 ifttt가 유료화되서 3개의 무료이벤트만 사용할 수 있다고 합니다. 다른 분들의 최신 블로그를 통해서 만드시는걸 추천드립니다.

 

 

https://namki-learning.tistory.com/18?category=687499

 

구글 홈으로 컴퓨터를 제어해 보자. - wol 이용 컴퓨터 켜기

해당 동영상에서 도움을 얻었습니다. https://www.youtube.com/watch?v=PtiX4TcdDSg wol 은 해당 블로그에서 도움을 얻었습니다. http://blog.naver.com/PostView.nhn?blogId=a77ila2000&logNo=221040624446&categ..

namki-learning.tistory.com

앞선 글에 이어지는 내용입니다.

 

구글 홈을 이용하여 컴퓨터를 키는 방법을 알아봤습니다.

여기서 끝나지 않고 EventGhost 를 사용하여 컴퓨터를 제어하는 법을 알아보겠습니다.

 

침대 위에서 갑자기 전화가 와서 google home 에게 "ok google 컴퓨터 소리 꺼줘" 라고 말하던가

침대에 누웠는데 컴퓨터 모니터가 켜져있어서, 끄기 위해서 일어나면 잠에서 깨는 상황을 방지하기 위해서 만들었습니다.

 

1. 먼저 EventGhost 를 설치해줍니다.

http://eventghost.net/

 

EventGhost: Automation made simple.

New in Release 0.5 RC6 Popular Extensions

eventghost.net

컴퓨터 매크로를 활용하기 위한 프로그램입니다. join 과 EventGhost 를 이용해서 컴퓨터를 제어할려고 합니다.

저는 0.5.0 rc6  버전을 설치했습니다.

 

윈도우10 디펜터가 해당 프로그램이 설치되지 못하게 막는것을 확인했습니다. 프로그램을 예외처리 해주시던가 방화벽을 잠시 끄고 설치하신뒤에 방화벽을 올리셔야합니다.

 

2. join 설정을 설정합니다.

 

AutoRemote 플러그인을 사용해서 자기 컴퓨터에 메세지가 포스트되면 그 알람을 조건문으로 컴퓨터를 제어할려고 합니다. AutoRemote 플러그인을 사용하기 위해서는 알람을 받을 port번호를 설정해줘야합니다.

 

크롬 확장프로그램 join 아이콘을 누르신 뒤 ''' 을 눌러서 환경설정으로 들어가고 advance 를 누릅니다. 

advnace 탭에 eventghost, node-red 부분에 port 를 1818로 설정해줍니다.

 

3. AutoRemote 를 EventGhost 에 설치해줍니다.

https://joaoapps.com/autoremote/eventghost/download/

 

Download – Tasker and Join

Right-click and “Save as” the AutoRemote EventGhost plugin file to your EventGhost plugin folder, after installing EventGhost. This folder is usually C:\Program Files (x86)\EventGhost\plugins\AutoRemote\ or C:\Program Files\EventGhost\plugins\AutoRemote\.

joaoapps.com

해당 링크에서 autoremote 를 받을 수 있습니다. _init_.py 파일을 EventGhost plugins 폴더에 AutoRemote 폴더를 만든 뒤 넣어줍니다.

 

4. EventGhost 를 설정해줍니다.

 

제가 만든 eventghost 매크로 명령어들입니다. Autostart 에 AutoRemote 플러그인을 실행하게 만들어주고 autoremote 가 특정 메세지를 수신하면 매크로를 실행하게 만들어주면 됩니다.

 

저는 컴퓨터 끄기 대기모드, 소리 끄기 켜기, 모니터 끄기 켜기를 설정해줬습니다.

 

5. IFTTT 를 설정해줍니다.

 

https://joinjoaomgcd.appspot.com/

 

Join

 

joinjoaomgcd.appspot.com

윗 링크에 접속하시면 join 이 로그인되있을 경우 본인의 join을 관리할 수 있는 홈페이지로 이동할 수 있습니다.

본인 현재 컴퓨터 크롬을 선택한 뒤 join api 를 눌러서 api key show 버튼을 누릅니다. 그리고 text 부분에 본인이 원하는 명령어(예를 들어 pc_off) 을 하면 copy url to use 부분에 텍스트가 생기는 것을 볼 수 있습니다.

api 키는 타인에게 유출되면 보안문제가 생기기 때문에 조심합니다.

 

생긴 텍스트를 저번에 했던 ifttt 활용법을 보시고 

 

해당 url 부분에 복사 붙여넣기 해주시고

post 로 설정해줍니다. 

 

6.테스트해보기

 

다 설정을 해주셨으면 join 에 send an eventghost message 를 통해서 테스트해봅니다.

메세지를 보냈을 때 eventghost 에 아래 그림과 같은 로그가 찍히면 성공입니다.

저는 test_namki 를 보내서

autoremote.message.test_namki u'test_namki' 라는 로그를 볼 수 있었습니다.

 

이렇게하면 googlehom 을 통해서 여러분이 원하는 명령어로 컴퓨터를 제어할 수 있습니다.

 

보내지는 명령어는 구글드라이브에 저장되기 때문에 보안에 조심해야합니다.

 

소리를 켜고 끄는것은 제가 따로 외장사운드카드를 사용하기 때문에 eventghost 에 명령어로 제어하는 것은 오류가 발생했습니다.

그래서 따로 방법을 찾아봤고 eventghost 는 command 를 실행하는 것도 지원해줍니다. 

 

https://github.com/AndreMiras/pycaw

 

AndreMiras/pycaw

Python Core Audio Windows Library. Contribute to AndreMiras/pycaw development by creating an account on GitHub.

github.com

해당 깃허브를 참고해서  소리를 mute 하는 코드를 사용했고 command 를 사용해서 코드를 실행시키는 것을 통해 소리를 mute unmute 하는 것을 구현했습니다.

 

sound_off.py

 

sound_on.py

 

 

여기까지 evnetghost 를 통해 컴퓨터를 제어하는 것을 알아봤습니다. 이것 말고도 여러가지 재미있는 매크로를 만들 수 있을겁니다.

너무 추상적으로 적은듯 한데 잘 안되시는 분들은 댓글로 질문 부탁드립니다.

 

완성된 동영상입니다.

https://youtu.be/UHiGrARKoZw

컴퓨터 끄기

https://youtu.be/2jqIsQWLfwY

컴퓨터 소리제어

https://youtu.be/1awaTwQ_5AM

컴퓨터 모니터제어

 

Posted by richcherry
사용법2019. 2. 23. 23:53

아래 방식은 테스트한지 2년이 지나서 잘 작동되는지 알 수 없습니다.

또한 ifttt가 유료화되서 3개의 무료이벤트만 사용할 수 있다고 합니다. 다른 분들의 최신 블로그를 통해서 만드시는걸 추천드립니다.

 

해당 동영상에서 도움을 얻었습니다. https://www.youtube.com/watch?v=PtiX4TcdDSg

 

wol 은 해당 블로그에서 도움을 얻었습니다. http://blog.naver.com/PostView.nhn?blogId=a77ila2000&logNo=221040624446&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView

 

 

침대 위에서 컴퓨터 까지의 거리가 너무 멀었습니다.

 

 

특히 술을 마시고 컴퓨터를 할 때, 침대에 누워서 놀다가, 잘려고 하니까 컴퓨터를 끄러 가야되더군요.

 

너무나도 귀찮았기 때문에, 이 문제를 어떻게 해결할까 생각했습니다.

 

저번 학기에 캡스톤 주제로 구글 어시스턴트를 통한 시스템 제어를 생각한걸 떠올렸고. 구글 홈을 주문했습니다.

 

 

 

 

하려고 하는 일은 이렇습니다.

 

1. 구글 홈을 호출 한뒤 구글 어시스턴스를 이용하여 음성인식을 합니다.

 

구글 홈 루틴을 이용하여 제 명령어를 영문 텍스트로 변환한 뒤 명령을 실행합니다.

 

 

 

 

 

 

저는 컴퓨터 꺼 줘, 컴퓨터 꺼줘, 컴퓨터 끄기 라고 구글 어시스턴트가 음성 인식을 할 경우  pc off 를 실행시키라고 지정했습니다.

 

지금 이 게시글에서 사용하는 예제는 컴퓨터를 키는 pc on 으로 하셔야 합니다.

 

2. https://ifttt.com/ 에 접속합니다.

 

우리의 앱과 구글 어시스턴트를 연결시켜 주기 위해서 필요합니다.

 

 

 

구글 아이디로 가입을 하신 뒤 My applets 를 들어갑니다.

 

 

New Applet 을 클릭합니다.

 

this 부분을 클릭합니다.

 

구글 어시스턴트를 검색합니다.

 

say a simple phrase 를 선택합니다.

 

 

해당 화면이 보여야 합니다. what do you wnat to say 루틴에 적은 내가 한글로 말하면 작동할 영어 명령어를 적습니다. 저는 pc off 를 사용했습니다. 영어만 가능합니다. wht do you want the assistant to say 에는 여러분의 명령을 알아들은 구글 어시스턴트에 대답을 적습니다.그리고 create trigger 를 누릅니다.

 

3. join 어플리케이션을 핸드폰에 설치합니다.  크롬 확장 프로그램 또한 설치합니다.

 

https://play.google.com/store/apps/details?id=com.joaomgcd.join&hl=ko

 

https://chrome.google.com/webstore/detail/join/flejfacjooompmliegamfbpjjdlhokhj

 

pc와 핸드폰 등, 안드로이드 기기를 연동하기 위해서 필요합니다. 가능하면, 앱을 구매하시는게 좋습니다.

 

 

 

 

setting notification 에 들어가서  pc로 알람을 보내기 위해서 notification 권한을 허용합니다.

 

 

 

 

4. 이제 join 웹 플랫폼에 들어갑니다.

 

https://joinjoaomgcd.appspot.com/

 

핸드폰을 아이콘을 누른 뒤 api 를 클릭합니다.

 

 

 

api key show 를 클릭합니다. - 보안 문제로 api 키는 절대로 타인에게 노출되면 안됩니다.

이제 Text - takser command or notification text 부분에 여러분이 쓰고 싶은 명령어 ( 예를 들어 저는 pc_on) 를 적습니다. 그리고 텍스트를 입력하면 맨 위쪽 칸에 텍스트가 생성됩니다. 이 텍스트를 복사합니다.

 

 

5. 2에 이어서 

 

thant 을 누르고

 

 

webhooks 를 누른 뒤

 

make a web request 에서 url 부분에 아까 저희가 복사한 텍스트를 붙여넣습니다.

 

method 는 post 로 변경합니다.

 

그런 뒤에 create action 을 만듭니다.

 

이렇게하면 여러분은 구글 어시스턴트에게 한국어 명령어를 내리면 루틴을 통해 영어 명령어로 바뀐 뒤 join 어플리케이션을 통해 핸드폰 join 어플에 해당 명령어가 post 되게 됩니다.

 

6.tasker 앱을 설치합니다. 유료 앱입니다.

 

https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ko

 

안드로이드 핸드폰을 자동화 시켜주기 위한 앱입니다.

 

 

처음에 화면에 아무것도 없으실겁니다. + 를 누른 뒤 

 

 

플러그인 join 을 클릭하고 

 

 

text에 들어가서 text 필터를 아까 우리가 받을 명령어(저는 pc_on 로 설정하고)를 설정하고 이 명령어를 받았을 때 variable 변수를 PO Power 로 설정하고 저장합니다.

 

그리고 이 조건이 맞으면 실행될 task 에는 추가 + 버튼 클릭 -> net 클릭 ->  HTTP Get 을 누른 뒤  

 

Server:Port 와 Path 값을 적절히 넣어주면 됩니다.

 

이 블로그를 참고하시면 됩니다.

 

http://blog.naver.com/PostView.nhn?blogId=a77ila2000&logNo=221040624446&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView

 

 

이렇게 하면 여러분들은 구글홈에게 명령을 내리면 컴퓨터를 켜주는 시스템을 만들 수 있습니다.

 

다음 글에는 event ghost 를 사용하여 컴퓨터 끄기, 컴퓨터 소리제어, 모니터제어 등을 해보겠습니다.

 

완성된 동영상입니다.

https://www.youtube.com/watch?v=1MNZnEOowMI&feature=youtu.be

 

Posted by richcherry
사용법2019. 2. 14. 23:42

해당 블로그를 참조했습니다. https://lovit.github.io/nlp/2018/04/17/word_cloud/


이정민 학생과 같이 제작중입니다. https://jeongmin-lee.tistory.com/53

해당 코드 깃허브 주소입니다. https://github.com/choinamki/everytime_crawler/



인터넷을 돌아다니다가 월드오브탱크 갤러리 게시글을 수집하여 만든 워드클라우드를 보고 흥미가 동했습니다.

그래서 호기심에 제가 자주 보는 에브리타임 게시글로 워드클라우드를 만들어 보기로 했고, 제작한 코드를 이정민 학생과 같이 수정중에 있습니다.



작동 원리는 에브리타임 홈페이지에 접속하여 로그인을 한 뒤 자유게시판 버튼의 XPATH 값을 찾아서 클릭합니다.


페이지 하나당 20개의 자유게시판 글들이 보여집니다.  FIND_NUM 만큼 돌아서 총 FIND_NUM * 20만큼의 게시글 접속링크를 얻을 수 있습니다.



everytime_link.txt 로 해당하는 접속링크를 저장합니다.




이것을 가지고서 각 게시글의 접속, 해당하는 게시글의 텍스트를 가져와서 json 형식으로 저장합니다.



해당하는 텍스트 들을 하나의 str 로 만들어 kr-wordrank를 이용하여 단어와 빈도수로 만든 뒤 이것을 통해 wordcloud를 만듭니다.




워드클라우드를 기본폰트로 만들면 한글이 깨지기 때문에 한글을 표시할 수 있는 폰트가 필요합니다.

저는 나눔고딕을 사용했습니다.





plt 를 사용하여 워드클라우드 그림을 그리고 저장할 수 있습니다.

Posted by richcherry
사용법2019. 2. 13. 15:45

크롤러를 만들다가 request get 을 해도 특정 부분이 없는 현상이 있었습니다.

찾아보니까 동적인 웹페이지는 코드를 통해서 문서가 만들어져 일부분만 가져와진다고 합니다.

그래서 Selelnium 을 이용하여 chormdriver 로 웹페이지를 수집하는 크롤러를 만들었습니다.


 

1. 먼저 크롬 드라이버를 준비합니다.

링크 : http://chromedriver.chromium.org/downloads

자신의 운영체제 환경에 맞는 파일을 준비하시면 됩니다.


2. 셀레니움을 인스톨합니다.

!pip install selenium 

을 통해 selenium 라이브러리를 깔아줍니다.


3. 코드를 작성합니다.


저는 대학교 커뮤니티 사이트인 에브리타임의 게시판 글과 데이터를 수집하기 위해서 셀레니움을 사용했습니다.




webdriver.Chrome 에 자신의 크롬드라이버가 있는 경로를 적어주시고

implicitly_wait 에 자신의 웹 브라우저가 암묵적으로 웹자원이 로드되는 시간이 얼마까지 기다리는지를 설정합니다.

driver.get 을 통해서 해당 웹페이지를 접속합니다.


아래 사진은 크롬드라이버가 작동한 예입니다.



윗 그림처럼 Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다. 라는 문구와 함께 작동하게 됩니다.


해당하는 코드를 보시고 everyrtime 의 아이디값과 패스워드 값을 입력하시면 웹브라우저가 자동으로 로그인을 하여 자유게시판을 클릭하는 모습을 볼 수 있습니다.





저는 everytime 게시판의 텍스트를 수집해서 워드클라우드를 만들어봤습니다.

자세한 내용은 코드가 다듬어지는 대로 전체 코드와 함께 설명하겠습니다.

Posted by richcherry
사용법2018. 12. 20. 15:39

데이터 분석에 도움을 주는 Weka Visualize 입니다.


Weka Visualize 는 데이터를 사용자에게 시각화해서 보여줍니다.


파이썬을 처음 접해서 pyplot을 잘 다루지 못했을 때, 유용하게 사용했던 기능입니다.



weka Visualize 탭 화면입니다. 입력한 데이터를 그래프로 그려서 보여주는 모습을 볼 수 있습니다. X축과 Y축을 원하는 칼럼으로 두고 찍히는 점의 색을 그라데이션으로 만들어 총 3개의 데이터를 시각화 해서 보여줍니다.



PlotSize : 화면의 크기를 조절합니다.


PointSize : 찍히는 점의 크기를 조절합니다. 


Jitter : 데이터의 흩어진 정도를 조절합니다.




Select Attributes : 데이터를 그리는데 원하는 칼럼을 선택할 수 있습니다. 원하는 데이터를 CTRL 을 누른 상태로 마우스 오른쪽 클릭을 하시면 됩니다.




SubSample : 데이터를 그리는데 얼마만큼 데이터를 무작위로 뽑을지 선택할 수 있습니다.





여러 옵션을 설정한 뒤에 화면입니다.




좀 더 자세하게 보고 싶으면 그래프를 마우스 왼쪽 클릭을 해줍니다.






윗 그림과 같은 하나의 그래프를 확대한 화면이 뜨게 됩니다.





그래프의 점을 마우스 왼쪽 클릭 하시면 해당 의 정보를 보는게 가능합니다.

Posted by richcherry
사용법2018. 12. 1. 19:59

데이터 분석에 도움을 주는 Weka 실행편 입니다.



1. Weka 실행 후 우측에 Explorer 버튼을 클릭합니다.


Applications 에 5가지가 있지만 저는 Explorer만 사용했습니다.




Explorer 를 클릭하면 Weka Explorer 창이 뜨게 됩니다.




2.weka에서는 여러가지 기능을 제공해줍니다.  

그중에 제가 사용해본것의 리스트는 다음과 같습니다.


- Preprocess : 데이터를 전처리합니다.


- Classify : 데이터를 분류해줍니다.


- Select attributes : 모델에 사용할 feature 를 선별해줍니다.


- Visualize : 데이터를 그래프로 시각화 해줍니다.




3. 데이터를 불러와서 Weka를 사용해봅니다.



Weka에서 사용하는 데이터 포맷 방식은 .arff 입니다. 파일 유형을 바꾸면 .csv 파일도 불러올 수 있습니다.

csv파일을 사용할 경우 오류가 나는 경우도 있으니 가급적 arff 파일 포맷을 사용하는걸 추천합니다.


4. Prepocess


preprocess 에서 데이터를 불러올 수 있습니다. 각 attributes 에 정보를 볼 수 있으며 삭제 또한 가능합니다.



id 와 groupid 를 삭제한 화면입니다. 원하는 attributes 를 체크한 뒤 아래 remove 버튼을 통해 삭제할 수 있습니다.


5. Classify



choose 버튼을 통해 원하는 알고리즘을 선택한 뒤 분류를 할 수 있습니다.



6. Select attribution

데이터를 원하는 칼럼으로 분류하는 모델에 있어서, 좋은 attribute 를 여러 기준을 통해 점수를 매겨 찾을 수 잇습니다.





7. Visualize

데이터를 그래프로 시각화 해서 보여줍니다.





원하는 그래프에 마우스 오른쪽 클릭을 하면 더 자세하게 볼 수 있습니다.



Posted by richcherry
사용법2018. 11. 25. 12:15

데이터 분석에 도움을 주는 도구 Weka 설치법 입니다.




1. Weka 웹사이트에 접속, 하단 download 를 클릭합니다. 


주소 : https://www.cs.waikato.ac.nz/ml/weka/




2. 자기 운영체제에 맞는 버전을 다운받습니다.








3. 다운받은 Weka 설치 파일을 실행시켜 인스톨 합니다.






- Weka는 Java로 만들어졌기 때문에 JRE 가 없다면 항목에 체크해서 인스톨 해줍니다.





4. 성공적으로 설치하고 실행시키면 아래 화면을 볼 수 있습니다.








Posted by richcherry