posted by ShinJjang 2018. 3. 13. 02:35

ST나 홈킷에 실외 공기질 센서가 있으면 공기청정기를 자동화하거나 창문을 열거나, 외출을 할때 기준을 정할수 있을것 같다는 생각에 실외 공기질 센서를 자작 해볼까? 생각하고 있었다. 

그러다 공개된 공기질 자료가 없을까? 검색하다 알게 되어 여기에 소개한다. 

홈킷에 등록할 수 있는 형태이며 외국 사이트의 자료이다. 


물론 국내에서 제공하는 http://www.airkorea.or.kr/ (플루님 소개로 알개되었다)의 자료를 이용하면 좋겠지만 그럴만한 실력은 안되니 어쩔수 없이 이거라도 정말 감사할 따름이다.


먼저 홈킷용 플러그인은 아래 주소이며

https://github.com/schmittx/homebridge-airvisual


미세먼지 데이터를 제공해주는 사이트는 아래주소이다.

https://www.airvisual.com/south


위 사이트에서 국내 공기질 자료를 제공하는 스팟은 대충 아래와 같다.


측정 스팟은 의외로 많지만 플러그인에서 설정은 나라-도-시 로 되어있어 도시 단위로만 설정이 가능하다. (이는 무료 API-key이기 때문이다)



설치하기 


1. 홈브릿지 플러그인 설치

도커의 경우 install.sh파일에 아래 명령어를 추가하고 라즈의 경우 아래 명령어를 실행하여 설치하면 된다.

npm install -g homebridge-airvisual


2. API-Key 얻기

https://www.airvisual.com/ 사이트에 접속하여 가입 후, 반드시 메일 인증을 거친 후에 사이트에 로그인 한다. 


https://www.airvisual.com/api

로그인된 상태에서 위 주소로 접속하면 아래와 같은 화면이 나타나는데 여기서 Community를 선택한다. 나머지는 유료이다.


아래 화면에서 1. Community를 선택한 후에 create를 누르면 3번 항목이 생겨난다.


위 화면의 3번 항목을 클릭하면 아래와 같이 API-Key가 발급되는데 아래의 Key값을 복사해두면 된다.




3. Config.json 파일에 장치 추가하기


config파일의 accessories에 아래와 같이 추가하면 된다. 아래는 대전시의 공기질을 가져오도록 설정한 것이다 

    "accessories": [

        {

            "accessory": "AirVisual",

            "name": "AirQ",

            "api_key": "FjYFdkaidkfs5o6jmcP",

            "sensor": "air_quality",

            "aqi_standard": "us",

            "city": "Daejeon",

            "state": "Chungcheongnam-do",

            "country": "South Korea",

            "polling": true

        }

    ],

 

api_key부분에 위에서 발급받은 key값을 넣으면 되고 

sensor 항목을 온도나 습도로 바꾸면 해당 도시의 온도와 습도 정보도 홈킷에 나타낼수 있다.

aqi-standard는 공기질 표준을 미국(us)나 중국(cn)으로 설정할 수 있다

그 아래 항목에는 원하는 위치 정보를 넣으면 된다. -참고로 GPS기반의 좌표를 넣을수도 있지만 나의 경우 제대로 작동하지 않았다


위치정보는 아래 웹페이지에서 지도상에서 선택하거나 아래로 스크롤해서 내리면 state(도) 항목이 나오는데 탭해서 들어간 후 우측의 도시를 선택하면 된다. 


https://www.airvisual.com/south-korea


참고로 대전의 한 지역을 선택하면 아래와 같이 지역이 뜨는데 시 단위까지만 설정이 가능하기때문에 동은 넣을수 없다. 유료 api-key를 이용하면 동 단위로 정보를 받아올수 있지만 무료 key에서는 지원되지 않기때문에 시 단위로만 설정이 가능하다. 


이렇게 등록후 홈브릿지를 재시작하면 아래와 같이 홈킷에 공기질이 나타남을 알수있다. 

참고로 실제 미세먼지 수치는 나타나지 않으며 수치에따라 아래와 같이 표시된다.


0~51 매우좋음,  ~101 좋음,  ~151 보통,  ~201 나쁨,  201 초과는 아주 나쁨이다.



4. 미세먼지농도 표시하기

혹시라도 미세먼지 수치가 표현되기를 바란다면 위의 플러그인 대신에 아래 플러그인을 설치하면 아래 사진과 같이 미세먼지 농도가 표시된다. 아래 플러그인은 기존의 플러그인을 개인적으로 수정한 버전이다. 


npm install -g shin4299/homebridge-airvisual





posted by ShinJjang 2018. 2. 16. 00:15

0. 수위센서가 필요하다

집이 오래되다 보니 일반적인 상황에서는 필요없는 것??들이 필요하게 되는 것 같다. 나무 보일러 외출 자동화도 그랬듯이 말이다.


우리집은 보일러도 기름과 나무의 하이브리드? 였듯이 물도 산에서 내려오는 무료 물과 상수도를 통해 공급되는 유료 물, 두 가지를 쓰는 하이브리드이다.


사실 집을 지었을때 상수도가 들어오지 않았기 때문에 산에서(산속 수영장 근처에 수원?이 있다) 집까지 관을 매립해서 식수로 쓰고 있는 상황이었다. 그러다 몇 년 전에 상수도가 마을에 들어오면서 우리집에도 수도가 들어왔는데 수도가 물탱크에 연결되지 못하고 현관문 기둥 옆에 1미터 정도 높이로 돌추되어있는 상황이다. 사실 상수도는 거의 쓰지 않고 있었다. 


그런데 문제가 생겼다. 왠만하면 산에서 내려오는 물 관이 얼지 않는데 이번엔 관 중간에 에어가 찬데다 강추위로 얼어버렸다. 한번 얼면 추운 겨울동안은 녹기가 힘들다고 봐야한다. 그래서 물탱크에 물을 현관문 옆에 돌출된 수도관에서 부터 옥상에 있는 물탱크까지 호스를 연결하여 물을 받아야 한다. 


대충 때를 맞추어 상수도를 틀고 끄고 하면 되지만 때를 잘못 맞추면 와이프나 아이들이 샤워하는 도중에 물이 비게되어 5~10분정도 추위에 떨어야 하는 불상사가 발생한다. 그리고 상수도를 틀어놓고 잠궈야할 타이밍을 놓치면 물탱크에 물이 넘쳐 옥상이 물바다가 된다. 그래서 자동화가 필요하다는 생각이 들었고 실행에 옮겼다.




1. 준비물


1. 방수 케이스

2. PCB기판

3. 220V to 5V&3.3V 

4. 5V릴레이

5. 터미널, 커넥터

6. 샤오미 도어센서

7. 비접촉 수위센서

8. 220V전원공급선

9. 기판용 회로연결용 테프론 와이어, 랜선, 납땜 도구, 절연테이프 등등




2. 도어센서 접점제어용 개조하기


2핀 커넥터와 테프론 와이어, 샤오미 도어센서를 이용하여 아래의 과정으로 개조하면 된다.


테프론 와이어를 적당한 길이로 자르고 끝부분 피복을 벗겨 준비한다.


샤오미 도어센서의 위의 두 지점에 테프론 와이어를 납땜한다.


그리고 드릴을 이용하여 도어센서 케이스의 적당한 부위에 구멍을 뚫어 선을 통과하여 다시 기판을 조립한다.

핀을 테프론 와이어 끝에 크림핑 툴을 이용하여 찍는다. 찍기 전에 살짝 납땜을 하는것도 좋다. 그리고 2핀 커넥트를 꽂아 완성한다.


이전에는 전선을 릴레이에 바로 납땜하여 연결하였는데 재활용이나 테스트등 편의를 위해 커넥트를 이용하였다.




3. PCB기판 조립하기


PCB기판에 회로들을 조립하는 동안 너무 집중해서 하다보니 작업동안 사진을 찍지 못했다. 그래서 결과 사진밖이다.


ㄱ. 3.3V는 센서 전원용으로 포트를 만들었다. 대부분의 도어센서들은 3V수은 전지를 사용하기 때문에 수은 전지를 이용하지 않고 따로 전원을 바로 공급하기 위해 만들었다. 


ㄴ. 수위센서 연결은 랜 선을 이용하였다.


ㄷ. 도어센서 연결은 3핀 커넥트를 이용하여 릴레이의 NO(Normal Open-비전원시 열림), NC(Normal Close-비전원시 닫힘)를 선택적으로 사용할 수 있도록 했다. 수위센서에서도 고수위 센서는 NC포트를 이용하고 저수위 센서는 NO포트를 이용했다.


ㄹ. 아래는 기판 뒷면에 회로연결을 위해 와이어를 연결한 것이다.



수위센서 연결은 사진을 찍지 못했다.




4. 설치하기


센서함은 야외에 설치 할 것이기 때문에 방수 케이스를 조립한다.


딸아이 방에서 전원선을 가져왔고 창틀 상단에 피스를 이용하여 고정하였다.


물탱크 상단부와 하단부에 수위센서를 설치하면 끝이다. 설치는 'ㄱ'자 브라켓 끝부분을 구부리고 브라켓은 물탱크에 거친면용 초강력 양면테이프를 이용하여 붙여주고 몇 시간정도 기다린다. 그런 후 수위센서를 브라켓에 끼워서 물탱크에 부착하면 된다.





5. ST, 홈킷 등록 & 웹코어 이용하여 자동화하기


ST에 고수위, 저수위용 센서 두개를 연결하고 홈킷에도 등록했다. DTH를 수정하거나 홈브릿지 내용을 수정해서 다른 센서로 바꾸고 싶지만 귀찮아서 그만 뒀다. 


그리고 웹코어를 이용하여 수위에 따라 아버지와 내게 문자가 오도록 자동화하였다. 


posted by ShinJjang 2018. 1. 28. 20:13

0. 시작하며

우리집에 있는 전자제품들은 대부분 iot라는 개념이 없던 시절에 나온 제품들이다. 가전의 경우 대부분 10년 이상되었다. 이런 오래된 가전들의 작동상태를 판단할수있는 방법은 현재 크게 아래와 같은 3가지이다.


1. iot 아울렛(소켓)을 이용하여 작동시 전력과 작동하지 않을때 대기전력의 차이를 통해 전원상태를 알수있는 방법

2. TV나 컴퓨터 처럼 USB전원이 있는 제품의 경우 USB에 들어오는 전원을 도어센서와 연결하여 트리거로 이용하는 방법 - 링크 -

3. 에어컨처럼 작동시 하드웨어적으로 이동(송풍구 도어열림닫힘)이있는 제품의 경우 도어센서를 이용하여 전원상태를 알수있는 방법


1번의 경우 소켓이 추가되어 외형적으로 부피를 많이 차지한다. 그리고 대기전력이 거의 없는 세탁기와 같은 제품은 굳이 비싼 플러그를 꽂아두는 것은 의미가 없다. 그리고 무엇보다 세탁기의 경우 플러그가 오작동하면 곤란한 일이 발생하기도 한다.

2,3번의 경우 사용할수 있는 제품이 제한적이고 요즘 나오는 무풍에어컨의 경우 움직이는 도어가 없어 3번이 적용이 불가능하다.


현재 본인의 경우 1, 2, 3을 모두 쓰고 있는데 세탁기의 경우 위의 3가지 중 쓸수있는 방법은 1번 밖에 없는데 위에서 언급한 이유로 사용하지 않고 있었다. 

세탁기의 경우 아내가 돌리고 나면 대부분의 경우 끝났는지 확인하는 것은 나의 몫이다. 그래서 새로운 트리거가 필요하다는 생각을 하다 새롭게 만들어 보았다.


1. 준비물




ㄱ. 조도 릴레이 모듈

ㄴ. 샤오미 도어 센서

ㄷ. USB전원 케이블

ㄹ. 3D프린터한 모듈용박스와 조도센서용 캡(위사진의 박스와 캡은 V.2이고 아래 실제 설치된것은 V.1이라 조금 다르다)

ㅁ. 납땜을 위한 기본 도구들


2. 원리

조도센서를 이용하여 전자제품의 전원 표시 LED의 빛을 감지하여 전자제품의 전원 ON/OFF를 판단하는 원리이다.


전자제품 전원ON -> LED켜짐 -> 조도릴레이 모듈 OFF -> 도어센서 상태 변화 -> ST에 트리거로 작동



3. 센서 캡 씌우기

조도센서 릴레이 모듈은 다이얼을 이용해 작동 역치 밝기를 세팅할수있는데 외부 빛의 영향을 막기 위해 아래와 같은 캡을 만들어 씌웠고 전자제품 부착은 양면테이프를 붙여서 이용하면 된다.


4. 도어 센서연결하기

두가닥의 선을 이용하여 릴레이에 연결한 후 도어센서에 연결한다. 도어센서 작업은 다음 링크를 참조하면 된다.


5. 전자제품에 설치하기

모듈에 USB케이블을 이용해서 전원을 공급한 후 적정한 곳에 부착하여 위 우측사진에 보이는 '+'모양의 다이얼을 이용하여 작동여부를 확인하며 역치 밝기를 적절하게 조절한다.

그리고 모율박스도 보이지 않는 곳에 적절하게 붙인다. 


6. 작동 영상



작동 확인 후 웹코어를 이용해서 문자 알림과 구글미니 음성 알림을 설정하여 마무리 하였다.