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

 

 

ThingSpeak에 데이터 저장하기 : 다음과 같이 인터넷으로 ThingSpeak서버에 접속하여 Write API Key와 함께 Field별 데이터 값을 지정해 주면 된다.

 

 

  3  line:  접속할 ThingSpeak 서버 주소
  4  line:  본인 ThingSpeak 채널의 Write API key
  8  line:  접속하고자 하는 공유기의 SSID와 password
 14  line:  Field1에 12, Field2에 34 .. 와 같이 Field별 저장할 값을 지정한다.
 19  line:  X-THINGSPEAKAPIKEY라는 http header에 API key값을 지정한다.

 

 

스마트폰으로 ThingSpeak챠트 보는 방법

 

 

 

1) Play스토어에서 “thingview” 검색하여 APP을 설치한다. 

 

2) 조회할 채널을 추가한다.

 

 

3)채널ID를 입력, Private지정하고 Read API키를 입력한다.

 

4) 이상이 완료되면 해당 채널의 챠트가 표시된다.

 

 

중간과제

 

 

 매1분마다 온도,습도,조도,토양수분 값을 측정하여 ThingSpeak서버에 전송하고 변화내역을 챠트로 조회하는 기능을 구현해 보기 

 

 

 

 

 

중간과제 샘플

 

 

16~19 : 각자의 환경에 맞는 공유기 SSID/Password와 각자 채널별 Write API key
20~38  line:  온습도,조도 센서값웹 읽기 및 토양수분센서에 전원 공급하고 측정하기
39~77 line:  ThingSpeak서버에 접속하여 센서측정값 upload하기

 

 

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

 

ThingSpeak :  수치해석용 소프트웨어인 MATHLAB이라는 제품으로 유명한 MathWorks사에서 제공하는 사물인터넷(IOT) 플랫폼이다. Thingspeak 서비스를 이용하면 각종 데이터를 인터넷 클라우드 기능으로 수집,저장해 놓고 MATHLAB 툴을 이용하여 각종 분석을 할 수 있으며,  데이터를 Chart형태로 시각화 하거나 API기능을 이용하여 여러가지  웹서비스를 개발할 수도 있다.

즉, ThingSpeak서버에 자신만의 채널을 개설해 놓고 각종 센서에서 계속 발생되는 데이터를 인터넷을 통해 자동으로 ThingSpaeak서버에 전송,축적함으로써 필요할 때 데이터가 변화되는 모양을 그래프형태로 참조하기 위한 용도로 많이 사용하는 IOT 클라우드 서비스이다.

최근 ThingSpaek 서비스는 유료화 되었지만, 하루 8200개 이하의 데이터 저장은 무료이므로 개인용 또는 학습용도의 웬만한 기능은 문제없이 무료로 사용할 수 있다.    

 

ThingSpeak가입 : https://thingspeak.com에 접속하여 신규회원으로 가입한다.

 

 

회원가입정보를 입력하면 입력한 Email주소로 확인메일이 오게 되는데 이를 확인하면 ThingSpeak서비스에 로그인할 수 있게 된다. 

 

 

 

 

 

ThingSpeak채널개설

 

데이터수집의 용도별로 채널이라는 것을 개설하고 하나의 채널에 8개까지의 필드를 구분하여 데이터를 수집할 수 있다.  ThingSpeak메뉴의 Channels -> My Channelss -> New Channel을 선택하여 새 채널을 생성하고 내용을 설정한다    

 

 

 

채널의 Name과 Description은 각자 원하는 대로 입력한다.

 

채널에는 4개의 필드를 추가하여 온도,습도,조도,토양수분 용도로 각각 적당한 명칭을 지정한다. 이 명칭은 추후 챠트를 조회할 때 챠트의 명칭으로 표시된다.

 

프로그램에서는 filed명의 순서로 데이터를 지정하므로 field1=온도,field2=습도, field3=조도, field4=토양수분 의 순서가 되도록 차례대로 영칭을 부여한다.

 

 

 

 

 

채널이 등록 완료된 후 채널의 데이터들을 사용하려면 Channel ID와 API Key를 지정해 주어야 한다. 즉, Channel Settings 메뉴의 Channel ID와 API Key 메뉴의 Write API Key와 Read API Key를 별도로 메모해 두어야 한다. 

 

 

 

 

 

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

 

1) STA(Station)모드 :  ESP8266이 스마트폰이나 일반기기 처럼 WIFI Client로 작동하는 모드이다.  따라서 다른 WIFI공유기를 통하여 인터넷 접속을 할 수 있는 상태이다.  본 프로젝트에서는 기본적으로 이 STA모드로 인터넷 클라우드 서비스에 접속하고 통신한다.

 

 

 

 

2) AP(Acess Point) 모드 : ESP8266 자신이 AP 즉, 공유기 역할을 하는 모드이다.  따라서 스마트폰 등 다른 기기에서 ESP8266을 공유기로 인식하여 접속할 수 있고 서로 통신할 수 있다. 하지만 ESP8266 자체는 인터넷에 연경되어 있지 않기 떄문에 이를 통해 외부 인터넷에 접속할 수는 없는 상태이다. 외부기기에서 ESP8266에 접속하여 설정값을 지정해 주는 설정기능 등을 구현할 때 사용한다.  

 

 

 

 

 STA(Station) 모드 테스트

 

 

3~4  line:  인터넷에 연결하기 위해 접속하고자 하는 공유기의 명칭과 password를 지정
5     line:  인터넷으로 접속하고자 하는 서버 주소
9     line:  WIFI모드를 STA 모드로 지정
10    line:  WIFI 초기화
12    line:  AP(공유기)에 접속하기
13~19 line:  AP접속상태가 정상이 될때 까지 재시도 ( 10회 재시도)
20~24 line:  AP접속 성공여부 확인
25   line:  인터넷상의 서버 접속하기 (서버URL, 포트번호 80:웹서비스 )
27~30 line:  접속된 서버에 http 데이터 전송 (웹브라우저에서  서버로 전송하는 데이터 형식)
32~33 line:  서버에서 응답되는 데이터를 받아 시리얼 모니터로 표시해 보면 다음과 같음


HTTP/1.1 302 Moved Temporarily
Server: NWS
Date: Sun, 16 Sep 2018 06:06:53 GMT
Content-Type: text/html
Connection: close
Location: https://www.naver.com/err/notfound.html
Vary: Accept-Encoding,User-Agent

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center> NWS </center>
</body>
</html>

 

위와 같이 html형식 데이터가 포함된 응답이 되돌아 오는데 웹브라우저에서는 이를  보기좋게 화면에 표시하는 것임.

 

 

 

 

AP(Access Point)모드 테스트

 

 

7~13  line:  웹서버의 역할을 정의하는 모듈. 데이터를 입력하기 위한 화면을 출력한다.
8~11 line: 출력될 화면을 HTML형식으로 작성해서 strHTML에 저장
12  line: 웹서버로서 데이터를 전송한다 ( 코드, 형식,전송할 데이터 )
15~24 line:  웹서버의 역할을 정의하는 모듈. 입력된 데이터를 처리한다.
16 line: 웹서버에서 데이터를 잘 전송받았다는 메시지를 응답한다. 
17 line: 입력데이터 중에서 name이 ID인 항목의 데이터를 받아 inputID라는 이름으로 저장
18 line: 입력데이터 중에서 name이 PW인 항목의 데이터를 받아 inputPW라는 이름으로 저장
19~23 line:  String을 변환하여 시리얼 모니터에 출력
28  line:  WIFI mode를 AP모드로 지정
30 line: 기동될 AP의 SSID(명칭)과 password를 지정. 스마트폰으로 WIFI검색해 보면 이 SSID 명칭이 접속대상 공유기LIST에 표시된다. 따라서 주변의 다른 AP들의 명칭과 중복되지 않는 고유한 이름으로 지정해 주어야 한다.
31 line: AP 자신의 IP Address를 읽어낸다. ESP8266의 경우 192.168.4.1 이라는 주소가 기본적으로 할당되므로 스마트폰에서 AP에 접속한 후 웹브라우저로 http://192.168.4.1 로 접속하면 본 AP에 웹서버기능으로 접속할 수 있게 된다.
34 Line: 웹서버로서의 기능을 정의한다. 아무 지정없이 접속하면 procAProot라는 함수를 호출하여 수행하라는 의미이다.(  7~13 line 기능) 
35 Line: 웹서버로서의 기능을 정의한다. /setting으로 접속하면 procAPsetting이라는 함수를 호출하여 수행하라는 의미이다.( 15~24 line 기능) 
36 line: 웹서버 기능 Start
41 line: 접속된 Client 단말로부터 입력된 데이터를 처리한다.

 

+ Recent posts