GPIO 번호와 nodemcu에서 사용하는 핀 번호는 서로 다르다. 매핑은 아래 표를 참조한다. (빌드 20141219 이후부터)
IO index | ESP8266 pin | IO index | ESP8266 pin |
---|---|---|---|
0 [*] | GPIO16 | 8 | GPIO15 |
1 | GPIO5 | 9 | GPIO3 |
2 | GPIO4 | 10 | GPIO1 |
3 | GPIO0 | 11 | GPIO9 |
4 | GPIO2 | 12 | GPIO10 |
5 | GPIO14 | ||
6 | GPIO12 | ||
7 | GPIO13 |
맨 오른쪽 파란색 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 전원을 쓸 수 있게 보드 아래쪽에 레귤레이터를 붙일 수 있는 패드도 들어있음)
댓글 없음:
댓글 쓰기