레이블이 esp8266 test board인 게시물을 표시합니다. 모든 게시물 표시
레이블이 esp8266 test board인 게시물을 표시합니다. 모든 게시물 표시

2015년 4월 10일 금요일

ESP8266 모듈/보드들 (Various kinds of ESP8266 module/board)

ESP8266을 사용해 보려면 여러 종류의 모듈들이 나와 있다.

가장 먼저 나온게 ESP-01(보통 ESP8266 모듈이라고 하면 이걸 말함)인데 시리얼 핀 이외에 GPIO핀이 연결된게 몇개 없어 Wifi-to-Serial 모듈 이외 용도로 사용하기는 좀 불편(?)하다. 

그래서 그 후 GPIO핀이 패드로 많이 나와 있는 모듈들이 나왔다. ESP-12/07같은 모듈이다.





핀헤더 소켓을 땜질할 수 있는 스루홀까지 가지고 있는 센스 덕에 사용하기 편리하다. 

하지만 핀 피치가 일반적으로 만능기판이나 빵판에 사용되는 2.54mm가 아니라 헤더소켓을 뗌질해도 바로 꼽을 수가 없는 단점이 있다. 그래서 이런 컨버젼 기판도 판매되고 있다.




기판 뒤쪽에 땜질은 되어 있지 않지만 3.3V 레귤레이터를 붙일 수 있는 패드까지 나와 있어 레귤레이터를 붙이면 5V에도 바로 사용할 수 있게 되어 있다.

Aliexpress에서 구매하면 ESP-12 모듈이 개당 $2.6~3 정도, 컨버젼 기판은 개당 $1 이하로 구매 가능하다. 

그리고 땜질도 귀찮고 어짜피 실험하려면 빵판에 꼽은 다음 LED라도 연결해야 하는데 그것도 싫으면 이런 테스트 모듈도 판매되고 있다. (대략 $5~6정도)





각 GPIO핀에 LED가 연결되어 있고 3핀에는 PWM 테스트용으로 컬러LED도 연결되어 있다. 그리고 ADC 테스트용 CDS(조도센서)도 붙어있고, 배터리 소켓도 같이 들어있어 AA배터리 3개를 넣어주면 저 자체로 독립적인 센서 모듈로 사용할수도 있다.

ESP8266에 대한 소개는 http://arsviator.blogspot.kr/2015/01/iot-esp8266.html, 테스트 보드에 대한 상세한 사항은 http://arsviator.blogspot.kr/2015/03/esp8266-test-board.html 를 참고하면 된다.

2015년 3월 7일 토요일

ESP8266 Test board #2

이전 포스트에서 테스트보드의 펌웨어를 nodemcu로 바꿨으면 이제 USB2Serial 케이블을 이용해 PC와 연결한 후 시리얼 터미널 프로그램을 실행시킨다. (통신속도는 펌웨어 빌드 버젼에 따라 다를 수 있음. 하지만 115200 아니면 9600 둘중의 하나임)



GPIO 번호와 nodemcu에서 사용하는 핀 번호는 서로 다르다. 매핑은 아래 표를 참조한다. (빌드 20141219 이후부터)

IO indexESP8266 pinIO indexESP8266 pin
0 [*]GPIO168GPIO15
1GPIO59GPIO3
2GPIO410GPIO1
3GPIO011GPIO9
4GPIO212GPIO10
5GPIO14
6GPIO12
7GPIO13
즉 테스트 보드에 붙어있는 LED들은 다음과 같이 배치되어 있다.


맨 오른쪽 파란색 LED는 전원을 나타내는 LED로 전원이 공급되면 항상 켜저 있다.

가장 먼저 Pin3에 연결된 LED를 켜 본다. (단 LED들은 active Low로 연결되어 있으므로 LOW일때 켜지고 HIGH일때 꺼진다.)

> gpio.mode(3, gpio.OUTPUT)
> gpio.write(3, gpio.LOW)
> print (gpio.read(3))
0
>

다음은 PWM을 사용해 COLOR LED를 제어해본다.

> pwm.setup(6, 500, 512)
> pwm.setup(7, 500, 512)
> pwm.setup(8, 500, 512)
> pwm.start(6)
> pwm.start(7)
> pwm.start(8)
> function cled(r,g,b)
>>  pwm.setduty(6,g)
>>  pwm.setduty(7,b)
>>  pwm.setduty(8,r)
>> end
> cled(512,0,0)
> cled(0,512,0)
> cled(0,0,512)
>

위의 명령을 넣어보면 cled(...)를 호출할 때 마다 color LED의 색이 바뀌는걸 확인할 수 있다.
핀0(GPIO16)만 제외하면 나머지 핀은 모두 PWM을 사용할 수 있다. 


좌측의 CDS (광센서)는 ADC에 연결되어 있다. adc.read(0)로 현재 전압값을 읽을 수 있다. 단 analog신호의 전압 범위는 0~3.3V가 아니고 0~1V이다. (왜 이렇게 했는지 이해할 수 없지만...)

> print (adc.read(0))
3
> prnit (adc.read(0))
0
> prnit (adc.read(0))
25

CDS를 밝게, 또는 손가락으로 막아 어둡게 하면서 위의 명령을 반복적으로 실행해보면 출력값이 바뀌는걸 확인할 수 있다.

여기까지 테스트 보드로 확인해 볼 수 있는 간단한 것들을 테스트 해 보았다. nodemcu 사이트에서 좀 더 다양한 예제 코드들을 구할 수 있다. 

1-wire, i2c, timer, uart, ws2812등의 모듈도 같이 포함되어 있으므로 이 테스트 보드만으로도 아두이노등의 추가 보드 없이도 매우 다양한 Wifi IoT 노드를 구현할 수 있다.

-----------

ESP8266을 테스트 할 때는 위의 태스트보드가 편하지만 실제 작품을 만들 때는 필요없는 부품이 많고 크기가 클 수 있다. Aliexpress를 찾아보면 아래와 같이 ESP8266을 브레드보드에서 사용하거나 케이블을 연결하기 편하도록 만든 기판을 싸게 구입할 수 있다. (5V 전원을 쓸 수 있게 보드 아래쪽에 레귤레이터를 붙일 수 있는 패드도 들어있음)






2015년 3월 6일 금요일

ESP8266 Test board

ESP8266을 쉽게 사용해 볼 수 있게 ESP12 모듈에 각 핀들을 헤더로 뽑아놓고 LED, 센서를 붙여 GPIO, PWM, ADC, UART를 바로 테스트 해 볼수 있는 보드를 구할 수 있다.


PCB 위에 핀 이름이 써 있는것도 편리한데 다만 사진의 아래쪽 3핀 헤더에 TXD, RXD가 꺼꾸로 쓰여 있다. 즉 PC와 연결할 때 USB2Serial의 TXD를 테스트보드의 (3핀 헤더에 있는) TXD에, RXD를 (3핀 헤더에 있는) RXD에 연결해 줘야만 한다. (물론 오른쪽 상단의 8핀 헤더에 연결하는 경우는 USB2Serial의 TXD는 RXD에, RXD는 TXD에 연결해야 한다)


PC에 연결해 테스트하기 편하게 아래와 같이 케이블을 땜질했다.


ESP8266 모듈은 +3.3V를 사용해야만 하지만 이 보드의 경우 3핀 헤더 옆에 레귤레이터로 7333-1이 붙어 있기 때문에 5V를 사용할 수 있는게 편리하다.

이제 편하게 테스트를 하기 위해 펌웨어를 nodemcu로 바꿔준다. 펌웨어를 플래쉬에 기록할 때는 점퍼가 연결되어 있어야 한다.


nodemcu 펌웨어를 준비한 후, nodemcu flasher 로 펌웨어를 업데이트 해 준다.


Nodemcu flasher를 실행해서 Config 탭을 클릭한다. 여기서 펌웨어 파일을 선택하고 기록할 위치를 지정한다.


설정이 끝났으면 Operation 탭으로 돌아와서 시리얼 포트를 지정한다.


시리얼 포트를 선택한 후 Flash(F) 버튼을 누르면 펌웨어 업데이트를 시작한다. 업데이트가 시작되면 AP MAC과 STA MAC 부분에 Waiting MAC 대신 ESP8266의 MAC 주소가 표시된다. 그리고 업데이트가 끝나면 맨 아래쪽 NODEMCU TEAM이란 글자의 왼쪽에 녹색 체크표시가 나타난다.
그럼 프로그램을 종료하고 테스트 보드를 PC에서 분리한 다음 펌웨어 업데이트를 위해 연결해 놓은 점퍼를 뺀 후 다시 PC에 연결하고 시리얼 터미널을 오픈하면 이제부터 ESP8266에 설치된 LUA를 사용할 수 있다.

다음 포스트(ESP8266 Test board #2)에서는 lua를 사용해 테스트 보드의 각종 기능들을 테스트 해 보도록 하겠다.