본문 바로가기
Arduino(아두이노) IoT 키트 강좌

Arduino Uno 호환 Wemos D1 Wifi Board 와 DHT11 온습도 센서를 사용해서 웹으로 실내 온습도 확인해 보기

by 오마이엔지니어 2018. 2. 19.
반응형

Arduino Uno 호환 Wemos D1 Wifi Board 와 DHT11 온습도 센서를 사용해서

웹으로 실내 온습도를 확인해 보는 프로젝트 입니다

Arduino Uno 호환 WeMos D1 Wifi Board 의 초기 세팅법과 사용방법에 대해서 알아보고
간단한 웹서버 테스트를 해보도록 하겠습니다


WeMos D1 Wifi Board 는 ESP8266(ESP-12E) 기반의 아두이노 우노와 호환 가능한 Wifi Board 입니다
아두이노 통합 개발환경 Arduino IDE 를 지원하며 ESP8266 (TCP/IP 프로토콜 스택이 통합된 Soc로 Wifi 네트워크에 접속가능)
기반으로 무선으로 스케치를 전송할수 있는 OTA(over the air) 기능을 사용할수 있습니다
때문에 저렴한 가격에 아두이노를 이용하여 IoT 프로젝트를 진행하는데 있어서 적합합니다

 

 

<WeMos D1 Wifi Board 이미지>

 

 

 

<WeMos D1 Wifi Board 상세 사양>

 

 

<WeMos D1 Wifi Board 핀 구성>



사용된 부품

Arduino Uno 호환 WeMos D1 Wifi Board



초기세팅 방법
우선 WeMos D1 Wifi Board 는 CH340 UART DRIVER 를 사용하기 때문에
일단 장치인식을 위해서 드라이버를 설치해 줍니다
자신의 OS에 맞는 드라이버를 다운로드 받아서 설치해 줍니다

(윈도우용을 첨부하였습니다 CH340 설치를 했는데 장치관리자에 인식이 안된다면 CH341 드라이버를 설치해 보세요)

CH340 USB_Serial Driver.zip

CH341SER.ZIP

드라이버 설치가 끝나고 보드를 마이크로 USB케이블로 연결하면 PC의 장치관리자에 CH340 으로
포트가 뜹니다

 

기본적으로 아두이노 통합 개발환경 아두이노 IDE 를 설치해야 합니다 (Arduino.cc 의 IDE 를 설치합니다
Arduino.org 의 IDE 와는 호환 되지 않습니다)
https://www.arduino.cc/en/Main/Software


 

아두이노 IDE를 실행후 파일--->환경설정을 클릭합니다

 

 

환경설정에서 추가적인 보드매니저 URL에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 

 

링크의 URL를 추가해 줍니다

 

 

 툴--->보드--->보드매니저 순으로 클릭합니다

 

 

보드 매니저에서 타입을 "Contributed"로 선택해주면 ESP8266 Community 가 나오게 됩니다
설치를 눌러서 최신버전을 설치해 주면 됩니다

 


설치가 끝나면 툴--->보드--->WeMos D1 R2 & mini 순으로 클릭합니다 (WeMos D1 R2 & mini 가 추가 되었습니다)

 

 

툴에서 업로드 스피드를 115200 으로 맞춰 주도록 합니다 (일부는 업로드 실패시 57600 으로 속도를 낮춰서 성공을 하는것 같습니다)
본 테스트에서는 115200으로 별 무리없이 무난하게 업로드를 성공했습니다
스케치 업로드 버튼을 눌러서 간단하게 업로드를 테스트 해보고 이상이 없으면 파일--->ESP8266--->Blink 순으로 클릭해서
Blink 테스트를 해봅시다 (보드에 장착된 ESP8266의 LED가 깜박이는 간단한 테스트 입니다)

주의사항
보드를 USB 허브를 통해서 연결하면 소스 업로드시 업로드 에러가 나는 경우가 있는것 같습니다
(USB 허브를 사용하고 있다면 허브에 연결하지 말고 컴퓨터 USB 포트에 바로 연결해서 테스트 해 봅시다

 


<Arduino Uno 와 Wemos D1 Wifi Board 의 차이점>
위 처럼 Wemos D1 Wifi Board 는 Arduino Uno 와 핀구성의 차이가 있습니다
가령 기본예제 파일--->예제--->Basic--->Blink 테스트를 업로드 하려고 한다면


-----------------------------------------------------------------------------------------------------------
void setup() {
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
-----------------------------------------------------------------------------------------------------------


위 예제코드에서 13 을 14로 모두 바꾸어 주어야 합니다

-----------------------------------------------------------------------------------------------------------
void setup() {
  pinMode(14, OUTPUT);
}

void loop() {
  digitalWrite(14, HIGH);
  delay(1000);
  digitalWrite(14, LOW);
  delay(1000);
}
-----------------------------------------------------------------------------------------------------------

 

프로젝트 동영상


프로젝트 동영상 (Wemos D1 Wifi Board를 사용해 웹서버 IP 주소와 아이디 확인해 보기)

파일--->예제--->ESP8266WebServer--->HelloServer 순으로 클릭합니다
스케치 코드에서 const char* ssid = "........" const char* password = "........"
의 " "를 본인의 Wifi 아이디와 비밀번호 설정으로 수정해 준후 업로드 해 줍니다
시리얼 모니터를 켜면 연결된 웹서버의 IP 와 아이디를 확인할 수 있습니다

 

이때 보드레이트는 꼭 115200으로 되어 있어야 합니다~


Arduino Uno 호환 Wemos D1 Wifi Board 의 아두이노 IDE 초기 세팅도 끝났고, 보드의 이상 유무도 확인했으므로
이제 DHT11 온습도 센서를 사용해서 웹으로 실내 온습도를 확인해 보겠습니다


사용된 부품

Arduino Uno 호환 WeMos D1 Wifi Board
DHT11 온습도 센서

미니 브래드 보드
점퍼케이블


구성배선도

 

사용된 예제코드

ESP8266_DHT11.txt
0.00MB


사용된 라이브러리

DHT.zip


라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요

주의사항

ESP8266 기본 라이브러리 외에 DHT 라이브러리가 필요합니다
그리고 라이브러리 폴더 이름은 꼭 DHT 로 되어 있어야 합니다 (예--->arduino-DHT-master 등 이런식의 폴더명은 안됨, 컴파일 에러남)
또한 추가적으로 DHT 폴더안에 Adafruit_Sensor.h 라이브러리가 꼭 들어 있어야 합니다
기존의 arduino-DHT-master 나 DHT 라이브러리가  설치되어 있다면 폴더명을 바꾸어 주고 Adafruit_Sensor.h 가

들어있는지 꼭 확인해서 컴파일 합시다, 그렇지 않으면 여지없이 컴파일 에러가 나게 될 것입니다

위 첨부된 라이브러리 압축파일은 폴더명도 수정해 놓았고 Adafruit_Sensor.h 파일도 들어 있습니다 압축해제 후
라이브러리 설치 후 사용하면 됩니다

이제 위 첨부된 ESP8266_DHT11 예제 파일을 열어서 스케치를 확인해 봅시다

const char* ssid = "YOUR_NETWORK_NAME";
const char* password = "YOUR_NETWORK_PASSWORD";


첨부된 예제 코드의 위 두줄 부분을 자신의 WIFI 이름과 비밀번호로 수정해 줍니다

// DHT Sensor
const int DHTPin = 5;
// Initialize DHT sensor.
DHT dht(DHTPin, DHTTYPE);

예제 코드를 확인해 보면 위 처럼 DHT 센서 핀 지정이 분명 5 인데 Wemos Board 의 D1
(Wemos 버전 마킹 때문에 D3) 에 연결하는 것을 확인할 수 있습니다
포스팅 가장 윗 부분으로 올려서 Wemos 보드 핀맵을 확인해 보면 "D1" 이 "GPIO5" 인것을 확인할 수 있습니다

수정이 끝났으면 스케치 업로드를 하고 시리얼 모니터를 실행 시킵니다 (물론 이때 보드레이트는 당연히 115200 으로 되어 있어야 합니다)
그러면 WIFI 와 연결된 URL http://192.168.0.X/ 을 확인할수 있습니다

 

인터넷창을 열고 주소창에 URL 주소를 입력해 줍니다 그러면 아래처럼 웹으로 실내 온도(섭씨&화씨) 와 습도를 확인할 수 있습니다 

 

 

온도계 등과 비교해 보면서 실내 옵습도 출력값이 쓸만하게 나오는지 확인해 봅시다

(컴퓨터 뿐만 아니라 스마트폰으로도 브라우저를 켜서 확인할 수 있습니다~)



프로젝트 동영상

 

 

 
CH340 USB_Serial Driver.zip
0.04MB
 
ESP8266_DHT11.txt
0.0MB
 
CH341SER.ZIP
0.14MB
 
DHT.zip
0.01MB
반응형

댓글