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 전원을 쓸 수 있게 보드 아래쪽에 레귤레이터를 붙일 수 있는 패드도 들어있음)






댓글 없음:

댓글 쓰기