드디어 WeMos D1 mini가 왔습니다. 오래 걸렸네요.


이렇게 생겼습니다. 사진이 흔들려서 보기 힘든데 저는 핀이 납땜 안된 걸로 구매해서 따로 해 줄 예정입니다.



가로 2cm 세로 3cm 정도로 매우 작은데 아두이노 우노+esp8266 와이파이가 합쳐진 성능이라 꽤 쓸만해 보입니다. 물론 아직 안 써 봤습니다만 ^^;;


그래도 크기가 작다는게 꽤 강점으로 생각되네요.


세부 스펙은 https://wiki.wemos.cc/products:d1:d1_mini 여기서 찾아보시면 되겠습니다.


일단 스케치랑 연결해서 테스트를 해보기로 했습니다.


위의 사이트의 설명대로 드라이버를 설치하고 스케치에 설정을 해봅니다. (https://wiki.wemos.cc/tutorials:get_started:get_started_in_arduino)


1. ch340 드라이버를 설치합니다. (실제 파일은 ch341로 되어있네요. 업데이트 되었나?)


2. 스케치를 열고 다음의 순서에 맞게 설정을 해 줍니다.


(1) 환경설정을 열고 추가적인 보드 매니저 url을 입력하고 확인을 눌러 줍니다.

(http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json)

(2019.04.11 링크가 바뀌었습니다. https://github.com/esp8266/Arduino/releases/download/2.5.0/package_esp8266com_index.json)



(2) 스케치 메뉴에서 툴>보드...>보드 매니저를 열어서 esp로 검색을 하면 설치 가능한 esp8266 관련 보드가 나옵니다. 설치해 줍니다.



(3) 설치가 끝나면 스케치 메뉴에서 툴>보드..에 가보면 방금 설치한 ESP8266 모듈 보드들이 여러 개 나옵니다. 그 중에서 WeMos D1 R2 & mini를 선택해줍니다.



3. WeMos D1 mini와 컴퓨터를 연결하면 스케치에서 연결된 WeMos D1 mini를 확인할 수 있습니다.


로 생각하고 있었는데 연결이 안되네요. 장치 관리자에서도 찾아볼 수가 없고요.


일단 좌절하고 뭐가 문제인지 검색을 해보고 하다가 혹시나 싶어서 usb 케이블을 바꿔 보았더니 그제서야 아무 일도 없었다는 듯이 짜짠하고 나타나더라는...


제대로 연결되면 위와 같이 스케치에서도 확인이 가능하고 아래와 같이 장치 관리자에서도 보이게 됩니다.



혹시나 연결에 문제가 있을 때는 일단 케이블부터 바꿔보세요.


처음에 썼던 usb 케이블은 충전만 되는 케이블이었던 걸로 보입니다. 핸드폰에도 꽂아봐도 PC에서 연결이 안되더라고요. 케이블은 좋은 걸로...


이제 연결이 되었으니 업로드 스피드를 115200으로 바꿔주고 빈 스케치를 업로드 해 봅니다.

(업로드 스피드는 그냥 임의로 바꾼 겁니다. 잘 안되면 이렇게 저렇게 바꿔보면 된다고 하네요.)




잘 되는 것 같습니다.


더 확실한 확인을 위해 빌트인 LED를 깜박여 봅시다. 스펙을 확인해보면 WeMos D1 mini의 빌트인 LED의 핀은 D4 입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int LED = 4;
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("setup() START");
  
  pinMode(LED, OUTPUT);
}
 
void loop() {
  // put your main code here, to run repeatedly:
 
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}
cs


작성하고 업로드 해봤더니 안되네요. 시리얼 모니터에도 이런 것만...



일단 이건 보드레이트가 달라서 생기는 문제니 업로드 스피드를 9600으로 바꿔줍니다.


그랬더니 아예 업로드에서 에러가 나네요.



다시 업로드 스피드를 115200으로 바꾸고, 소스의 Serial의 속도를 115200으로 바꿉니다.


다시 업로드를 해보니 업로드도 문제없고 시리얼 모니터에도 글자가 제대로 찍힙니다. 근데 LED가 깜박이질 않네요.


핀 번호를 숫자로 입력하지 말고, BUILTIN_LED 로 바꿔봅니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int LED = BUILTIN_LED;
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("setup() START");
  
  pinMode(LED, OUTPUT);
}
 
void loop() {
  // put your main code here, to run repeatedly:
 
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}
cs


드디어 WeMos D1 mini 보드의 LED가 깜박입니다! 어렵게 어렵게 테스트를 마쳤네요.


그런데 핀 번호를 숫자로 입력해주면 왜 안되었던 걸까요? 아두이노 우노 보드에서는 되었던 거 같은데 말이죠...


그건 좀 더 확인해보고 다음 번에 올리겠습니다.


>> ps. 이렇게 해도 되네요. 숫자가 아니고 스펙에 나온대로 해야되는 건지...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int LED = D4;
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("setup() START");
  
  pinMode(LED, OUTPUT);
}
 
void loop() {
  // put your main code here, to run repeatedly:
 
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}
cs


>> ps2. int LED = 2; 이렇게 해도 됩니다.

PinFunctionESP-8266 Pin
TXTXDTXD
RXRXDRXD
A0Analog input, max 3.3V inputA0
D0IOGPIO16
D1IO, SCLGPIO5
D2IO, SDAGPIO4
D3IO, 10k Pull-upGPIO0
D4IO, 10k Pull-up, BUILTIN_LEDGPIO2
D5IO, SCKGPIO14
D6IO, MISOGPIO12
D7IO, MOSIGPIO13
D8IO, 10k Pull-down, SSGPIO15
GGroundGND
5V5V-
3V33.3V3.3V
RSTResetRST


WeMos D1 mini 의 핀 정보가 위와 같은데(https://wiki.wemos.cc/products:d1:d1_mini#pin), 우측의 ESP-8266 Pin 번호를 쓰니까 아두이노 때처럼 되네요.


GPIO 핀 번호를 사용하면 되는 거였네요.


>> ps3. GPIO?


여기를 참고했습니다. (https://opentutorials.org/module/2106/12245)


General Purpose Input/Ouput
마이크로 컨트롤러의 핀을 입력 또는 출력 용도로 사용할 수 있게 하는 기능
출력 모드로 설정하면 이 핀을 통해서 우리는 자유자재로 0V 혹은 5V 출력을 낼 수 있으며, 

입력 모드로 설정하면 이 핀으로 들어오는 전압이 0V인지 5V인지 판단을 할 수 있다고 합니다.

+ Recent posts