livin' seberia

smart mirror project [day 5]

DIY IOT - smart mirror project

2월 23일 화요일, 다섯째날

오늘의 목표: 한 화면에서 날씨도 나오고, 시간도 보이고, 뉴스도 출력하도록 해보자 ===> (오후에 변경) GUI에 데이터를 얹는거라도 완성하자 


아침부터 일단 ssh 연결 및 wifi 동글 활성화를 위해 라즈베리파이에 이것저것 설정을 했다. 

지난 번 나를 그토록 애먹였던 wifi 동글 설치는 의외로 아주 빠르게 잘 됐다. 뭐든 그렇지만 '차분하게' 따라하면 다 잘 풀린다. 드디어 랩 와이파이가 잡힌다 ㅠㅠ (물론 랜선을 연결해도 되긴 하지만......)

참고: http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_rpi&wr_id=18

   

더 욕심을 내서, 맥에서도 라즈베리파이 구동 화면을 검정화면 말고 풀 화면으로 모두 보기 위해 vnc viewer를 설치하기에 이르는데... 계속 host computer가 거부한다는 메시지만 뜬다. 그리고.... 이 서버는 내 맥을 외부에서 인식하기 위한... 그런 느낌을 준다... 이상한 일이지...

참고: http://jpub.tistory.com/286

일단은 넘어가기로... (이건 당장 중요한 일이 아니니까...) 내 바탕화면 코끼리의 자태가 살짝 보인다.


다시 시각화 작업을 시작해보자. 어젯밤에 나름 이런저런 고민과 실험을 한 끝에! gui 툴은 wxpython을 활용하기로 했다. 내가 생각한 python gui 라이브러리의 장단은 요렇다. 

 

Tkinter 

PyQT4 

wxpython 

 장점

굳이 설치할 필요가 없다. 파이썬 기본라이브러리로 내장돼있으니까.

정말 많은 용례가 있다. 참고할만한 사이트도 많고 소스도 많다. 

예쁘다. 뭔가 size 지정같은 것도 그렇고 얼핏보면 꽤 직관적인 것 같다. 라즈베리파이에선 설치도 아주 노말하게 잘 된다.

 단점

안 예쁘다.

설치가 겁나 빡세다. 

이상하게 내 맥에선 자꾸 설치가 튕긴다. 

너무 편파적인 분석일지도 모른다. 나는 원래 하나에 애정을 가지면 그냥 그것만 예뻐보이..ㅁ...


시각화


일단 wx.widget 라이브러리를 백번 활용해야겠다는 생각에 여기서 자체적으로 가지고 있는 시계 코드를 좀 써봤다. 

이 링크 최고다   http://zetcode.com/wxpython/in18/

잘 흘러가긴 하는데 시간이 살짝 맞지 않는다. 다시 잡아줘야할듯.


오후 2시 45분 현재.

이번엔 wxPython에 뉴스를 띄워보기로 한다. 전에 만들어둔 것을 복붙해서 요리조리 굴려보는 것이다. 하지만 이 코드 하나 가지고 지금 약 두 시간 정도를 헤매고 있다. 어찌보면 이거 하나 해결되면, 날씨도 쉽게 할 수 있을 듯도 한데...

(아무리봐도 정말 원시적으로 붙여넣는 코드화면....)

화면 속 노란색, 저 txt가 문제다. txt = dataread()를 하면, 그건 dataread()를 통해 얻는 텍스트데이터를 가져가는 게 아니라 dataread()라는 클래스(기능)을 가져갈 뿐이다. 즉, drawtext를 할 수 있는 string(문자)으로서 부적합한 셈이다. 

여기에 한 줄만 넣어 바꾸거나, 혹은 drawtext가 아닌, 말그대로 텍스트를 출력하는 게 가능하면 좋겠는데... gui라는 것이 그래픽 부분이니... 당췌 가능할지 모르겠다. (엉엉) 계속 찾아보던 중 방법을 알아냈다. (사실은 옆자리 태영이랑 앞자리 진한이가 도와줬다!!)

방법은 생각보다 간단했다. list 생성해 -> append를 하는 것... 그럼 type = list가 되니까, 거기서 요소를 추려내면 그건 txt!

나는 리스트까지만 생성하고, 어펜드는.... 하지 못했다.... 이게 바로 겉핥고 뛰어넘기의 한계 ㅠㅠ 


결과적으로 이와 같은 아름다운 결과가 드디어 나왔다 ㅠㅠ 



물론 날씨도 이렇게 잘 나온다. 



이렇게 데이터들을 GUI에 얹었다. 정말 행복한 하루다. 이제 이들을 한 화면으로 모아다가 예쁘게 배열도 좀 하고 정보도 좀 고르고 해야하는데...... to be continued....




 

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

smart mirror project [day 7]  (0) 2016.03.28
smart mirror project [day 6]  (0) 2016.02.25
smart mirror project [day 4]  (0) 2016.02.22
smart mirror project [day 3]  (0) 2016.02.19
smart mirror project [day 2]  (5) 2016.02.17