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

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