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)을 사용해야 한다. LM8805F 3.3 등. 국내에서 쉽게 구할수 있는 이런 레귤레이터가 있으면 참 좋을텐데....(혹시 국내에서 이런거 구할방법 아시는분 알려주시면 감사하겠습니다.)

필요한 선들을 납땜했다.
오른쪽 왼쪽선들은 그냥 점퍼선이고 아래 선2개는 집에 굴러다니던 3.3v 어댑터에서 꼬다리 자른 것이다.

뒷면. 저항은 gpio2와 vcc사이에 붙는 pull-up 저항이다. esp8266이 정상적으로 작동하려면 이게 있는게 좋다.















이제 이걸 pc와 연결하려면 ftdi라는게 필요하다. 정확한 명칭은 usb-ttl어댑터.

이게 원래 5v로 돌아가는건데(usb가 5v다), esp8266은 3.3v짜리라. 3.3v로 연결할 수 있는놈을 사는게 좋다.

잘안보이겠지만 글쓴이가 산 놈은 아래쪽에 점퍼가 있어서 3.3v와 5v를 선택할 수 있게 되어있다.

이런게 없는놈은 전압 맞춰주기 위해서 저항을 달거나 level shifter란걸 또 끼워야 되는데...그냥3.3v선택되는걸로 사자





ftdi와esp-12s 사이에 vcc, gnd, tx, rx(tx, rx는 esp-12s의 tx, rx와 ftdi의 tx, rx를 교차로 연결해야한다)를 연결해주고, gpio0을 gnd에 연결해주고 ftdi를 컴퓨터 usb에 꽂으면 된다.
연결하는 거는 점퍼선을 사서 쓰면 편하다. 점퍼선은 암암-숫암-숫숫을 모두 적당량 사두는게 편하다.

이 상태에서 ftdi를 컴퓨터 usb에 꽂으면 드라이버가 자동으로 설치된다(windows 10의 경우, 그이하버전의 경우 드라이버 따로 다운받아서 설치 필요).


여기서 espeasy 펌웨어를 다운받는다. mega안붙은걸 받는게좋다. mega는 개발중버전이라 뭐가 어찌될지 모르는거다.

flashesp8266.exe 를 실행해서(다운받은 압축파일에 들어있다) com 포트를 맞춰주고(장치관리자에 가면 ftdi보드의 com포트가 나온다), 펌웨어는 'ESP_Easy_v2.0-201*****_normal_ESP8266_4096'를 선택한다(201*****부분은 펌웨어 릴리즈 날짜에 따라 달라질수있다).. 사실 아무거나 하나 올리고나면 OTA로(그러니까 wifi로) 다른 펌웨어 올릴수 있어서 첨엔 대충 아무거나 넣어도 되기는 한다.

flash버튼 누르면..납땜과 연결이 모두 정상적이라면 퍼센트 올라가고 완료 메시지가 나온다. 그럼 espeasy펌웨어가 설치된것이다.

이제 tx, rx는 더이상 필요가 없으니 분리하고, 전원도 분리한다.

이제 별도의 3.3v 전원공급장치를 통해서 전원을 별도로 공급하는 것이 좋다(컴퓨터-ftdi통한 전원으로는 제대로 작동하지 않거나, 중간에 오동작할 가능성이 높다).

이상태에서 GP0을 10k저항을 통해서 vcc로 연결해주고, 전원을 다시 넣는다.

정상적인 상태라면, 이상태에서 핸드폰이나 노트북 와이파이 검색할때 espeasy_0 이런 유사한 ssid가 보여야 한다. 안보이면 뭔가 문제가 생긴것이다.......

이 ssid에 접속하면 암호를 물어볼텐데 초기암호는 configme이다. 웰컴 화면이 나오면 거기서 바로  공유기 wifi선택하고 암호입력하면 되고, 아니면 http://192.168.4.1로 가서 공유기 와이파이 암호를 입력해준다.

이러면 esp-12s칩이 알아서 공유기 와이파이에 접속하고, ip를 띄워 준다. 이걸 적어놓으면 좋다(이걸 모르면 와이파이관리자모드에서 ip를 다시 찾아야한다).

이제 노트북/핸드폰으로 위 ip에 접속하면 espeasy 설정화면이 나온다.

여기까지하면 기본세팅 완료


그런데 이단계에서 납땜안해도 되는 물건이 도착했다.......알리가 이렇지 뭐

이놈의 정식명칭은NodeMCU.

esp8266+ftdi+5v->3.3v레귤레이터+알파가 붙어있는 녀석이다. 납땜질안하고 선다 연결해서 쓸수있다(아래 금속이 튀어나와있는 시커먼 놈들을 핀헤더라고 하는데, 점퍼선가져다 꽂으면 딱 맞게 되어있다).

오른쪽에 있는게 micro-usb단자라 저기다 핸드폰충전기 선 꽂으면 바로 전원들어오고....여러가지로 편하다.

위에거 다 잊어버리고 이거 사서쓰자.



2. esp8266에 올릴 펌웨어 준비

위에서 본것처럼 espeasy를 올리면된다. ftdi생략하고 컴퓨터에 바로 usb꽂으면된다.



3. espeasy 설정
이제 espeasy를 설정한다. 공유기에서 espeasy ip로 확인한후 크롬이나 익스플로러로 접속하면된다.
config 탭에서 아래와 같이 설정한다. name은 마음에 드는 이름으로 하면된다. unit_number는 가급적 1이상으로. admin_password는 알아서 잊지 않을 암호로.
wifi세팅은 따로 건드리지 말자.























댓글

이 블로그의 인기 게시물

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

Home Assitant 설치(2)

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