5월, 2018의 게시물 표시

ESP8266, espeasy, HA, MQTT, 센서를 이용하여 실내공기질을 측정하자(3)-미세먼지

이미지
3. pms7003   알리 에서 구매 약 20,000원  가. 하드웨어연결 pms7003 선 연결은 작고 네모난 모양의 커넥터를 사용한다. 보통 핀헤더로 연결하는 점퍼는 안들어가고, 사진과 같이 생긴 어댑터보드가 필요하다. 위 링크는 센서+어댑터로 구성되어있다. 어댑터빼고 싸게 파는것도 있는데 이거는 다른특별한 수단 있는거 아님 사지말자. 심히 고생한다(고 한다). 주의할점은 이 어댑터를 끼우는 방향이다. 케이블 나오는 쪽이 센서 아래로 가도록 꽂아야 한다. 반대로 꽂으면 핀연결이 달라진다. 다른핀은 큰문제가 아닐수 있는데 5v가 set에 붙는 관계로 모듈에 문제가 생길수 있다(set은 3.3v로 신호 받게 되어있다) pms7003도 전원은 5v로 공급받고 통신은 3.3v로 하는 센서이다. 센서에는 각인이 안되어있는데 어댑터보드에는 각인이 되어있으니 연결이 편하다. 저 보드를 꽂고, 케이블 중간을 잘라서 적당히 해체한다음에 필요한 곳에 연결하면된다. 아니면 하네스커텍터 10핀(아마도 이런거 )짜리를 사서 이어도 되는데 그럼 또 납땜하고 더 복잡해질수도 있다. Function: Pin PMS7003 ESP8266 VCC 1 or 2 5V GND 3 or 4 GND TX 9 1st GPIO specified in Device-settings Set 10 free gpio Reset 5 3rd GPIO specified in Device-settings nodemcu의 경우 5v는 vin이라는 이름으로 있다. tx는 빈 gpio에 연결하면 espeasy에서 설정할 수 있다. set도 마찬가지. reset도 마찬가지이긴한데, reset은 꼭 필요아지 않은 것으로 보인다. esp8266의 gpio는 생각보다 많지 않기 때문에 다른센서 연결...

ESP8266, espeasy, HA, MQTT를 이용하자(0)

이미지
사물인터넷과 HA를 esp8266에 올린 espeasy를 이용해 mqtt방식으로 연결해보자. 1. 하드웨어 준비 원래는 가급적 납땜과 커맨드라인 명령을 안쓰는 방법으로 해보려고 하였던 것인데...납떔을 피할수 있는 물건이 배송이 늦어지는 바람에 일단 납땜 하되 싸고 작은 방법으로 작업을 시작했다. ESP-12s 는 이렇게 생겼다. 보면알겠지만 이건 납땜안하면 전원도 못넣는다. 컴퓨터랑 연결은 당연히 안된다. 최소한 전원넣고 펌웨어 작업하려면 7개 납땜해야되고, 실제로 쓰려면 여기다 1-2개 더 납떔해야된다. 참고로 ESP-12e는 납떔하는부분에 구멍이 있어서 그나마 납땜이 쉬운데 ESP-12s는 구멍도 없어서 납떔이 정말어렵다. 납떔 전문가 아니면 12s는 자제하자. 모르고 사서 납떔하느라 고생했다. 여기까지 하고 이건 아니다 싶어서 다른방법을 찾았다. esp-12e adapter plate 라는걸 사면 그나마 좀 납땜이 편하다. GPIO15에 풀다운저항, EN에 풀업저항도 붙어있다. 뒷면에는 5->3.3 LDO regulator(5v입력받아서 3.3v입력으로 바꿔주는 칩)을 붙일수 있는 부분도 있다. 이 경우 어댑터 플레이트의 아래 가운데 붙은 0옴 저항을 제거해야한다. 일반적으로 많이 쓰는 ams1117은 사용못하고(pitout 이 다르다), 핀아웃이 맞는것(왼쪽부터 GND,VIN, VOUT)을 사용해야 한다. L M8805F 3.3  등. 국내에서 쉽게 구할수 있는 이런 레귤레이터가 있으면 참 좋을텐데....(혹시 국내에서 이런거 구할방법 아시는분 알려주시면 감사하겠습니다.) 필요한 선들을 납땜했다. 오른쪽 왼쪽선들은 그냥 점퍼선이고 아래 선2개는 집에 굴러다니던 3.3v 어댑터에서 꼬다리 자른 것이다. 뒷면. 저항은 gpio2와 vcc사이에 붙는 pull-up 저항이다. esp8266이 정상적으로 작동하려면 이게 있는게 좋다. 이제 이걸 pc와 연결하려면...

ESP8266, espeasy, HA, MQTT, 센서를 이용하여 실내공기질을 측정하자(2)-온습도, 이산화탄소

이미지
센서가 온 순서대로 진행중. 1. espeasy mqtt 설정  espeasy에 접속해서 이렇게 설정해준다. constoller ip는 mqtt broker가 설치된 라즈베리파이가 있는 ip이다. user, passwd는 모스키토 설치하면서 만든 것을 사용해야한다. 포트, subscribe, publish는 건드리지 말자. 1-2. HA에서 mqtt설정 HA에서 mqtt설정을 하지 않았다면 아래 설정을 configuration.yaml에 추가해준다. mqtt: broker: 192.168.29.180 port: 1883 client_id: homeassistant-1 username: !secret mqtt_user password : !secret mqtt_passwd 브로커는 라즈베리파이가 있는 ip로 바꿔준다. secret.yaml에 mqtt_user와 mqtt_passwd를 설정해준다. 모스키토 설정하면서 만든 사용자이름과 암호를 사용하면된다. 2. dht11  사용결과 dht11은 너무 오차가 커서 온습도 측정의 의미가 없는 것으로 보인다. bme280으로 교체예정 dht11의 가장 큰 장점은 가격(천원 전후, 알리에서 대량구매하면 몇백원 수준)이지만, 정확도가 매우 떨어진다. 2. dht11 연결   가. 하드웨어연결 이 그림을 참고해서 이놈을 esp8266에 연결한다. nodemcu라면 암-암 점퍼선을 사용하면 편하다(나중에 완성되면 글루건이나 납땜으로 안빠지게 고정해야된다) 그림을 참조해서 vcc는 nodemcu의 3.3v 또는 esp12의 vcc에, gnd는 gnd에, data는 빈 GPIO에 연결한다(글쓴이는 GPIO14(d5) 사용) 그리고 dht11의 data와 vcc 사이를 4.9k 저항으로 연결해줘야 한다. 빵판없으면 좀 귀찮은데 납땜해야할수도 있다. 나. espeasy 설정 espeasy의 device창에서 위 그...

ESP8266, espeasy, HA, MQTT, 센서를 이용하여 실내공기질을 측정하자(1)

실내공기질은 크게 미세먼지(pm10, pm2.5), 이산화탄소농도, 포름알데이드 농도(또는 종합 VOC농도), 총부유세균, 일산화탄소 농도  를 종합하여 평가한다. 여기다 참고를 위해 온도, 습도, 기압을 측정하는 센서를 espeasy를 이용해서 돌리고, mqtt를 이용해 ha로 보내서 iot 사용에 편리를 도모해보고자 한다. 1. espeasy 준비 (다른글 참조) 2. ha 준비 (다른글 참조) 3. 센서 준비 가. 온습도 센서 dht11 이란걸 사용할 예정. 싸기때문에...더 좋은센서도 많으니 좋은걸 찾아보자. 배송비 절약차 국내에서 다른 잡재료 사면서 같이 샀다. 하나 1,100원. 알리에서 잘하면 개당 몇백원으로 살수있다. 나. 미세먼지 센서 pms7003 을 사용할 예정 알리에서 21,500원 다. co2센서 mh-z19 를 사용할 예정. 알리에서 25,000원 라. co센서 보통 mq-7이란걸 사용한다. 그런데 이놈이 보정을 제대로 안해주면 값이 제대로 안나온다고 한다. 그렇다고 보정할 능력이 되는것도 아니고, 자동보정되는센서는 너무비싸다. 일단 보류 마. 기압센서 일단 보류. bme680이나 bmp280을 고려중. 온습도 센서도 같이 패키징되어있다. bme680은 거기다 공기질지수란게 더 포함.되어있기는한데.. 바. 포름알데이드 또는 voc센서 정보수집중. bme680으로 떄울까 싶기도 하고.. 사. 부유세균 정보수집중. 필요한 센서와 그 연결에 필요한 점퍼선 등 잡자재를 준비한다.

HA 설정기(3)

http://cafe.naver.com/amazonecho/3544 http://cafe.naver.com/amazonecho/3541 http://cafe.naver.com/amazonecho/2576 2558 https://www.home-assistant.io/components/sensor.dht/ https://www.home-assistant.io/docs/ecosystem/certificates/tls_self_signed_certificate/ sudo su -s /bin/bash homeassistant https://www.splitbrain.org/blog/2017-08/10-homeassistant_duckdns_letsencrypt https://github.com/home-assistant/hassbian-scripts/blob/dev/docs/duckdns.md http://www.routereflector.com/2016/10/exposing-home-assistant-in-a-secure-way/ sudo hassbian-config install mosquitto mqtt:   broker: 192.168.29.180   port: 1883   client_id: homeassistant-1   username: !secret mqtt_user   password : !secret mqtt_passwd

Home Assitant 설치(2)

이미지
HW 준비가 다되었다면 1.  hassbian 이미지를 다운받는다(라즈베리파이용으로 나온 debian(라즈비안)에 Home Assitant 설치툴이 포함되어있다). 2.링크에서 다운로드받은 해스비안 이미지를 Etcher 를 이용해서 Micro SD에 저장한다. 3. Microsd를 라즈베리에 삽입하고, 라즈베리에 랜선을 꼽고 전원선을 연결한다. 대충 아래사진에서 왼쪽부분은 없는 형태가 된다. 4. 자동으로 라즈베리에 HA가 설치된다(겉보기엔 아무반응없는것 같아도 열심히 일하고있다). 5. 약 10분이상 걸린다. SSH로 라즈베리의 ip에 접속해본다(윈도우라면 putty 사용, IP는 공유기 관리자페이지에서 확인가능하다). login 아이디는 pi, 암호는 raspberry이다. 여기서 접속이 안되면....뭔가 문제가 생긴것이다. 30분정도 더기다려보고 안되면 1.부터 다시해보자. 그래도 안되면........ 6. 보안을 위해 암호를 바꿔준다. sudo passwd pi 7. 라즈비안을 최신버전으로 업데이트한다. sudo hassbian-config upgrade hassbian sudo reboot 8. 재시작 후 SSH를 다시 접속해서(바뀐암호로 접속해야한다), HA를 최신버전으로 업데이트한다. sudo hassbian-config upgrade homeassistant sudo reboot 9. 시간대와 wifi 국가를 설정해주자. sudo raspi-config   4. localisation Options --  2. select time zone  --    Asia -- Seoul   4. localisation Options --  4. Change Wi-fi Country - KR korea(south) 10. vi나 nano를 익숙하게 쓰는 사람이라면 상관없지만, 그렇지 않다면 윈도우에서 설정파일을 편집...

공기질센서 참고

https://cdn.hackaday.io/files/21912937483008/Thomas_Portable_Air_Quality.pdf 공대 졸업논문이네그려

ESP8266, espeasy, HA, MQTT를 이용하여 에어컨 자동화하기(1)

이미지
제일 비싸고 편한 방법은 IOT붙은 에어컨을 새로 사면된다. 근데 에어컨을 이렇게 막 바꾸는 집은 잘 없고...10년된 에어컨도 잘돌아가는데 굳이 바꾸기도 뭐하고..수십만원 쓰기엔(iot 붙은 에어컨이 이정도는 더 비싸게 나오는것같다) 아까운 사람들도 많을것이다. 이런사람들을 위해 다른 방법으로 싸게(약 6천원 + 많은 시간) 에어컨 자동화할 수 있는 방법이다. 1. esp8266 준비 이전글 참고 글쓴이는 에어컨 옆에 쉽게 붙이기 위해서 ESP-12S+adapter plate를 사용하였다. 마침 남는 3.3v 어댑터도 하나 있고 해서. 2. esp8266에 올릴 펌웨어 준비 기본적으로는 espeasy 를 사용한다 다만 적외선관련해서 문제가 있는데..espeasy 최근 정식릴리즈(2.0)에는 에어컨관련해서 가장 중요한 irremoteesp8266이라는 라이브러리가 매우 구버전으로 들어가있어서 그대로 사용이 안된다. 그런관계로 espeasy에서 저 라이브러리를 최신버전으로 바꿔주고, 관련된 플러그인을 좀 손봐줘야 한다. 이부분은 나중에 글을 따로 쓰던지 하겠다. 여기 다 쓰기엔 너무 길고 복잡하다. 포인트는 라이브러리 최신버전 업글, lg 에어컨의 경우 타이밍 손봐주기이다(저 라이브라리 그대로 쓰면 신호 받는건 되는데 보내는게 안먹더라). 2018. 7. 17.수정. irremoteesp8266에서 lg 에어컨 타이밍 안받는 부분은 수정되어 그대로 사용가능하다. 이제 espeasy에서 최신라이브러리로 업데이트만 해주면좋겠다. 또한, espeasy 중 _p35_IRTX.ino 플러그인을 조금 수정해서 함수를 하나 추가해줘야 한다. 여기 글쓴이가 작업해놓은 소스가 있으니 필요하면 컴파일해서 사용할 수 있다(github 첨써보는거라 이렇게 하는게 맞는지 모르겠다...혹시 잘아시는분 있으면 정리해주시면 더 좋겠다) 이미 espeasy 다른버전을 올려두었다면 tools-firmware-load에서 올려주면 유...