posted by ShinJjang 2019. 5. 21. 00:46

우리나라 주택의 전등 스위치는 대부분 Load선과 부하선으로 이루어진 2선식이다. 

하지만 전력을 필요로한 IOT스위치의 경우 대부분 3선식이다. 그래서 3선식의 IOT스위치를 설치하기 위해서는 별도로 중성선 시공을 해야만 한다. 

 

우리나라 제품중에 이젝스의 경우 Zigbee방식의 2선식 스위치를 보유하고 있다. 하지만 이제품의 경우 몇가지 단점이 있다. 

1. 가격이 비싸다.

2. 최소 30w 이상의 부하가 연결되어야 한다.

필자의 경우 거실과 큰방을 제외하면 대부분 LED등으로 30W 미만이다. 

3. 스위치 버튼이 정전 터치식이다.

물론 터치식 버튼을 선호하는 사람들도 있겠지만 스위치는 손의 감각만으로 켜고 끄는것이 익숙할 뿐만 아니라 편하다. 

4. 버튼을 표시하는 LED

손의 감각만으로 켜고 끄는 것이 힘들기 때문에 정전터치식 스위치는 소등시 위치를 표시하기 위한 LED가 반드시 존재한다. 하지만 빛에 민감한 경우 이 빛이 상당히 거슬린다.

 

2선식 중국 제품들 중에 가격적인 부분의 단점을 해결한 스위치는 몇가지 존재한다. 하지만 위의 단점을 모두 해결한 스위치는 필자가 알기로는 Xiaom Aqara Wall Switch가 유일하다. 

 

 

하지만 문제는 스위치 규격이 다르다는 것이다. 중국의 경우 스위치 사이즈는 86mm X 86mm이다. 

 

사실 필자의 경우 샤오미 벽 스위치를 2년 전에 구입하여 설치하였는데 벽을 깍아 내거나, 86mm박스를 구입하여 노출하여 설치하거나, 나무를 덧대어 설치하였다.

 

그러다 어제 갑자기 무슨 바람이 불었는지 최소 높이로 샤오미 벽스위치를 설치할수 있도록 변화 박스를 3D로 모델링한 후에 3D 프린터로 출력하였다. 

 

우측은 어제 뽑은 V1이고 좌측은 오늘 수정해서 뽑은 V2이다.

우리나라 박스는 세로로 길기 때문에 벽에 고정하는 나사홈을 슬라이드식으로 만들었다. 아래 설치 동영상을 보면 쉽게 이해가 갈것이다.

설치 동영상

설치 사진

 

posted by ShinJjang 2018. 9. 11. 19:15

ESPEasy는 나 처럼 프로그램어를 모르는 사람들도 원하는 디바이스를 이용하여 원하는 형태로 사용가능하도록 도와준다. ESPEasy는 여러 종류의 디바이스를 지원하지만 펌웨어형태로 배포하는 파일의 경우 제한된 장치만을 담고 있다. 하여 좀더 추가적인 장치를 사용하기위해서는 플러그인을 추가로 다운로드하여 커스텀 펌웨어를 만들어야 한다. 




1. 아두이노 IDE 설치 하기


커스텀 펌웨어를 만들기 위해서는 Arduino IDE가 필요하다. 다른 방법도 있는것으로 아는데 나는 이방법밖에 모른다. 

먼저 아래 처럼 아두이노 사이트에 들어가서 Arduino IDE 프로그램을 다운로드 한다. 






윈도 인스톨러를 클릭한 후 아래 처럼 Just Download를 클릭하여 파일을 받는다.




파일을 받은 후 설치한다. (설치과정은 생략)




2. ESP8266용 보드매니저 설치하기


설치가 끝나면 아두이노 IDE를 실행한다. 그리고 아래 사진 처럼 파일 - 환경설정을 클릭한다.






환경설정페이지에서 보드매니저 URL을 추가한다. 주소는 아래와 같다.


http://arduino.esp8266.com/stable/package_esp8266com_index.json






URL을 추가하고 나면 아래 그림 처럼 툴 - 보드 - 보드매니저 메뉴를 클릭한다.






보드매니저 창이 뜨면 제일 하단으로 스크롤한 후에 esp8266용 보드매니저를 최신버전으로 설치하면 된다.



이제 커스텀 펌웨어를 만들기위한 기본적인 준비는 끝났다. 




3. 펌웨어 소스 받기


커스텀 펌웨어를 만들기 위해서는 먼저 기본적인 ESPEasy의 소스가 필요하다. 소스는 아래의 ESPEasy 릴리즈 사이트에서 다운로드하면된다. 



먼저 원하는 릴리즈 버전을 선택한 후 아래 체크박스처럼 Source code(zip) 파일을 다운로드 하면 된다. 





소스 파일을 다운로드하면 적당한 위치로 옮긴 후 압축을 해제한다. 그리고 폴더에 들어가면 아래 처럼 src라는 폴더가 보인다. 





그러면 이 폴더의 이름을 ESPEasy 로 바꾼다. 이때 반드시 대소문자를 구분해서 써야한다.






다음으로 lib폴더로 이동한다.



lib폴더로 이동하면 펌웨어를 만드는데 필요한 라이버러리들이 있다. 이 라이버러리 폴더들을 모두 복사한다.





라이버러리를 복사한 후에는 아래 그림 처럼 아두이노의 libraries 폴더로 이동한 후 복사한 파일을 붙여넣기 해준다.






4. 원하는 추가 플러그인 다운로드 하기


이제 자신이 원하는 플러그인을 다운로드해야 하는데 아래 처럼 ESPEasyPluginPlayground 사이트를 이용하면 된다. 






 예를 들어 아래에 표시된 UV센서인 VEML6070을 추가하려면 _P213_VEML을 클릭하여 코드페이지로 이동한다.







그리고 아래 사진의 체크박스된 Raw를 클릭한다. 






Raw를 클릭하면 아래와 같이 텍스트형식의 페이지로 변하게된다. 그러면 화면에서 우클릭을 하여 다른이름으로 저장 하기를 누른다.





다른 이름으로 저장을 누르면 아래 처럼 다른이름으로 저장하는 창이 뜬다. 그러면 위에서 만들어둔 ESPEasy폴더로 이동하여 형식은 '모든 파일'로 선택하고, 파일이름은 뒤에 '.ino'를 붙여 '_213_VEML6060.ino'로 변경하여 저장한다.




파일을 저장한 후, 아래처럼 폴더에 파일이 생성되어있는지 확인한다.





5. 커스텀 펌웨어 컴파일하기



이제 아두이노 IDE를 이용하여 펌웨어를 컴파일 하면 모든 과정이 끝난다


먼저 위에서 받아놓은 소스코드의 ESPEasy폴더에 들어가서 ESPEasy.ino파일을 더블 클릭하여 실행한다. 







실행하면 아래 처럼 아두이노IDE가 실행된다. 그러면 상단 탭메뉴에서 아래화살표를 탭하여 더하기 메뉴를 불러온다.






아래에 체크박스에 표시된 ESPEasy-Globals.h 클릭하여 이동한다.



*참고로 아래로 이동하여 추가한 VEML6070이 리스트에 나오는지도 확인한다.





편집 메뉴에서 Go to line을 탭하거나 'Ctrl + l'을 눌러 실행창에 154를 입력후 '확인'을 클릭한다.






이곳에서는 펌웨어를 만들때 버전을 선택하는 곳이다. 커스텀 펌웨어로 원하는 플러그 인을 추가할때는 아래처럼 DEV버전으로 만들어 지도록 설정해야 한다. 


154라인으로 이동하면 아래 처럼 코드가 되어있는데 이를 

//build all the normal stable plugins (on by default)

#define PLUGIN_BUILD_NORMAL


//build all plugins that are in test stadium

//#define PLUGIN_BUILD_TESTING


//build all plugins that still are being developed and are broken or incomplete

//#define PLUGIN_BUILD_DEV



다음과 같이 수정한다.

//build all the normal stable plugins (on by default)

//#define PLUGIN_BUILD_NORMAL


//build all plugins that are in test stadium

//#define PLUGIN_BUILD_TESTING


//build all plugins that still are being developed and are broken or incomplete

#define PLUGIN_BUILD_DEV








컴파일하기 전에 먼저 자신이 만들 펌웨어를 적용할 보드를 설정해야 한다. 아래처럼 '툴'메뉴에서 자신이 사용할 보드와 플래시메모리 사이즈와 업로드 스피드, 포트등을 맞게 설정한다. 








이제 마지막으로 상단 '스케치'메뉴에서 '컴파일된 바이너리 내보내기'를 클릭한다. 물론 실제 보드가 컴퓨터에 연결되어있고 포트가 설정되어있으면 '업로드' 메뉴를 이용하여 바로 보드로 펌웨어를 업로드할 수도 있다.






별다른 에러 메세지 없이 아래와같이 컴파일 완료라는 메세지가 뜨면 정상적으로 펌웨어가 만들어 진 것이다.






이제 ESPEasy 폴더로 이동해보면 아래처럼 커스텀 펌웨어가 만들어진것을 확인할 수 있다. 




이렇게 만들어진 커스텀 펌웨어는 배포용 펌웨어에 포함된 FlashESP8266.exe 를 사용하여 배포용 펌웨어를 업로드하듯이 보드에 업로드할 수있다. 단 같은 폴더에 커스텀펌웨어파일이 함께 있어야 한다.

posted by ShinJjang 2018. 9. 11. 14:21

ESP모듈을 사용하다보면 펌웨어오류나 모듈 접속 암호를 잊어버리거나 등등... 으로 초기화 해야하는 경우가 있다.

이경우 esptool.py를 이용해서 초기화하면 된다.


1. Python 2.7설치하기 


먼저 링크로 이동하여 2.7.xx버전을 자신의 윈도우에 맞는 버전으로 설치한다. 




2. esptool 설치


설치후 윈도우의 명령 프롬프트 창을 아래와 같이 띄운후 esptool 을 설치한다.




상위폴더로 이동

C:\Users\Administrator>cd\


파이썬 scripts폴더로 이동

C:\>cd Python27\scripts


esptool 설치

C:\Python27\Scripts>pip install esptool



3. esptool을 이용하여 flash메모리 삭제하기


아래와 같이 삭제 명령어를 이용하여 플래쉬를 초기화 하면 끝이다.


esptool.py --port COM3 erase_flash





posted by ShinJjang 2018. 9. 4. 22:50

더운 여름이 이제 거의 지나갔지만 이번 여름은 정말 더웠던것 같다. 에어컨이 없으면 어떻게 했을까? 라는 생각을 이번 여름 내내 했다. 하지만 한편으로는 전기세 걱정때문에 틀고도 마음이 편하지 않았다.



그러다 ST까페에서 에어컨 실외기 수냉시키기 글을 보고 예전에 킥스타터에서 본 미스트 장치(아래)가 떠올랐다. 



댓글에도 링크가 있지만 미스트박스는 가격이 너무 비싸다. 그래서 '한번 만들어 보면 어떨까?' 생각하고 실행에 옮겼다. 





1. 미스트 장치 만들기



먼저 미스트 박스를 만들기 위해서 인공적으로 미스트를 만들어야하고 아래와 같은 장치가 필요하다.


     


미스트 장치 : 미스트 노즐과 펌프, 그리고 정수기용 호스와 이음관, 필터, 밸브 등등





그리고 미스트 장치를 컨트롤하기 위해 Wemos D1, 12V 파워서플라이, 5V 릴레이를 이용해서 아래와 같이 만들었다. 





그리고 아래 처럼 구성하였다. 20리터 물통에 첫번째 사진 처럼 장치를 하고 방수를 위해 하이박스에 펌프를 넣었다. 왼쪽은 침실용 미스트 장치 펌프이고 오른쪽은 거실용 미스트 장치 펌프이다.

 




그리고 미스트 노즐을 케이블 타이로 적절한 위치에 배치하였다. 

 


참고로 처음 3장의 사진은 2주전에 1차로 만들었을때 사진이다. 처음에는 노즐 6개로 만들었는데 이번에 12개로 업그레이드하였고 펌프도 60W에서 15W로 낮추어서 다시 만들었다. 노즐은 조금 작은것 같아 늘렸는데 12개는 너무 많은것 같다. 펌프는 60W는 너무 시끄럽고 출력이 높아서 15W로 낮추었는데 이것도 전혀 모자라지 않은것 같다. 





2. 미스트 장치 제어하기


미스트 장치를 만드는것도 중요하지만 제어하는것 또한 중요하다. 제어를 위해서 Wemos D1에 릴레이를 달아 ST에 연결하였다. 



아래 사진 처럼 ST에서 제어하기 위해 Wemos용 DTH를 만들어 등록했다.


DTH를 만들때 미스트 장치에서 미스트를 계속해서 뿌리는 것은 비효율적이라 작동할때 미스트 작동시간과 휴지 시간을 정할수 있도록 하였다.  그리고 ESPeasy를 이용해서 릴레이를 연결한 후 ESP의 IP주소와 릴레이에 연결된 Pin만 설정해주면 된다. 



또한 에어컨의 전원에 따라 미스트 장치가 작동하는 것이 아니라 실외기가 작동 할때만 미스트 장치가 작동하도록 해야한다. 



그래서 처음에는 도어센서를 이용해 실외기의 작동유무 판단하도록 했는데 아기나무집님의 미커넥터가 샤오미 AC Partner의 실시간 전력량을 리포팅하는 것을 이용해서 가상 스위치로 실외기(시각적 편의를 위해)를 만들었다. 그리고 난 후 Web Core를 통하여 실외기가 켜질때만 미스트 장치가 켜지도록 자동화 하였다.





아래 영상을 통해 확인해보면 알겠지만 실외기가 작동할때만 미스트 장치가 켜지고, 실외기가 작동하지 않으면 미스트 장치는 꺼지게된다. 영상에서는 중간에 리모컨을 이용하여 온도를 올려 실외기가 작동하지 않도록 하였다.




아래 영상은 미스트 장치가 작동하는 영상이다. (뒤쪽 공간이 부족하여 촬영 각도가 좋지 못함)






3. 실제 전기 에너지 사용 비교



무엇보다도 전기에너지 절감에 효과가 있는지가 가장 중요하다. 테스트 결과는 아래와 같다. 


먼저 실험실과 같은 통제된 환경에서 테스트되지 못하기 때문에 정확하지 않을수 있다. 

하지만 변인을 최소화하기 위해 외부 온도 변화가 적은 시간대와 방문을 통해 외부인(가족들)의 출입이 없는 시간대를 택했다. 



아래 두장의 사진을 통해 테스트 시간대에 실외와 실내의 온도변화 그래프이고 거의 변화가 없음을 알 수 있다. 




아래는 미스트 장치를 켜지 않았을때 에어컨의 전력 소비량그래프이다.



아래는 미스트 장치를 작동 시켰을때 에어컨의 소비전력량 그래프이다.



아래는 시각적으로 파악하기 쉽도록 포토샵을 이용하여 두개의 그래프를 중첩하였다. 



프로그램에서 구간의 소비전력량을 구해 주지 않기때문에 위의 그래프를 픽셀단위로 계산하여 면적값을 구하여 전력량을 비교하였다. 

면적값을 일일이 계산하고 더한 값을 종이에 적어두었는데(2주전에) 모르고 버려버렸다. 그래서 결과 값만 알고있다.



미스트 장치를 사용하지 않을때 전기 소비량을 100이라 하면


미스트 장치를 사용할때 전기 소비량은 80이었다.


하지만 미스트 장치(60W)를 사용함으로써 발생하는 전기 소비량이 2였다. 하지만 지금은 15W 펌프로 교체하였기 때문에 0.5로 줄었다. 



따라서 결론적으로 19.5%의 전기 에너지 절감효과가 있었다. 



미스트 박스에서는 20~30%의 에너지 절감효과를 볼수있다고 말한다. 실제로 실험 시간대가 새벽이고 물의 기화열 효과가 적은것을 감안하면 한 낮에는 더 큰 효과가 있을것이라 생각된다.


차후에 추가 테스트를 하게되면 결과를 추가하도록 하겠다.

posted by ShinJjang 2018. 5. 22. 17:11

종전에 스마트홈 까페에 올렸던 샤오미 커튼 DTH 이다. 


  •  오픈, 클로즈시 완료타이밍에 맞춰 정확하게 상태반영 인식
  •  수동으로 커튼 조작시에도 ST에 상태 반영
  •  홈킷에서 쉐이드로 인식하여 '열어', '닫아' 등의 명령으로 조작 가능
  •  ST와 홈킷 거의? 완벽 싱크
  •  커튼 열림정도를 1퍼센트 단위로 조절 가능
  •  현재 커튼의 열림상태에따라 Open, Partialy Open, Closed의 세가지 상태로 표시


Smartthings App








Smartthings App 작동영상 



Homekit 작동영상 



Smartthings App  & Homekit 




XiaomiCurtainDTH_V.1.1 (1).txt




posted by ShinJjang 2018. 5. 14. 23:51

이전 글에서 ESP8266을 이용해 CO2센서를 만들고 ST에 장치로 등록하고 Homebridge-Smartthings를 이용해서 Homekit에 등록하였다. 하지만 가끔 ST의 장치DTH에 runin함수 오류로 센서값을 불러오지 못하는 경우가 있는데 이 경우 당연히 홈킷에서도 그 값이 반영되지 않는다. 


 그래서 ESP8266에서 홈킷으로 바로 정보를 전달할 수있는 방법을 찾아보다 UDP-JSON플러그인을 알게되었다. 홈브릿지에서 UDP통신으로 올라오는 값들을 캐치해서 홈킷 장치에 그 값을 반영할 수 있게 해주는 플러그 인이다. 그래서 이 플러그인을 참조해서 센서별로 홈브릿지용 플러그인을 만들었다. 


아래 설명은 이전 글에서 ESP8266을 이용해 CO2센서를 만들가 수행되어있다는 가정하에 진행된다.



1. ESP Easy UDP설정하기


먼저 Controllers로 이동하여 Edit를 클릭하여 Protocol을 Generic UDP로 선택한 후 아래 처럼 세팅하면 된다. 




Locate Controller: Use IP address를 선택


Controller IP: 홈브릿지가 설치된 라즈베리 Pi나 시놀로지 나스의 로컬 IP입력(당연한 이야기지만 ESP8266이나 홈브릿지가 설치된 서버는 고정 IP로 설정후에 작업하는게 좋다)


Controller Port: 다른 장치들과 겹치지 않도록 UDP포트를 설정하면된다. 이 포트는 홈브릿지 Config파일과 설정이 같아야 한다. 


Controller Publish: 센서와 홈브릿지 플러그인별로 정형화된 형태로 그대로 넣어야 한다. 


  • CO2센서 



  • 조도 센서



  • 2. homebridge config.json파일 설정하기


    ESP Easy설정이 끝나면 먼저 config.json파일의 "accessories" 항목에 아래와 같이 추가하면 된다. 센서별로 추가하면 되며 현재는 CO2센서, 조도센서, 온습도센서에 대한 플러그인만 있으며 아래와 같이 설정하면 된다. 



    • CO2센서 

    "name": 원하는 장치명 설정 - 필수 설정


    "temperatureOn": true이면 온도 장치를 홈킷에 추가, false이면 추가하지 않음 - 선택 설정(기본 true)


    "carbonDioxideSet": 홈킷에서 이산화탄소 비정상 경고메세지 기준 농도값 설정 - 선택 설정(기본 1200)


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다. - 선택 설정(기본 8268)


     

    "accessories": [

    {

    "accessory": "ESPCO2",

    "name": "Jusensor",

    }

    ]


    OR


    "accessories": [

    {

    "accessory": "ESPCO2",

    "name": "Jusensor",

    "temperatureOn": false,

    "carbonDioxideSet": 1300,

    "listen_port": 8267

    }

    ]




  • 조도 센서
  • 조도 센서는 별다른 설정을 할 필요는 없다. 


    "name": 원하는 장치명 설정  - 필수 설정


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다.  - 선택 설정(기본 8269)


    "accessories": [

    {

    "accessory": "ESPLUX",

    "name": "Julux"

    }

    ]



  • 온습도 센서
  • 조도 센서는 별다른 설정을 할 필요는 없다. 


    "name": 원하는 장치명 설정  - 필수 설정


    "listen_port": UDP통신 포트 설정값으로 ESP Easy의 설정과 같아야 한다.  - 선택 설정(기본 8266)


    "accessories": [

    {

    "accessory": "ESPTH",

    "name": "ESPSen"

    }

    ]



    3. 홈브릿지 플러그인 설치하기


    도커를 이용할 경우

    install.sh 파일(플러그인 설치 주소 파일)에 아래의 주소를 추가하면 된다. 


  • CO2 센서
  • npm install -g shin4299/homebridge-esp-co2


  • 조도 센서
  • npm install -g shin4299/homebridge-esp-lux


  • 온습도 센서
  • npm install -g shin4299/homebridge-esp-th



    라즈베리 파이를 이용할 경우

    아래의 주소를 이용하여 설치하면된다. 라즈베리의 경우 직접해보지 않아 정확하지 않음


  • CO2
     센서
  • npm install -g https://github.com/shin4299/homebridge-esp-co2


  • 조도 센서
  • npm install -g https://github.com/shin4299/homebridge-esp-lux


  • 온습도 센서
  • npm install -g https://github.com/shin4299/homebridge-esp-th




    4. Homekit 적용 화면


    홈킷에 적용하면 아래와 같이 장치가 등록된다. 


    posted by ShinJjang 2018. 5. 1. 00:15

    ESPCO2_DTH.txt

    0. 시작하기 전에


    ESP8266을 이용하여 처음 만든건 이산화탄소 농도 측정기이다. 


     사실 Netatmo를 사용하여 이산화탄소농도를 측정해보기 전에는 이산화탄소농도에 대해 중요하게 생각하지 않았다. 

    (Netatmo에 대한 자세한 내용은 Makelism님의 글을 참조하면 좋다)



     왜냐하면 우리집은 단독 주택이고 침실에는 4짝으로된 아주 큰 창이 있고 창문을 닫아도 틈이 생각보다 많기 때문에 이산화탄소 농도가 높지 않을것이라고 생각했다. 하지만 Netatmo를 처음 설치하고 내 생각이 아주 잘못되었음을 알게되었다. 


    대기중의 이산화탄소농도는 400ppm정도인데 이산화탄소 농도에 따라 아래와 같은 신체 영향을 유발할 수 있다고 한다. 


    농도(ppm)

    영   향

    ~450

      건강한 환기 관리가 된 레벨

    ~700

      장시간 있어도 건강에 문제가 없는 실내 레벨

    ~1000

      건강 피해는 없지만 불쾌감을 느끼는 사람이 있는 레벨

    ~2000

      졸림을 느끼는 등 컨디션 변화가 나오는 레벨

    ~3000

      어깨 결림이나 두통을 느끼는 사람이 있는 등 건강 피해가 생기기 시작하는 레벨

    3000~

      두통, 현기증 등의 증상이 나오고, 장시간으로는 건강을 해치는 레벨

    *우리나라의 경우 실내환기조건을 1000ppm으로 권고하고 있음


     실제로 침실을 장시간 비웠을때 400ppm 초반으로 낮아지는데 밤에 퇴근후 아내와 함께 방으로 들어가면 창문을 닫아 놓을 경우 불과 30분이면 1200ppm을 넘어서고 잠시후면 1500ppm을 넘어선다. 


     종전에 자고 일어나면 머리가 아픈경우가 종종있고 자고 일어나도 피곤함이 계속 남아있는 느낌이 많았는데 그것이 이산화탄소 농도때문이라고는 전혀 상상하지 못했다. Netatmo를 통해 환기의 중요성을 알고는 창문을 10Cm~20Cm는 항상 열어 놓는다. 그렇게 하면 침실의 이산화탄소 농도가 800ppm내외로 유지된다. 하지만 조금있으면 여름이라 다른 대안을 마련중이다.


     아무튼 실내의 이산화탄소농도를 적절하게 유지하는것은 요즘 이슈가 되는 미세먼지 만큼 중요하다. 그래서 아이들 방에도 이산화탄소 센서를 두고 싶은 마음에 Netatmo 추가 모듈을 구입할까 고민했지만 가격도 비싸고($79-약 9만원/+배송비) 연결성의 문제때문에 고민하고 있다 ST까페의 af님의 글을 통해 ESP8266으로 직접 만들어 보기로 했다. 



    아래의 내용을 따르기 전에 먼저 이전에 작성된 아래의 두 글의 내용을 알고 있거나 선행하여야 한다.

    ESP8266으로 IOT 시작하기 1 - 필요한것들

    ESP8266으로 IOT 시작하기 2 -ESP Easy 설치하기



    ST용 센서를 만들기 위한 전체적인 과정은 처음 접하면 어려워 보이지만 사실 아주 간단하다. 좀더 이해를 돕기 위해 전체과정을 요약해보면 다음과 같아. 


    ESP8266에 펌웨어설치 - ESP Easy 설정 - ESP8266에 센서연결 - ST에 DTH설치 및 장치생성 - STapp에서 장치 연결




    1. ESP Easy 디바이스 설정하기 


    ESP Easy를 이용하면 펌웨어에서 지원하는 장치들은 아주 쉽게 연결하고 사용할 수 있다. ESP Easy에 접속하여 Device항목에서 장치를 선택하면 아래 사진 처럼 장치 이름 옆에 "?"가 있고 "?"를 클릭하면 해당 장치와 연결방법등 자세한 내용을 확인할 수 있다. 



    1-1. 이산화탄소 센서 설정하기


    먼저 이산화탄소 센서를 연결하기 위한 정보를 확인해 보자. Device에서 Gases-CO2 MH-Z19를 선택하면 아래와 같은 화면을 볼수있다.

    그럼 위와 같이 설정을 한다. 1st GPIO와 2nd GPIO는 아래 센서의 TX, RX와 연결할 핀을 선택하는 부분이다. 위 처럼 선택하면 된다. 그리고 아래 이산화탄소 센서의 Tx, Rx부분에 연결하면 된다.  

    아래로 스크롤하여 아래부분 처럼 설정하면된다. 


    참고로 Formula부분은 센서의 값을 보정하는 수식을 넣을수 있는 곳이다. 예를 들어 이산화탄소농도가 대기중에 노출했을때 450ppm이 나온다면 이값을 0.9를 곱하거나 50을 빼서 400ppm으로 맞추어 줄수있다. 




    1-2. 조도 센서 설정하기


    이산화탄소외에 조도센서도 필요하여 조도센서도 연결하였다. 조도센서가 있다면 아래와 같이 설정하면 된다. 



    조도 센서의 경우 작동 전압이 3.3V이기 때문에 
    VCC는 ESP8266의 3.3V 핀에 연결하고 
    GND는 ESP8266의 GND핀에 연결하면 된다. 그리고 
    SCL은 ESP8266의 D1핀에 연결하고
    SDA는 ESP8266의 D2핀에 연결하면 된다. 



    위와 같이 설정하고 Close를 누르고 나오면 아래와 같이 두개의 장치가 등록된 화면을 볼 수 있다. 




    2. 브레드보드에 ESP와 센서 연결하기 


     브레드보드를 이용하여 ESP8266과 장치를 연결하기위한 가장 흔한 방법은 점프 선을 이용하는 것이다. 점프선은 보통 이전 글에서 소개한 두종류가 가장 많이 쓰이는데 조도센서와 이산화탄소는 서로 다른 점프선을 이용하여 연결하여 보았다.


     브레드보드는 아래 첫번째 사진의 설명처럼 가로 5칸이 서로 연결되어있다. 그래서 같은 5칸안에 핀이 꽂히면 점프선을 이용하여 연결해 줄 필요가 없다. 하지만 대부분 다른 곳에 연결되기 때문에 점프선을 이용하여 아래처럼 연결해주어야한다. 

      

     위 사진처럼 조도 센서를 연결하는데 사용한 점프선의 경우 장치를 연결하기 전에 핀번호를 확인하고 미리 꽂아서 사용하는데 깔끔하게 설치할 수 있는 장점이 있다.


      

     아래 사진처럼 이산화탄소센서를 연결한 점프선은 공간을 많이 차지하지만 장치를 미리 배치한 후에 핀을 연결할 수 있기때문에 설치하기가 편한 장점이 있다. 


      



     아래처럼 ESP8266에 OLED 디스플레이를 연결하여 센서에서 측정된 값이나 할당 받은 IP주소등을 직접확인 할 수도 있다. 아니면 LED를 이용하여 특정 농도이상일때 점등하여 상태를 표시할수도 있다.





    3. ST와 연결하기



    3-1. ST IDE사이트에 장치 추가하기


     ST와 연결은 첨부된 DTH를 다운로드하여 IDE사이트에 추가한 후 아래처럼 My Device항목에서 원하는 이름으로 장치를 추가해주면 된다. 




    3-2. ST app에서 ESP8266 연결하기


    IDE사이트에서 추가한 장치에 들어가면 아래와 같은 화면을 볼 수 있다. 그럼 우측 상단의 톱니모양의 설정 버튼을 누르면 오른쪽 화면이 나오는데 여기서 ESP8266이 할당받은 IP주소(192.168.31.81)을 입력하고 CO2업데이트 주기를 설정해준다음 Save를 눌러준다. 




    설정해주면 아래처럼 측정값들을 ST에서 불러오는 것을 확인할 수 있다.



    4. 기성 제품과 비교하기 


    4-1. Netatmo와 ESP8266의 이산화탄소 측정결과 비교


     두 말할 필요가 없다. 아래 비교 결과를 보자.  같은 시간대에 어플에 표시된 수치를 비교한 것이다. 평균적으로 ESP8266용 이산화탄소 센서의 농도가 조금더 높다. 어느값이 더 정확한지는 알수가 없다. ㅠㅠ 그리고 ESP8266의 경우 측정값을 임의로 보정해 줄수 있다.




    아래의 그래프는 측정값을 그래프로 비교한 것이다. 시각적으로 좀더 비교가 쉬울것 같다. ESP8266의 경우 데이터를 Ubitos에 업로드하여 그래프로 시각화한 것이고 Netatmo의 경우 아이폰에서 가로모드로 변경하였을때 제공하는 그래프를 여러장 캡쳐하여 포토샵을 이용하여 붙인 후 두개의 그래프를 겹친것이다.


    사실 어떤 장치가 더 정확한지 알수는 없지만 농도의 증가와 감소를 비교해보면, 그리고 나와 아내의 출입 시간등을 고려해보면 둘다 높은 신뢰도를 보여주는 것으로 유추할 수 있다. 



    4-2. 조도 센서 비교하기


     사실 Smartthings를 사용하면 다양한 센서류를 사용가능하다는 장점이 있지만 사실 만족스러운 조도센서를 찾기는 쉽지않다. 왜냐하면 첫째는 리포팅 주기이다. 대부분 조도센서를 포함한 장치들이 조도 리포팅 주기가 빠르지 않은 경우가 많거나 미세한 변화에는 수치가 바뀌지 않거나 리포팅하지 않는 경우가 대부분이다. 


     그리고 두번째는 조도 센서를 이용하여 자동화 하려다 포기한 이유이기도 한데, 바로 저조도에서 분별력이 없다는 것이었다. 

     조금 어두우면 조도값이 무조건 '0'이다. 그래서 휴 취침등이 켜져있으나 꺼져있으나 조도값이 '0'이기 때문에 자동화 자체가 불가능하다. 그럼 ESP8266의 조도 센서는 어떨까? 그래서 에이온 멀티센서의 조도값과 비교해보았다. 비교환경은 아래 사진처럼 침대 헤드보드 위, 휴 벌브 아래에 위치 시켜 휴의 밝기에 따라 변화되는 값을 측정해 보았다. 조도 센서는 최대한 비슷한 위치에 두고 테스트 하였다.




    그 결과는 아래 사진을 보면 바로 비교가 될것 같다. 결론 부터 말하면 저조도에서의 분별력은 기성제품보다 훨씬 뛰어나다. 




    아래는 휴에서 밝기가 가장 낮은 상태이며 사진은 실제 눈으로 봤을때보다 약간 밝은? 거의 비슷한 정도이다. 에이온 센서의 경우 벌써 조도가 '0'이지만 ESP센서의 경우 3.4lux값이다. 


    아래 사진은 방에 모든 등이 꺼진 상태이며 맞은편 벽에 TV가 켜져 있는 상태이다. 에이온은 '0'이지만 ESP센서의 경우 '0.9'의 값으로 빛을 감지한다. 


    위의 상태에서 손으로 ESP센서부위를 1Cm정도 위에서 덮으면 조도값이 '0'으로 바뀐다. 




    5. 홈킷과 연동


    당연히 homebridge-smartthings를 이용하여 홈킷과 연동이 가능하도록 DTH를 만들었다. 홈킷에서는 CO2센서, 온도센서, 조도센서의 3가지 장치로 표시된다. 


    홈킷에서는 1200ppm이상이면 경고알림이 뜬다. 




    6. 알아야할 것 들


    1. ESP8266은 상당히 안정적으로 작동한다. 하지만 WiFi기반이기 때문에 WiFi네트워크에 문제가 있거나 연결이 끊어지면 ST에서 정보를 가져올 수 없다. 


    2. ESP8266에서 ST로 정보를 보내는 방식이 안정적이고 좋으나 내가 그 정도의 실력이 되지 않아 현재는 ST에서 ESP8266의 json값을 가져와 상태를 반영하는 방식이다. 그런데 ST의 DTH의 시간 함수 run이 정상적으로 작동하지 않을때가 있는데 그러면 데이터를 가져오지 않을수도 있다.그때는 refresh를 해주어야 한다. 물론 이런 경우는 아주 드물긴하다. 


    3. 이산화탄소 센서는 캘리브레이션(보정)이 필요하다. (co2meter.com참조)


    3-1. 신선한 야외공기에 장시간 노출하여 이 때값이 400ppm이 되도록 보정하는 방법

    이는 주1회나 월1회 정도 신선한 공기에 노출하여 보정해주면 된다.


    3-2. ABC (Automatic Baseline Calibration)을 이용하는 방법

     이는 위의 ESP Easy의 이산화탄소센서 설정페이지의 ABC항목에서 선택해주면 된다.

    ABC방법은 일반적인 가정 처럼 주기적으로 사람이 없어서 센서가 이산화탄소 농도가 400ppm 인 신선한 공기에 노출된다는 가정하에 센서가 스스로 보정하는 방식이다. 이 방식은 며칠에 한번씩 신선한 공기에 노출된다는 전제하에 별다른 교정이 필요하지 않다.


    4. 이산화탄소 농도를 아는것도 중요하지만 농도를 낮추는 방법이 더 중요하다.

    이산화탄소 농도가 실내공기질을 평가하는 중요한 요소중의 하나지만 농도가 높을때 낮추는 방법은 일반가정에서는 실외공기를 유입하는 방법이 유일한 방법이다. 


     하지만 창문을 열어 환기를 시키는 것은 또 다른 공기질 저하를 가져온다. 거주지의 주변환경에 따라 다르겠지만 가장 큰 것은 미세먼지이다. 요즘은 꽃가루도 한몫한다. 


    그래서 가장 좋은 방법은 전열교환기를 이용하여 필터링된 외부 공기를 실내 공기와 교환해주는 것이다. 최근에 지어진 아파트들은 대부분 전열교환기가 설치되어있는데 많은 사람들이 어떤 용도인지 모르거나 전기가 든다는 이유로 사용하지 않는 경우가 대부분이다. 


    나처럼 전열교환기가 설치되어있지 않은 노후한 단독주택은 사실 창문을 여는 방법외에는 딱히 방법이 없다. 그러던 차에 ST까페의 플루님께서 샤오미 공기청정기를 이용해서 외부공기를 필터링하여 유입하는 DIY 도구를 소개해 주셔서 구매를 했는데 기대만큼 효과가 있었으면 좋겠다.


     


    7. 다음 프로젝트


    위의 장치들을 이용하여 아이들방에 놓을수 있도록 케이스를 만드는것과 아이들이 시각적으로 알수있게 하는것이다. 

    posted by ShinJjang 2018. 4. 29. 17:47

    이글은 저처럼 ESP8266초보들을 위한 글입니다.^^;



    1. ESP8266용 컴퓨터 드라이버 설치하기


    ESP8266이 도착하면 가장 먼저해야하는것은 컴퓨터에 연결해서 원하는 펌웨어를 업로드하는 것이다. 


     1편에서 소개한 Wemos D1 mini나 Node MCU는 Micro USB단자가 있어 바로 컴퓨터에 연결이 가능하다. 하지만 케이블을 이용해 처음 컴퓨터에 연결하면 아무런 반응이 없다. 왜냐하면 기본적인 하드웨어 드라이버가 설치되어있지 않기 때문이다.


     물론 기존에 드라이버가 설치되어있거나 ESP8266시리즈 중에 자체적으로 드라이버를 담고 있는 제품도 있기때문에 USB to Serial로 바로 잡힐 수도 있다. 하지만 대부분의 경우 드라이버를 먼저 설치해 줘야 한다. 아래는 드라이버를 다운로드 할수있는 주소 링크이다. 


    for Wemose D1 mini


    for Node MCU


    ESP8266의 종류와 운영체제에 맞게 각각의 드라이버를 다운로드하여 설치한 후에 연결하면 장치관리자에서 아래 사진 처럼 포트 목록에 USB-SERIAL 로 잡히게된다. 이때 반드시 몇번 COM포트에 연결되어있는지 기억해야 한다. 




    2. ESP Easy 펌웨어 설치하기


    드라이버 설치가 정상적으로 끝나고 위 사진 처럼 COM포트로 정상적으로 연결되면 이제 끝난거나 다름없다. 

    이제 몇번 클릭만 하면 ESP Easy 펌웨어를 설치할 수 있기 때문이다. 


    먼저 아래 사이트로 이동하여 아래 사진에 체크된 최신 펌웨어 zip파일을 다운로드 하면 된다. 


    ESP Easy Release site





    다운로드를 완료한 후 압축을 풀면 아래와 같은 파일들이 있다. 



    위의 파일들 중에 먼저 우리가 업로드할 펌웨어는 

    ESP_Easy_mega-20180429_normal_ESP8266_4096.bin 파일이다. 


    파일은 크게 개발자용(dev), 테스트용(test), 안정화용(normal)로 나뉘어지고, 다시 ESP8266의 메모리용량이나 종류에 따라 세부적으로 나뉘어진다. 우리가 일반적으로 사용하는 Wemos D1 mini나 NodeMCU의 경우는 파일명 뒤에 ESP8266_4096인 파일을 사용하면 된다. 


    1. 먼저 FlashESP8266.exe를 더블 클릭하여 실행 


    2. 아래와 같은 화면이 뜨는데 장치관리자에서 확인한 컴포트번호를 선택하고 업로드하고자 하는 펌웨어를 선택


    3. Flash를 클릭하면 아래와 같은 진행화면이 보여진다. 


    4. 완료가 되면 아래와 같이 메세지가 뜬다.


    5. Micro USB단자를 ESP8266에서 제거하고 재연결하여 재부팅을 해준다.



    3. ESP8266 WiFi 설정하기

    이제 펌웨어 업로드는 끝이 났고 ESP8266을 사용하기 위한 간단한 WiFi설정을하고 ESP Easy페이지에 접속해보자.


    1. 먼저 재부팅 하는 동안 휴대폰으로 WiFi연결에서 AP를 검색한다. 


    그럼 아래 처럼 ESP_Easy_0이라는 AP가 보이는데 여기에 접속하면 된다. 


    초기 암호는 configesp 이다. 


     



    2. WiFi 설정하기 

    보통 ESP_Easy_0이라는 AP에 연결되면 바로 WiFi를 설정할수있는 setup화면이 뜨는데 간혹 뜨지 않으면 폰의 브라우저를 이용하여 192.168.4.1에 접속하면 아래와 같이 WiFi설정화면을 볼수있다. 


    아래 화면에서 자신의 AP를 선택하고 하단에 Password를 입력하고 연결을 누른다. 

       


     연결을 누르면 좌측과 같은 화면이 뜨고 조금더 기다린 후에 AP에 정상적으로 연결이 되면 우측 처럼 할당 받은 IP주소가 뜨게되는데 반드시 캡쳐하거나 주소를 기록해두도록 한다.


    참고로 자신의 공유기 설정항목으로 들어가 ESP에 고정 IP를 할당하도록 하는것이 좋다. 그래야 재부팅되었을때 접속하는데 어려움이 없기때문이다.

       




    4. ESP Easy화면에 접속하기 


     위의 마지막 화면에서 표시된 할당받은 ip주소를 컴퓨터나 폰의 브라우저 주소창에 입력한 후 접속하면 아래와 같은 화면을 볼수있다. 


     그럼 먼저 Config화면으로 이동하자.



    config 화면으로 이동하면 unit name과 number를 바꿔주자. ESP8266이 하나이면 상관없지만 두개 이상일 경우 네트워크 접속에 문제가 생길수 있기 때문이다. 


    그래서 아래처럼 자신이 원하는 이름과 넘버로 설정해준 후 하단의 submit단추를 클릭해준다. 


    사진에는 없지만 공유기가 아니라 여기서도 고정IP를 설정할 수 있도록 되어있다. 하지만 공유기에서 해주는 것이 더 안정적이다. 




    이제 WiFi접속 유무를 ESP8266의 LED를 통해 알수있도록 설정해보자. 아래 처럼 Hardware항목으로 이동한 후 Wifi Status LED 항목을 아래처럼 수정한 후 submit단추를 클릭해보자.



    그럼 아래 우측 사진과 같이 Wemos D1 mini의 LED에 파란 불이 들어오는 것을 확인할 수 있다.


      




    이제 IOT 장치를 만들기위한 기본적인 설정이 끝이 났다. 이제 자신이 만들고자 하는 장치들을 연결하여 테스트를 하고 원하는 IOT허브에 연결하여 자신의 IOT환경에 추가하면 된다. 그 과정은 다음편에서 설명하도록 하겠다.



    참고로 ESP Easy에 대한 자세한 설명들은 아래 wiki페이지를 통해 알 수 있다.


    ESP Easy WiKi Site


    ESP Easy에서 지원하는 장치 목록

    현재 지원하는 장치목록이며 현재 테스트 중인 장치들까지 합치면 목록의 두배정도 된다.


    posted by ShinJjang 2018. 4. 28. 21:50

    아두이노나 ESP8266을 인터넷을 통해 접하긴 했지만 개발자들이나 쓰는 거라 생각했고 나와는 먼 이야기라고 생각했다. 

    그러던차에 ST까페에서 af님의 글을 통해서 나의 IOT환경에 접목할 수도 있겠다라는 생각을 하게 되었다. 


    ESP8266을 처음 접하는 사람들은 아마 나 처럼 보통사람들이 다루는 물건이 아니라고 생각할지도 모른다. 물론 틀린 말은 아니다. 하지만 제한된 범위안에서 이긴 하지만 많은것들을 할수있다. 그것도 아주 저렴한 비용으로 말이다. 


    ESP8266의 장점

    1. 상상하는 모든 IOT가 가능하다. 물론 능력이 필요하다.
    2. 정말 저렴한 비용으로 생각을 현실로 만들수 있다.
    3. 많은 개발자들이 만들어 놓은 예제가 있다.
    4. 연동가능한 장치가 무수히 많다.


    위와 같은 기대를 안고 ESP를 구매한지 한달이 훨씬 넘었지만 아직 제대로 할 수 있는게 없다. 프로그램 언어를 모르는 나같은 사람에겐 그림의 떡이다. 그래도 정말 다행인건 나 같은 사람들도 쉽게 쓸수있도록 만들어 놓은 펌웨어가 있다는 것이다.


    하지만 처음 ESP8266을 접할때 더 난감한건 어떤 제품을 사야하냐는 것이다. ESP8266으로 검색했을때 너무 많은 제품이 나오기 때문에 어떤것을 구매하는 것이 옳은지 알기가 쉽지 않다. 


    ESP8266은 크게 ESP-01, ESP-12, ESP-32로 구분되는 것 같다. 그중에 가장 흔하게 쓰이는 것은 ESP-12시리즈 이고 ESP-32는 블루투스 통신도 가능하다. 자세한 것은 다음 링크를 참조하면 된다.


    나는 시험 삼아 세 가지 시리즈에 해당하는 제품을 모두 구매하였는데 결론적으로 나 같은 초보에게 가장 좋은 선택은 ESP8266 12E 기반의 Wemos D1 mini였고 두번째가 Node MCU 였다. 이유는 누구나 쉽게 사용할수 있도록 개발된 펌웨어인 ESP Easy가 ESP8266 12E 기반으로 만들어졌기 때문이다. 


        

    Wemos D1 mini                                                                            Node MCU



    ESP8266을 사용하기 위해 기본적으로 필요한 것들


    ESP8266을 사용하거나 테스트하기 위해서 위에서 말한 ESP8266외에 몇가지 기본적으로 필요한 것들이 있다.


    1. 브레드보드(Bread board, 빵판)

    위에서 보는것 처럼 ESP8266은 칩형태로 되어있기 때문에 기판에 납땜을 하여 사용하거나 점프케이블을 이용해서 연결해야한다. ESP8266으로 원하는 형태로 만들기위해서는 정형화하기 전에 테스트 과정을 거쳐야하는데 이때 ESP8266을 외부전원이나 장치들과 유동적으로 쉽게 연결가능하게 해주는 것이 베이스가 되는 브레드보드이다. 

     

    크기에 따라 여러 종류의 브레드 보드가 있다.



    2. 점프 케이블

    브레드 보드에서 ESP8266의 핀들과 다른 장치의 핀을 연결해 주는 역할을 하는 점프 케이블이 필요하다. 

    점프 케이블도 일반적으로 아래와 같이 2종류가 있다. 

     




    3. 전원장치

    브레드 보드에 전원을 공급해주는 장치이다. Wemos D1 mini나 NodeMCU의 경우 micro USB를 통해 보드에 전원을 공급하고 장치에 전원을 공급할수있는 핀이 따로 있기 때문에 따로 전원장치가 필요없어도 된다. 하지만 하나의 ESP8266에 여러개의 외부장치나 고전력의 외부장치를 연결하게되면 ESP8266가 다운되거나 외부장치가 제대로 작동하지 않을수 있기 때문에 외부전원을 가지고 있는것이 좋다. 

       

    위 사진의 전원장치는 DC6.5~12V 전원을 이용하는 브레드보드 전용 전원장치로 우측 사진처럼 브레드보드 양쪽에 5V전원과 3.3V전원을 각각 공급해준다. 


    아래 사진의 전원장치는 AC전원을 이용해 우측사진처럼 5V전원과 3.3V전원을 공급해주며 테스트환경이 아니라 실제 ESP8266과 각종 장치들을 이용하여 기판에 제품화할때 사용가능하다. 물론 점프를 이용하여 브레드보드에도 전원공급이 가능하다.


    그 외에는 각자가 만들고자하는 장치에 따라 필요한것 들을 구매하면 된다. 









    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