기본 콘텐츠로 건너뛰기

#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/id786188363?mt=12) 세팅 해 놓고 이제 언제어디서나 아이폰 화면을 쓸어내려 아이콘을 터치 해주는 것만으로 내방의 조명을 껐다 켜거나, 기숙사 출입문을 열고 닫을 수 있게 되었다. 

 뿐만아니라 인앱 구매를 추가로 할 경우 내가 원하는 위치에서 특정 론처아이콘만 활성화 되는 설정도 가능하다. 예를 들어 방에 있을 때는 방스탠드 전원아이콘들이 활성화되고, 사무실에 있을때는 빔프로젝터전원+스텝모터가 연결된(나중에 작업해보고 싶은 종목이라 알리에서 바이폴라 스텝모터 구매했음 한달 뒤 쯤 도착 예정) 암막 커튼 제어버튼이 활성화된다거나 하도록 말이다. 나에겐 아주 중요한 역할을 할 앱임이 분명하다.

내가 즐겨 사용하는 1password, Sleep cycle alarm clock, 다음으로 문열기, 문닫기, 불켜기, 불끄기, 그다음으로는 맥북과 1m이상 멀어지면 맥북을 잠금상태로 만들어주는 Nearlock, 


어서 IR Receiver와 Emission이 도착해야 다음작업을 진행할텐데.. 

07.01 추가 

LKEMBEDDED 라는 곳에서 Emission을 구입했는데.. 제품 스펙 설명이 없어서 사용이 불가능..그래서 고객센터 전화연락, 홈페이지, 회사 카카오톡, 판매자 페이지 댓글등을 총동원해서 물어보는데만 5일이 걸렸다. 헌데 문제는 작동이 안된다는 것..

똥밟았다고 생각하고 다시는 내가 이곳에서 구매를 안하리라..ㅠㅠ 눈물을 머금고 디바이스마트에서 새로운 Emission을 구입해서 현재 배송을 기다리고 있다.

19.04.16  추가

 저 글을 작성 한 후 얼마 안되어서 Homebridge(aqara plugin) + Xiaomi Mihome Gateway +  샤오미 만능 리모컨 조합으로 진행했고 최근 들어서는 아이폰 Shortcut(단축어) 기능에서 시리로 미홈에 등록되어 있는 장치 on/off가 가능해졌다. 덕분에 애플워치와 아이폰, 아이패드의 시리에게 TV/스탠드/선풍기/신발장 전등 등을 끄고 켜도록 지시가 가능하다.
 신발장 등은 샤오미 인체감지센서와 연동하여 인체감지 시에만 자동으로 켜지는 것을 기본 옵션으로 설정했다. 

댓글

이 블로그의 인기 게시물

#1 (진행 중)아두이노 뇌파센서 헤드셋 만들기(Arduino EEG brain wave headset for psychological test) 만들어 뇌파 읽기

 15년 겨울쯤엔가 TED에서 흥미로운 동영상을 봤다. 뇌파를 통해 컴퓨터 안의 객체를 조종하는 모습을 시연하는 것이었다. 뇌파로 이런 것들이 가능하다는 것이 놀라웠다. 나는 심리학도가 아닌가. 뇌파가 더 정확한 심리검사를 만들 수 있는 도구가 될 수 있다는 생각이 들었다.  예를들어 검사문항(디지털 검사)이 100개짜리 라면 핵심 문항들(각 10번 단위)을 체크할 때마다 심경의 변화, 뇌파변화를 센서(객관적)도 기록하고 디지털검사(주관적)로도 기록해서 함께 데이터화 한다면 더 정확한 심경을 읽어 낼 수 있지 않을까? 라는 생각이었다. 2011년 대학원 다닐 때 컴공과 학부생들 겨울방학 특강으로 Objective-C를 무려1개월간 청강했고, C언어를 무려 2개월동안 학원에 다니면서 공부한 사람이기에 ! -_-;;;; 할 수 있을 것이다............  우선 뇌파센서를 구매해야겠지.  알리 익스프레스에서 구매한 EEG 뇌파센서 kit.  2개를 구매했다.비싸군 ㅠㅠ 배송이 한달정도 걸렸다. 학창시절 라디오 만들기인가..실과시간에 도전해본 납땜 이후로는 처음 해보는 납땜이어서 고생좀 했다. 뇌파를 측정해서 hex 코드로 컴퓨터로 읽어들일 수 있는 상태다. 읽어들인 hex값들을 10진수로 변환하고 유의미한 그래프로 그리거나 데이터화 하는 것이 필요 해 보이지만 아직 받은 값을 10진수로 변환하는 방법을 모르겠다. ㅠㅠ 소스코드는 그냥 단순히 hex값으로 읽어오는것이다보니.. 별거 없다;; 나중에 10진수로 변환하여 읽어들이고 자료화 하는 단계가 필요한 것 같은데 차근차근 진행 해 봐야겠다. 준비물 :  1. HM-08 블루투스 모듈 ($5.30) 2. 아두이노 나노 호환품 ($1.89) 3. direct nerosky e eg  brain sensor kit ($50.05) 4. 기타 빵판과

#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

(완료) Cron의 crontab 명령으로 Python code를 스케쥴대로 실행하기(Run python code by fixed interval with using Cron)

(완료)1# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.) (완료) 2# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.) 위 포스팅 내용 대로, 1. python을 통해 selenium 모듈로 crawling을 해서 xlsx 파일을 이메일로 받고 2. xlsx 파일은 Zapier 라는 노코드 툴에서 Email parser by Zapier 와 2개의 Zap 으로 처리해서 구글시트에 업데이트를 했다. 하지만 계속 실시간 데이터를 유지하는게 필요하다.  그럼 이제  추가적으로 이제 이걸 딜레이 시간 을 포함해서 정기적으로 실행되도록 해보자. 딜레이가 Zapier에서 10분 나머지 작업이 진행되는데 2분 정도로 총 12분 걸리는 것으로 확인을 했다.  그리고 나의 경우엔 월요일부터 금요일까지, 아침 7시 30분 부터 저녁 6시 00분까지 30분 간격으로 업데이트 되도록 하겠다.   딜레이를 고려한다면 매 시 48,18분에 python 코드가 돌아가면 얼추 정각에 완료되는 거군! 그러기 위해서는 cron 이라는 리눅스 스케줄러를 사용하려고 한다. 1. terminal 을 열고 sudo apt install cron 으로 crontab을 설치 2. crontab -e 명령어로 VI편집기 오픈 3. i 를 눌러서 insert mode로 전환 4. 아래 명령어