기본 콘텐츠로 건너뛰기

2016의 게시물 표시

(완료)라즈베리파이와 + Homebridge API로 Siri를 통한 Arduino Web server 제어하기!

 예전에 해외 사이트( https://sourceforge.net/projects/siriproxyrpi/) 에서 siriproxyrpi에 대해서 본 적이 있다. 아이폰 빌트인 Siri로 전자제품을 자유롭게 제어하는 것.. 당연히 해보고 싶었기에 이 때 라즈베리파이를 구매하게 되었으나, 회사홈페이지때문에 바쁘다는 핑계로 묵혀두었던 나의 홈오토메이션 열정에 기름을 붓게 된 분이 계셨으니 바로 클리앙 이라는 IT  커뮤니티의 '채플린'님 이다.  클리앙 팁과 강좌 게시판에서 homebridge 와 NEST API + esp8266 + mutt broker + app 조합으로 홈 오토메이션을 멋드러지게 소화해 내신 '채플린'님(   https://github.com/chaeplin/neptune  ) 의 사례를 보고 리알못(리눅스를 전혀 알지 못함 ㅠ_ㅠ)인 내가 먼지가 내려 앉은 라즈베리파이를 꺼내들고 용기내어 도전하게 되었다.  우선 아두이노 웹서버는 철거 하기 귀찮을 뿐만 아니라.. 라즈베리파이에서 Python 으로 대체하는데에는 다소 시간이 걸릴것으로 생각되기 때문에! 기존 http GET 주소를 그대로 사용한다. (파알못이라 ㅠ_ㅠ)  라즈베리 파이3 모델B에 우선 최신 운영체제인 Jessie를 설치! http://www.raspberrypi.org 위 사이트에 방문해서 상단 Downloads-Raspbian-Raspbian  Jessie-Download  ZIP 파일을 다운받고.. micro SD 카드를 FAT32로 우선 포맷-SDformatter앱(sd카드는 포맷할때 이 앱을 써야한다고 한다-) 으로 포맷을 하고 win32diskimager( https://sourceforge.net/projects/win32diskimager/ ) 를 통해 img파일을 부팅가능하도록 micro SD카드에 굽는다. 나는 맥북에 있는 빌트인 SD카드리더에 항상 Tardisk(Kickstarter에서 구매한 256

(완료) 맥미니에 bitnami를 설치하여 apache서버 구동하기(+Mysql)

회사 홈페이지 작업을 하고 있다. 회사 홈페이지는 얼추 완성된 형태를 갖춰놓았고, 조금씩만 다듬어가면 될 것 같다. 이제는 사내 커뮤니티를 만들어봐야 하겠는데.. 사내 홈페이지 운영을 위한 서버는 이미 가비아 호스팅, 도메인을 유료로 구입해서 사용하고 있지만,  커뮤니티를 만들기 위해서는 빈번하면서 자유로운 접근이 필요했기에 우선은 내 컴퓨터를 대상으로 서버를 개설하고 local에서 잘 돌아가는 형국을 만들어 놓으면 그대로 옮겼을 때도 정상작동하는지를 확인하면 될 것 같다. 윈도우 컴퓨터를 기준으로는 APM(Apache, PHP, MySQL)을 설치하면 되는데 맥은 MAMP 라는 통합툴을 설치하면 된다고 한다. 나는  bitnami 라는 툴을 골랐다. 내가 구한 MAMP 는 유료로 결제를 유도하기도 했고, 검색 해 보니 사람들이 bitnami를 많이 추천했기 때문. bitnami는 https://bitnami.com 에서 다운받아 설치했고, 방에 항시 가동중인 맥미니를 서버로 두고 작업은 대게 사무실이나 카페에서 맥북을 통해 진행 할 예정인데.. 그러기 위해서 맥미니 서버를 포트포워딩 해놓고 외부에서 PHPadmin에 접속 하는 방법을 선택했다. 설치는 의외로 간단했다. 설치가 완료되면, Application 폴더에 bitnami 폴더가 생성되고 안에 있는 osx-manager 를 실행하여 start all을 눌러주면 된다. 위 처럼 apache와 my sql 모두 running 상태가 되면 성공 이제 Application 폴더 내 binami폴더 apache2/htdocs 폴더에 있는 index.php 파일이 127.0.0.1 에 접속했을 때 기본으로 뜨는 페이지가 될 것이며 기본적으로 맥은 8080포트를 사용하나 외부 에서 사용하기 위해서는 포트 3306을 열어줘야 한다. 사파리에서 192.168.0.1 에 접속하여 사용중인 iptime 공유기에 로그인하고 포트포워딩에 내 사설 ddns 주소:3306을 현재 서버

#1 (진행중)아두이노와 3g쉴드로 차량원격조종 하기(Remote own Car with Arduino 3g Shield)

아두이노와 3g쉴드를 통해 차량원격시동 및 도어락을 할 수 있다면 참 좋겠다. 폭스바겐 골프 2.0 Service Manual이 공개되어있지 않아 해외 사이트에서 유료로 구매를 해야 되는데 가격이 꽤 된다. https://www.factory-manuals.com/expand-volkswagen-golf-7-vii-2013-2014-2015-factory-repair-manual-379.html 을 보면.. 59.99 달러에 Repair Manual을 판매하고 있다. 7만원이라니!!!!!!!!!!!!!!!!!  ㅠㅠㅠ 현기차는 무료로 배포하는데.. 무슨.. 매뉴얼을 돈주고 팔어... 일단 3g 쉴드와 연결하는 프로세스 및 아이디어는 1. 3g 쉴드를 적층한 아두이노 UNO R3 에 KT 선불USIM을 끼워 차량 내에서 상시전원이 들어오게 준비한다. 2. 아이폰으로 시리에게 "알프레드(3g 쉴드 아두이노)한테 시동걸어 라고 문자보내" 라고 말하면 3. 시동걸어 라는 메세지가 전달되면 차량 내 시동을 걸 때 필요한 각 전선부위들에 순차적으로 전원을 공급하며 시동에 성공하게 된다. ... 현재 3g쉴드가 정상적으로 작동하는 것을 확인하였지만 AT+CMGR 커맨드를 통해 수신 문자를 읽는데 있어 내가 AT-command에 대한 이해가 부족한 것 같다. 보류상태임. 나중에 또 추가함.

#1 (완료) Auto touch와 Activator를 활용한 차량용 아이패드 미니1(탈옥) 세팅

 작년 7월 경 차를 하나 샀다. 벌써 1.6만km를 함께 달려왔구나~ 계속 중고차만 타다가 처음으로 장만한 이쁜이 우리 푸푸(골프의 애칭)에겐 아쉽게도 네비게이션이 없다. 2.0 고급형 모델과 일반형 모델이 네비게이션+가죽시트+스마트키 정도의 차이인데도 500만원 정도로 가격차이가 너무커서 사제 네비게이션을 달고 가죽시트를 포기하겠다는 생각으로(실제로 독일에서는 가죽시트보다 알칸타라 직물시트가 더 인기가 많음 - 아마 주행 중 엉덩이 미끄러짐 현상이 있기 때문인 듯.) 골랐는데 막상 네비게이션 장착점에 가니 100만원 ~ 150만원을 부른다. 아니.............. 그돈이면 아이패드 프로를 사요 아저씨. 네비로도 쓰고, 떼어서 영화도 보고 그림도 그릴 수 있다구요.... 그래서 아이패드 프로 12.9도 아닌, 아이패드 프로 9.7도 아닌, 아이패드 에어2도 아닌, 아이패드 에어1도아닌, 아이패드 미니4도 아닌, 아이패드 4도 아닌, 아이패드 미니2도 아닌, 아이패드 3도 아닌, 아이패드2 급의 아이패드 미니1을..... 그 당시 중고가 20만원가량을 주고 구입했다. 8.4.1 버전으로 탈옥이 가능했고, 탈옥 후 Auto touch(루아 스크립트 언어를 사용하는 Cydia앱) + Activator(탈옥기기엔 거의 필수인 Cydia앱) 으로 아래와 같은 아이디어를 실현해보고자 한다. 아니 이미 실현했으나.. 블로그를 만든지가 얼마 안돼 밀려서 쓰고 있다 ㅠ_ㅠ 아이디어 1.  차량에 시동을 걸면 아이패드가 자동으로 블루투스로 연결되고, 셀룰러 데이터, GPS ON 2.  음악앱(벅스 뮤직 플레이어)과 네비게이션 앱을 실행한다. 아래와 같이 코드를 입력했다. 잘 작동한다. 다만 lua명령 만으로는 와이파이나 셀룰러 on/off 제어가 안되기에 Activator 의 기능을 함께 활용 하는 방법을 택했다. 아이패드가 구형모델이다보니 다소 느린편이라 usleep 명령어를 통해 딜레이를 충분히 주었다. 이 방법 말고 앱이

#1 (완료) 아두이노 음주 측정기(Alcohol tester with Arduino)

음주운전을 하지 않는 가장 좋은방법은 대리운전 비용 1만원~1.2만원이 아깝지 않으면서 대리운전 전화번호를 누를 수 있는 정도의 취함 상태인 것 같다. 그래서 생각해본 아이디어가 아예 법적으로 차량에 의무적으로 장치를 설치하도록 하는데 이 장치는 차에 시동을 걸기 전 음주측정을 해야하고 정상 수치내에 있을때만 시동이 걸리는 장치!  물론 조수석에 앉을 누군가가 음주운전을 돕기 위해 대신불어준다면 안되겠지만..ㅠㅠ 아침 출근을 위해 정말 급하게 가글을 하고 나와 출근하려 시동을 걸었는데..가글액에 섞인 알코올 성분때문에 지각을 하는 경우도 생길 수 있겠다만.. 그래도 한번 만들어 보자. 어차피 내게는 차량과 연동할 기술적 지식이 아직 없으므로! 하하하하 06.13 진행 중이나 아직 정리가 안됨 07.01 에 05.28 진행 내용 추가 실제 경찰들 처럼 더더더~ 멘트로 몰입감+정확성(3회 불어서 나온수치의 평균을 활용하는 벙법)을 높일 수 있도록 개선하였다. -_-; Ready 상태. 이후 3,2,1 카운트 후 blow! 그리고 수치를 반복하여 깜빡이며 한다. 이하 소스코드 #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() {   // set up the LCD's number of columns and rows:   lcd.begin(16, 2); } void loop() { lcd.setCursor(1, 0); //라인1로 커서 위치   lcd.print("Ready...");   delay(4000); lcd.clear();   // set the cursor to column 0, line 1   // (note: line 1 is t

1# (17.03.19 실패)파이썬(Python)을 활용해 사내식당 금일 메뉴 텔레그램 메세지로 전달받기

우리 사내식당 밥은 아주 맛있다. 맛이 없어서 그런건 아니고.. 그냥 미리 어떤 음식이 나오는지 알고싶을 뿐이다. 맛없는게 나오면 안먹고 라면을 먹기 위해서 만드는 것은 아니다. Brian Park 님의 블로그에서 초등학생 아들 알림장/급식메뉴를 텔레그램으로 알려주는 라즈베리파이 서버 관련 글을 읽고 처음으로 파이썬(웹프로그래밍 언어)에 도전하게 되었다. 의외로 스크립트언어? 사실 난 전문용어 잘 몰라유 ㅠㅠ 틀린게 있으면 바로잡아주세요 ㅠㅠ 처럼 순서대로 실행하고, C언어처럼 중괄호 개념이 아닌 들여쓰기로 구분..하는 것이 나에게는 심플하고 쉽게 느껴졌다. 물론 이런저런 명령어 외워야하는건 어쩔 수 없..ㅠ_ㅠ  아무튼 나의 특기인 따라하기 신공을 통해 맥에 python 2.7을 설치하고, 적절한 편집기로 eclipse를 골랐다. 나처럼 일자무식자가 단순 연습을 하기 위해서는 eclipse보다 그냥 python 기본 제공 앱(?)인 IDLE을 활용하여 코드 한 줄 한 줄이 어떻게 실행되고 왜 실행이 안되는지 확인 할 수 있어서 더 좋은 것 같다. 어쨋든, 삼성웰스토리에 신규 가입을 해서 아이디와 비밀번호를 알아 둔 뒤.. urllib, urllib2, cookielib 라는 라이브러리를 임포트하여 내가 읽어올 페이지 특정 부분에서 내 아이디와 비밀번호 전송값을 대입하여 처리하는.... 말해놓고 나니 무슨말인지...하아  뭐 그런 방식인 것 같다. urlencode가 핵심 키워드가 아닐까 싶다. 그래서~! 지금 아이디와 비번을 입력하여 접속된 화면이 출력되는 것 까지는 확인이 되었다. 이는, 아래에서  f=opener.open('https://www.samsungwelstory.com/member/login.jsp') for line in f: print line.strip() 부분에서처럼 사이트를 열고, 한줄씩 열거하여 보여달라고 요청하여 나온 값들과 사파리에서 소스보기 값들과 대조를 통

#2 (완료) 아두이노로 방 온도/조도/습도 확인, 조명 ON/OFF, 문 열기/닫기 웹서버 만들기( Arduino HomeAutomation Webserver- Humidity, Temperature, illuminance measurement / Light ON,OFF/ Door open,close / Automatic maintain temperature)

2016년 6월 13일 급한마음에 g마켓에서 IR Emission과 Receiver 를 고가에 구매했다. 배송비가 아까워 PIR센서도 덤으로 구입. 교대근무이다 보니 옆근무자가 자는 동안 나는 출근 준비를 해야하는데.. 불이 꺼진상태로 준비를 하기가 다소 불편한 편이다. 그래서 이 PIR 센서로 나중에 기숙사 방에서 방이 어두울 때 양말/속옷/티셔츠 바구니 접근시에 LED조명으로 해당 위치를 밝혀주는 장치를 만들 계획임  아두이노로 홈오토메이션을 꿈꾸었지만 아직까지는 폰으로 스탠드 전원 제어, 출입문 제어 정도밖에 하지 못하고 있다.   이번엔 적외선(IR)을 사용하는 리모컨 신호를 Receiver로 디코딩하여 그 값을 Emission으로 출력하는 과정을 통해 아두이노로 적절한 시기에 원하는대로 에어컨과 제습기가 가동될 수 있도록 하는게 목표다.  주문한 물품이 내일쯤 도착 할 예정이니 기다리면서  아이디어를 정리 해 보자면.. 1. 저녁을 먹고 오면 체온이 올라가서 매우 덥다고 느끼므로, 매일 사내식당 이용시간인 17:20분에 온도를 22도로 설정하고 30분가동 후 18:10분에 25도로 변경한다. 2. 방온도가 25도 이상으로 올라가면 에어컨을 목표 25도로 설정하여 60분 가동하고 전원을 끈다. ( 사실 나는 더위를 많이 타는 편이라 늘 22~24도 정도로 해놓는 것이 좋지만 함께 방을 쓰는 후임매니저가 추위에 약한 관계로 이렇게 설정 ㅠ_ㅠ )  그리고 웹페이지에 늘 접속해서 버튼을 눌러주기가 여간 불편한게 아니라.. 고민끝에 적절한 아이폰용 앱을 찾아 냈다. ( Launcher 아이튠즈 앱스토어 링크, https://itunes.apple.com/us/app/launcher-notification-center/id905099592?mt=8 )  아래 사진처럼 적절한 아이콘을 구해서( icons8 lite 맥 앱스토어 링크,  https://itunes.apple.com/us/app/icons8-lite/id786188

#1 (진행중)아두이노로 방 온도/조도/습도 확인, 조명 ON/OFF, 문 열기/닫기 웹서버 만들기( Arduino HomeAutomation Webserver- Humidity, Temperature, illuminance measurement / Light ON,OFF/ Door open,close / Automatic maintain temperature)

 자동화를 해보고 싶다. 뭐든 스마트폰으로 띡띡 누르면 되는 그런 방, 그런 집. 영화 '아이언맨'의 토니 스타크 같은 그런 삶 !!! 이런 멋진사람 같으니라구~ 일단 서버를 만들어야 할텐데 서버는 아두이노 web server 예제 소스를 참고하기로 하고.. 시작하기전에 아이디어를 정리 해 보자. 1. 인체감지 센서로 사람이 들어오면 알림으로 알려줬으면 좋겠다. 2. 온습도를 측정하여 습도가 특정 수치 이상을 찍으면 제습기를 가동, 온도가 일정 온도 이상(25)을 찍으면 에어컨을 가동하고 일정 온도(24도)에 도달하면 송풍으로 전환하여 10분 가동(필터 말리기)후 전원 OFF 3. 조도에 따라 블라인드를 자동으로 열고 닫았으면 좋겠다.(기숙사라 룸메이트에게 피해가 갈 수 있으므로 여기서 구현은 불가능하다) 4. 기숙사 방 내자리 스탠드 전원을 침대에 누워서 끌 수 있었으면 좋겠다. 5. 기숙사 입구 출입문이 사원증 태그를 하지 않고도 가능했으면 좋겠다.(나는 기숙사 상담매니저이므로 출입기록이 데이터로 남아야되는 거주사원과 구분된다) 사람이 들어오면 알림으로 알려주는 1번을 진행하기에는 내가 아직블루투스를 통한 알림 전달 방식을 체득하지 못했으므로.. 일단 웹페이지에 표시만 되도록 하고 나중에 연구해서 기능추가를 하도록 해야지! 2번에서 제습기는 리모컨이 없다. 그렇다면 제습기를 뜯어서 버튼부 릴레이를 부착시켜야 할텐데..여기에 photo coupler를 사용해도 될까? 어떻게 하든 무선으로 정보를 전달해야하므로.. 블루투스 모듈이 2개 필요하다. 지금 아직 블투모듈이 몇개 없으므로  일단 값을 표시하는 것으로만 만들어 놓기로 하자. 우선은  4번과 5번을 중점적으로 하면 되겠군. iptime 공유기에 아두이노 웹서버를 만들어서 유선연결하고 어디서든 내 방 정보와 출입문 제어를 할 수 있게 하기 위해서  사용중인 iptime 공유기에서 아두이노 웹서버 아이피를 포트포워딩 해줬다. 보안문제가 있긴