레이블이 nodemcu flasher인 게시물을 표시합니다. 모든 게시물 표시
레이블이 nodemcu flasher인 게시물을 표시합니다. 모든 게시물 표시

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를 사용해 테스트 보드의 각종 기능들을 테스트 해 보도록 하겠다.