아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 메이킹 프로젝트(워터맨IOT) 두번째.

 

ESP8266 소개

 

중국의 에스프레시프 시스템즈라는 회사에서 개발하여 세계적으로 널리 사용되는 WIFI기능을 내장한 마이크로 프로세서.  종래에는 아두이노에 IOT기능 구현을 위해서 인터넷에 연결시키기 위해서는 별도의 WIFI통신모듈을 부착해야만 했었는데, 본 8266칩을 이용하면 하나의 칩안에 마이크로프로세서 기능과 WIFI통신 기능이 함께 들어있기 떄문에 비용과 크기를 획기적으로 줄일 수 있게 된다.

 

 

 

NodeMCU 그런데 이 ESP8266에는 펌웨어 저장을 위한 플래시메모리가 포함되어 있지 않아 단독으로는 사용하기 곤란하기 때문에 메모리 등 기타 부품을 부착하여 여러가지 모듈형태로 제작되어 유통된다.  이러한 ESP8266 응용모듈 중에서 ESP-12 모듈을 기본으로 하여 아두이노 개발환경에 통합할 수 있는 펌웨어와 USB연결장치 등을 부착하여 마치 아두이노의 한 종류인 것처럼 사용할 수 NodeMCU라는 모듈이 많이 사용된다. 즉, 인터넷 환경에서 하나의 노드 역할을 할 수 있도록 제작된 아두이노한 종류로 이해하고 사용할 수 있다.

 

 

 

 

D1-mini :  본 프로젝트에서는 NodeMCU 모듈들 중에서 크기가 작은 D1-mini라는 기종을 사용한다

 

 

 

ESP8266 D1-mini 보드  

 

 

ESP8266모듈  : 전자파 차단을 위해 알루미늄판으로 밀봉처리되어 있는데 이 안에 ESP8266 칩과 플래시메모리 등이 내장되어 있다.

 

내장 메모리 : 4MB의 플래시메모리가 내장되어 있어 충분한 편이다.

 

USB단자 마이크로 USB단자가 있어 아두이노 나노 처럼 PC와 자유롭게 연결하여 전원을 공급하거나 프로그램 업로드 및 디버깅작업을 할 수 있어 편리하다.

 

입출력핀 : 8개의 디지털 입출력핀(D1~D8) 과 하나의 아날로그 입력핀(A0)가 있고 그 중 디지털핀 D7은 내장 LED와 연결되 있으므로 내장된 LED 불빛을 제어 하고 싶으면 D7핀을 사용하면 된다. 입출력 핀이 16개 인 아두이노 나노에 비해서 입출력핀이 다소 적은편인데,  특히 아날로그 입력핀이 하나밖에 없기 떄문에 다양한 센서들을 동시 연결할 수 없는 등 활용범위에 제약이 있는 경우도 있다.

 

전원문제 주의사항  본 모듈의 WiFi가 작동될 때에는 비교적 많은 양의 전류가 소비되기 떄문에 간혹 전류부족으로 에러가 발생될 수 있다. 즉 전류제한이 있는 PC USB포트 등으로   전원을 공급하고 있는 상태에서 센서 등 전력을 소비하는 부품들을 동시에 여러개 연결하다 보면 어느 순간에 전류부족으로 시스템이 자동 리부팅되어 버리는 현상이 발생되는 경우가 있다. 

 

 

아두이노 개발환경 설치

 

 본 프로젝트에서 사용하는 보드도 아두이노 IDE개발환경에서 아두이노 프로그램 개발하는 방법과 같은 방법으로 개발하므로 아두이노 개발환경이 설치되어 있지 않은 경우 아두이노IDE 를 설치한다.  

 

- http://www.arduino.cc 에 접속하여 Download메뉴에서 IDE를 다운받아 설치한다.

- 화면 아래 왼쪽의 JUST DOWNLOAD를 눌러 다운로드 받으면 된다.

- 설치 진행중 driver 설치하겠냐는 질문에 예로 계속 진행

- 설치가 완료되면 바탕화면에 Arduino 아이콘이 생성된다.

 

 

 

 

아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 메이킹 프로젝트(워터맨IOT) 첫번째.

프로젝트 목표  관리대상 화분에 꽃아 두고 언제 어디에서는 스마트폰으로 다음과 같이 활용할 수 있는 IOT 화분관리시스템 제작.

 

  1)화분의 조도LUX, 온도및습도, 토양수분상태가 변화되는 내역을 그래프형태로 모니터링  

 

  2)수분이 부족하면 스마트폰으로 "목 말라요" 알람메세지 전송받기

 

  3)원격지에서 스마트폰 버튼 조작으로 펌프 가동시켜 화분에 물주기

 

 

구현과제 :

 

1)화분에 꽂아 두어 조도,온습도,수분 등을 측정하고,워터펌프를 제어하기 위한 ESP8266 기반 화분관리기 IOT 시스템 제작  

 

2)측정된 센서값을 ThingSpeak라는 IOT클라우드 서비스에 보내 데이터를 축적하고,필요시 변화되는 내역 그래프를 스마트폰으로 조회하는 기능 개발

 

3)토양수분 센서 측정값이 기준치 이하이면 ITFF라는 IOT클라우드 서비스를 이용하여사용자 스마트폰에 물부족 알람메세지를 전송하는 기능 개발 

 

4)Blynk라는 IOT클라우드 서비스를 이용하여 원격지에서 스마트폰으로 화분관리기 워터펌프를 가동시켜 화분에 물주는 기능 개발

 

 

소요되는 사전지식:

 

1)기본적인 C 언어 사용방법은 이미 알고 있다고 가정한다. 즉, 스크래치 등으로 코딩의 기본구조를 이해하고,각각의 요소들이 C언어로는 어떻게 표현되는지 기본지식이 있는 사람이 다음 단계로서 프로그램이 어떻게 사물을제어하는지 즉, 피지컬컴퓨팅 배우고자 하는 경우에 적합하다.

 

2) 인터넷 서비스에대한 기본지식이 있다고 가정한다. 본 프로젝트에서는 유명 인터넷 클라우드 서비스기능들을 활용하여 자기가 원하는 기능들을 구현하는 방법들에 대해 알아본다.      

 

 

소요되는 시간총 14개 과정으로 구성할 예정 있고, 각각은 30분~1시간정도의 시간이 소요되므로 1주일에 한시간씩 한학기 과정으로 운영할 수 있고, 개인이 계속해서 진행한다면 3~4일 정도 소요될 것으로 에상된다.

 

+ Recent posts