개발 노트

[Arduino] WeMos D1&R2

j4ko 2022. 7. 27. 17:39
728x90
반응형

개요

Arduino를 사용하게 되면서 무선 네트워크 연결을 테스트할 일이 생겼는데 이에 대한 과정을 기술한 내용이다. 테스트에 사용한 Arduino 보드는 Wemos D1 보드로서 ESP8266 칩셋이 내장된 보드이다.

 

ESP8266 칩셋

ESP8266은 Arduino에서 무선 네트워크 연결 시 사용하는 칩이다. ESP-01로도 알려져 있다. 무선 네트워크라고 말하니 조금 어려워 보이는데 쉽게 Arduino에서 WiFi 연결시 사용하는 칩이라고 이해하자

 

전원 연결 시 주의..

테스트 중에 어떤 5핀 usb는 Desktop과 아두이노를 연결해주지 못한다는 사실을 알게되었다. Desktop과 아두이노 연결에 실패한 5핀 usb는 RaspBerry Pi에서 사용하던 선인데 왜 그런지는 알아내지 못했다.

 

ESP8266 라이브러리 설치

Arduino Sketch 에서 파일 > 환경설정 부분에 추가적인 보드 매니저 URLs 에 아래 url 입력

http://arduino.esp8266.com/stable/package_esp8266com_index.json

이후 툴 > 보드:Arduino Uno > 보드 매니저 를 선택하고 타입을 Contributed로 선택 후 esp8266 설치

 

COM 인식 실패시 드라이버를 따로 설치해줘야 할 수 있음

마이크로 5핀 usb가 usb2.0 에서 동작하기 떄문에 Desktop 과 Arduino가 물리적으로 연결되었어도 Desktop에서 인식에 실패할 수 있다 그러니 Driver를 따로 설치해주자.

Download link: https://www.wemos.cc/en/latest/ch340_driver.html

 

CH340 Driver — WEMOS documentation

Note For Mac OSX 10.14 and greater, do not install any supplimentary drivers. The drivers are now included with OSX. Installing the CH340 will cause a conflict and you will not be able to connect.

www.wemos.cc

 

Arduino Sketch에서 Arduino 보드 선택할 때

Arduino Sketch IDE에서 보드를 선택할 때 Wemos 를 선택하는 글들이 많은데 내가 다운로드 받은 1.8.57.0 버전에서는 해당 보드에 대한 선택 메뉴가 없어서 찾아보니 다음과 같이 선택하면 되었다.

ESP8266 라이브러리를 설치 후 보드 옵션에 ESP8266 3.0.2 에서 LOLIN(WEMOS D1 R2 & mini”를 선택하자

Reference: https://forum.arduino.cc/t/wemos-d1-mini-no-wemos-d1-r2-mini-option-in-arduino-ide/604600

 

Wemos D1 mini - No "Wemos D1 R2 & mini" option in Arduino IDE

So, I have a Wemos D1 mini board and everything works fine, but there is a little strange thing going on. I downloaded the board managers and libraries and according to the tutorials, there should be a "Wemos D1 R2 & mini" option to select the board, like

forum.arduino.cc

 

Source: Arduino WiFi 연결하기

이후 아래 소스를 아두이노에 업로드하면 시리얼 모니터를 통해 Arduino가 할당받은 IP를 얻을 수 있다.

#include <ESP8266WiFi.h>

const char *ssid = "YOUR_SSID";
const char *password = "YOUR_WIFI_PASSWORD";

void setup()
{
    Serial.begin(115200);
    Serial.println("Booting");

    WiFi.mode(WIFI_STA); // WiFI를 Station 모드로 동작하게 함
    WiFi.begin(ssid, password);
    WiFi.setHostname("TestESP8266"); // 아두이노의 HostName 지정

    while (WiFi.status() != WL_CONNECTED) // WiFi가 연결될 때까지 연결을 시도함
    {
        delay(500);
        Serial.print("");
    }

    Serial.println("WiFi Connected");
    Serial.println("WiFi address");
    Serial.println(WiFi.localIP());
}

void loop()
{
    Serial.println(WiFi.getHostname());
}

 

728x90
반응형