livin' seberia

smart mirror project [day 4]

DIY IOT - smart mirror project

금토일 꿀맛휴가를(반타의적으로) 보낸 뒤 컴백.


2월 22일 월요일, 나흘째. 

지난이야기 : SSH 설정을 잘못하는 바람에 라즈베리파이가 집에선 돌아가지 않았고, 시각화 코드나 짤까 했으나 결국 이래저래 의욕도 꺾이고 졸립고 피곤하고 놀고싶고 신랑도 징징대고 그래서 나또한 같이 딩가딩가 놀아서 아무 것도 못 했다는 건설적인 이야기.

나도 블로그하는 사람들처럼 중간에 이모티콘도 넣고 예쁘게 좀 써볼까 싶어...


오늘의 목표 : 1. 파이썬 코드를 어떻게 화면 전체에 예쁘게 잘 구현하지? 검정화면(터미널) 말고 말야.   2. 이쁜 날씨 이모티콘들을 연동할테야. .... 0. 일단 SSH를 제대로 완성해 저 느려터진 마이구미 말고 내 맥에서 잘 한 번 써보자. 



0순위인 맥 ssh 연결이 연구실에선 잘 된다. 즉, ddns의 문제인가보다. 집에서 내가 라즈베리파이를 쓸 일이 있을까? 집은 쉬는 곳.........

일단 ssh 문제는 이정도로 그냥 만족하고 해보기로 한다. 



그래 나는 빠르게 일을 추진하는 걸 좋아하니까. 



그리고 첫번째 미션을 수행하기 위해 지난 주말에 살짝 찾아보기만 했던 그 코드를 꼼꼼히 살펴보기로 한다.

https://github.com/szantaii/mirror-pi

젠장. 이건 사실상 스마트미러를 완성할 수 있을법한 라이브러리다! 아 이건 내 취지에 맞지 않다.

...하지만 살짝 참고하기로 한다.


apt-get을 사용해 뭘 설치하든, 요즘은 죄다 ftp.kaist.ac.kr 미러에서 막힌다. 내가 좀 울었더니 연구실에서 "요즘 거기 안 돌아감" 이라고 한다. 고로 국가 자체를 변경해 우회해서 다운 받아야 할 지경. 

[라즈베리파이 리눅스 미러 변경하는 방법] http://www.berrycracker.net/archives/538       (개인적으로 이 포스팅이 가장 도움이 됐다. 여기 소개된 wget은 굳이 안 해도 괜찮음.)

[어렵고 복잡하고 키도 잘 안먹어 속이 정말 터지기 일보 직전인 vim 편집기에 대한 키 설명은 요기]    https://kldp.org/node/102947


아 드디어 앱트겟(apt-get)이 겁나 빠른 속도로 잘 돌아간다 ㅎㅎ하하하핳하하하하하하하핳



.... 전반적으로 내가 새로 배워야 할 언어가 느는 느낌이다. 

고로 파이썬만으로 GUI(graphic user interface)를 구현할 수 있을 만한 것을 찾아보라는 조언을 받들어 얼마전 시계를 구현할 때 썼던 Tkinter를 활용하기로 했다. (어쩌면 나는 pyQT를 다시 보게 될 지도) 고로 간단하게 일단은 띄우는 것부터 해보기로 한다. 연구실 오빠들에 따르면 쟝고나 플라스크를 쓰면 여러 장단이 있다고 하나 그럼 내가 할 일이 너무 는다. 고로 나는 그냥 Tkinter를 쓴다. 

하지만 아무리봐도 디자인이 너무 예쁘지 않아 PyQt4를 쓰기로 마음먹는다. (갈대같은 내마음) 이또한 설치 빡세기로 유명한 라이브러리인지라, 오늘 밤은 이대로 설치나 하며 보내야할 듯 싶다. (밤 11시52분 현재) 그러다 결국 설치하다 (빡쳐)죽겠다는 생각이 들어 재빠르게 wxpython을 깔았다. 이게 가장 나은 것 같다. (심지어, 좀 작긴 하지만, 그래도 html툴을 활용할 수도 있다!) 신난다. 지금은 이거 연습 중이다. 참고 사이트는 http://wiki.wxpython.org/wxPython%20by%20Example




(하지만 이 또한 맥에선 잘 깔리지 않는다. 이놈의 맥 보안설정....)

(리눅스 짱)

(그..그래서 오늘도 딱히 한 일이 없는 게야???)

(어라... 저 위에 목표를 하나도 달성하지 못..했....)




http://zetcode.com/wxpython/layout/

여기서 wxpython 좀 더 배울 수 있을 듯!! 팁좀 많이 얻어가장 :D





'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 6]  (0) 2016.02.25
smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 2]  (5) 2016.02.17
smart mirror project [day 1]  (0) 2016.02.17

smart mirror project [day 3]

DIY IOT - smart mirror project

그러니까 2월 18일 목요일, 셋째날.

아침 랩미팅을 마치고, 오늘은 시각화 작업 전에 라즈베리파이 ssh 연결 및 와이파이 연결을 성사시켜야겠다는 생각이 들었다. 렉쳐에서 들은 아두이노가 뭔가 매력적이어서 귀를 쫑긋거리며 또다시 개발잼에 빠지는데.... 허나 며칠 잠을 못 자 컨디션이 바닥을 친 가운데, 오늘은 일단 요것만 하고 집에 가서 시각화 작업을 해야지 하고 시작을 했는데...

망할. 우리의 사랑스러운 마이구미 라즈베리파이가 처음엔 와이파이 동글을 인식하는듯 싶더니, 한 번 sudo ifdown wlan0 을 실행한 뒤론 줄곧 먹통인 것이다!!! sudo ifup wlan0이 안 돼!!! ifconfig만 몇 번을 쳤는지 모른다 ㅠㅠ

애증의 와이파이. 애증의 동글. 남들은 잘만 돌아간다는 ipTime N100mini 인데, 나는 당췌 무엇을 건드리고 만진 것인지 그 이후로 나의 라즈베리파이는 no wirless interfaces found라는 메시지만 던졌다... 더구나 호기심도 넘치고, 내 손으로 고치는 걸 좋아하는(허나 고친 적은 없는) 이놈의 성격 탓에 이런저런 파일들을 만지기 시작하는데... (conf 파일 하나도 파일명이 잘못 타이핑돼있길래 굳이 mv 실행해서 바꾸...ㅁ.... warning을 몇 번을 봤는지 모름....)



결국 만들어놓은 py 파일만 이메일로 전송한 채 라즈베리파이 sd카드를 포맷하기에 이른다. 하핳ㅎ하핳하ㅏㅎㅎ핳핳

다시 까는 데 오늘따라 왜이리 오래 걸리는지. 기왕 새로 까는 거 noobs lite가 아닌 noobs full ver. 을 설치해서 그런가. 결국 점심 안 먹고 빨랑 집에 가서 쉬다가 시각화를 하겠다는 모든 계획은 물거품이 됐다. 다시말해 밥도 못 먹고 day 1의 작업을 처음부터 다시 다 했다는 말씀 되시겠다. 덕분에 나는 리눅스의 명령어를 조금은 외울 수 있었을 수도 있고... (좋게 생각하자...)



그래서 ssh 연결은 성공했느냐고?

일단 wifi 동글 설치는 집에가서 하겠다는(미루고 미루고) 마음가짐으로 원격제어가 가능한 ssh부터 확인했다. 아, 내 아이피는 왜 남들과 달리 10.으로 시작할까. 신기해하면서. 그리고 분명 랩에선 '올 작동함 오올' 하고 감탄을 하고 집으로 가져왔는데,



안 됨ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 집 컴이 모두 맥이라 모니터 연결할 길도 없는데 망ㅋㅋㅋㅋㅋㅋ 이럴 줄 알았으면 hdmi 선 좀 랩에서 가져다가 집 tv에라도 연결해서 쓸 걸 망ㅋㅋㅋㅋㅋㅋ 더구나 랩에서 작동하는 걸 보고 신나는 마음에 키보드, 마우스 동글 모조리 빼고 왔는데ㅋㅋㅋ 기가 인터넷 빵빵 터지는 우리집 랜선도 잘 인식했고, 전원도 샤오미 배터리 풀충전 된놈으로 아주 잘 돌아가고 있었는데... 찾아보니 ddns 문제일 수도 있다고 한다. 

주말에 랩 나가야하나 심각하게 고민했으나 생각을 고쳐먹음. (경부선 타고 주말에 상경하기란 역시나 버거운 일. 아 물론 금욜에 갈 수도 있으나 이미 허약해진 심신...)



주말엔 라즈베리파이를 가방 속에 고이 모셔두고, 샤오미 배터리나 충전하며 코드를 짜야겠다는 결심을 합니다. 한 것도 없이 지나가버린 나의 day 3... (매일매일 (언제 현실이 될 지 모르는)아이디어만 샘솟....) 



...혹시 랩에서 나오기 전에 shutdown 어쩌고를 입력하는 바람에 이렇게 된 건 아닐까?.... 의심만 느는 중....





ps. 블로그 글도 하루 밀려 쓰게 됐는데, 이유인즉 그새 내 티스토리 비번을 잊어버려서 로그인 락이 걸렸기 때문ㅋㅋㅋㅋㅋㅋㅋㅋ 아니 어떻게 매일 쓰는 사이트인데도 비번을 그리 틀리는지...... 



'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 2]  (5) 2016.02.17
smart mirror project [day 1]  (0) 2016.02.17
smart mirror project [intro]  (0) 2016.02.17

smart mirror project [day 2]

DIY IOT - smart mirror project

2월 17일 둘째날

오늘의 목표. 책을 살펴보니 라즈베리파이로 소리 정도는 재생 해보고 싶고, 날씨API를 끌어다 쓸 적절한 코드를 짜고자 한다. (시각화는 내일쯤...)


오늘은 소리를 재생했다. 스피커 케이블을 찾을 길이 없어 고민하고 있는데 연구실 오빠가 "이어폰을 쓰면 됨"이라고 알려주었다. 역시 길은 어디에나 있다. 느려터진 랜선을 부둥켜 안고 good morning wav 파일을 검색해 다운을 받았다. 그리고 돌려봤는데...... "good bye"란다. (음....?) 음원이 이상하다.


이어 날씨api를 받아 파이썬으로 코드를 작성해보았다. 이곳 저곳 뒤져봤는데, 많은 이들은 open weather api를 쓴다. (구글 웨더 api도 있었지만, 2010년대 초반 이후로 서비스가 중단됐다고 한다)

하지만 내가 제일 좋아하는 사이트(앱으로 즐겨찾기도 해뒀더랬다)는 forecast.io 다. 물론 당연히 이곳도 api를 제공한다! 심지어 언어별로 라이브러리도 친절하게 잘 형성돼있다. 

나는 파이썬을 쓰므로, 파이썬에 맞는 라이브러리 두 개를 찾았다. 

깃헙의 https://github.com/ZeevG/python-forecast.io     이걸 참고할 수 있고, 
참고로 파이썬 켜기 전에 pip install python-forecastio 를 돌려줘야 forecastio를 import 할 수 있다. 
또 다른 하나는 https://github.com/dvdme/forecastiopy    다. 이 또한 pip install forecastiopy를 해줘야 한다. 
개인적으로는 후자가 매우 마음에 들었다. 

위와 같은 결과가 나오고(개인적으로 저 마이구미를 꼭 화면에 담고 싶었으므로 걍 나이브하게 사진을 찍어 올림.....) 

나는 저 데이터들 가운데 temperature min - max 와 humidity, summary 를 뽑아낼 예정이다. 더불어 icon을 가져다 실제 예쁜 아이콘들과 매칭해 출력할 것이다. 


내친김에 뉴스api도 좀 썼다. ap news나 reuter보단 nytimes에 좀 더 마음이 가서... (물론 한국어를 파싱할 수 있는 네이버 개발자 툴을 활용할 수도 있지만... 한글화 작업은 다음에 해보기로... 더구나 나는 외신을 더 많이 보므로...)


결과적으로 top stories의 제목만 용케 잘 뽑아 왔다. 욝 타임즈의 api는 여기를 참고하면 된다. 

http://developer.nytimes.com/docs/top_stories_api/

물론 스택오버플로에 올라온 것도 활용했다. http://stackoverflow.com/questions/16431120/nytimes-api-python

처음엔 섹션을 science만 설정했는데, 오늘자 top stories에 해당 분야가 없었는지 출력값이 [ ]로 나와버렸다. 맞춤형 콘텐츠를 실시간으로 받아보는 일은 결국 콘텐츠 생산자에게 달려있으니...


그러고보니 시계를 안 했다. (ㅋㅋㅋㅋㅋㅋㅋ 미러의 핵심인데...)

이 글에서 맨 마지막에 나온 코드로는 팝업으로 뜨는 디지털 시계만 나온다. 맨 마지막줄 root.mainloop()을 후에 잘 활용하면 될 듯. 
내 라즈베리파이가 영 이상한 시간을 가리키고 있어서 사진은 저리 나왔다. 음, 영 이상한 시간은 아니고 GMT 기준시다. 세계기준시인 타임티커에서 데이터를 가져온 것으로 보이고, 이걸로라면 날짜도 바로 따올 수 있을 것 같다(???!)



....늘 그렇듯 안 예쁜 건 예쁘게 만들면 된다. (아마도 그럴거다...) 그리고 마이구미는 몹시 귀엽다.



이제 시각화 작업을 하면 된다.

(그럼 이제 다시 js와 css를 펼쳐야 하는 것인가...?...)



'DIY IOT - smart mirror project' 카테고리의 다른 글

smart mirror project [day 5]  (1) 2016.02.23
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 1]  (0) 2016.02.17
smart mirror project [intro]  (0) 2016.02.17