IoT/Arduino

[Wemos D1] 1. WiFi 연결하는 법

반나무 2020. 6. 29. 11:39

Wemos D1 보드를 통해 WiFi를 연결하는법을 알기위해 수 많은 정보의 바다를 뒤졌고

거기있는 많은정보들을 다 보니 이해하기가 너무어려웠기에 단계별로 글을 작성하려고합니다.

 

그 정보들을 잘 조합해서 합쳤고 아주아주 기초 초보자들을위해 주석도 달고 만들었습니다.

 

우선 이 글은 아두이노에서 WiFi를 사용하기위해선 ESP8266 모듈을 사용하는데

 

이 모듈이 내장되어있는 보드중 Wemos D1에 대한 설명입니다.

 

 

이 글의 순서는 

1. WiFi연결하는법

2. Thinkspeak에 data 올리는법

3. 그 data를 앱인벤터 APP으로 받아오는법

4. 앱인벤터에서 아두이노로 WiFi를 통해 값을 변환시키는 법(저의 경우는 서보모터를 움직였습니다)

5. 토양수분센서 사용법(간단하게)

 

총 4가지 단계로 움직일 예정입니다.

 

 

다 만들면 이런 구조로 만들어지게 됩니다. 

 

우선 setup() 전 기본 선언입니다.

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "WIFI아이디"
#define STAPSK "WiFi비밀번호"

// 연결할 WiFi id, pw
const char* ssid     = STASSID;
const char* password = STAPSK;
const char* server = "api.thingspeak.com";

// WiFiClient를 선언한다.
WiFiClient client;

// WiFiServer 포트선언
WiFiServer webServer(80);

// 자신의 thingspeak 채널의 API key 선언
String apiKey = "본인의 API키 입력";

void setup() {
  Serial.begin(115200);

  // WiFi연결
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);  

  // WiFi 연결이 되지않을때 ... 재연결
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected"); // WiFi 연결 성공!

  // 웹 서버 start
  webServer.begin();
  Serial.println("Web server running. Waiting for the ESP IP...");

  // IP 주소 출력
  Serial.println(WiFi.localIP());

}

 

1 : 와이파이를 사용하기위해 기본선언을 해줍니다.

3~5 : 아이디와 비밀번호값을 따로 넣어주실꺼라면 필요는 없는 부분입니다. 편하게 코딩하기위해 넣어줬습니다.

 

8~10 : 미리 선언해둔 ID와 PW를 변수에 넣어줍니다.

11 : thingspeak주소값을 server변수에 넣어줍니다. ( 여기선 2개의 서버와 2개의 클라이언트가 나오니 햇갈리지않게 조심해주세요) 

 

13 : WiFi 클라이언트를 선언합니다 ( thingspeak에 접속하는 클라이언트입니다)

 

16 : WiFiServer를 선언합니다 ( 아두이노내부에서 값 전달 및 변경을 위한 웹서버입니다. 포트는 웹이기때문에 기본포트 80을 사용했습니다)

 

19 : thingSpeak apiKey를 따로 변수로 등록해줍니다.

 

22 : Wemos D1 보드의 기본 시리얼 속도는 115200입니다.

 

24~30 : 위의 WiFi아이디와 비밀번호로 와이파이를 연결합니다.

(저는 편하게 핫스팟을 사용했습니다)

 

31~37 : WiFI연결이 잘 되지 않을 때 재연결을 기다리는 부분입니다.

 

40~41 : 웹서버를 시작합니다.

 

44 : 서버 연결 후 연결된 IP 주소 출력합니다.


와이파이가 연결되면 

와이파이가 연결됐다고 나오면서 현재 연결중인 와이파이의 IP주소를 출력해줍니다.

반응형