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. 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과 각종 장치들을 이용하여 기판에 제품화할때 사용가능하다. 물론 점프를 이용하여 브레드보드에도 전원공급이 가능하다.


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