ThingSpeak 준비가 사전에 되어야 Catus Micro 클라이언트 프로그램을 돌릴 수 있으므로 ThingSpeak.com 사이트 사용법을 초간단하게 브피핑하도록 함과 동시에 프로그래밍은 해당 예제:II 에서 게재할 예정이다. 필자의 경험에 의하면 ThingSpeak.com 의 기초적인 사용법을 모른다면 상당히 많은 시간을 허비할 수도 있음을 유의하자.
아두이노 Cactus Micro ESP8266와아파이 모듈은 아두이노 보드 중에서 ESP8266 와이파이 모듈을 장착한 초소형 보드로서 Mini 급 보다 작고 거의 무게감을 느낄 수 없을 정도 경량으로서 저전력 웨어러블용으로 사용된다. 아두이노 편집기 사용 시 보드 종류는 LilyPad Arduino USB로 규정된다.
핀 구조에서 아날로그 핀들이 다수이며 I2C인터페이스를 위한 SDA, SCL핀들이 있어 필요한 센서들을 장착할 수 있다.
전원 공급은 마이크로 USB로 실험하되 포터블 기기로 사용할 경우에는 RAW 단자에 전압을 공급하게끔 되어 있다.
대개 4.2V 이상을 공급해야 하는 것으로 인터넷에 알려져 있으나 실제로 3.7V 리튬 폴리머 배터리로도 아무 이상 없이 잘 작동한다.
사진은 500mAH급 소형 드론용 리튬 폴리머 배터리로서 커넥터 뒷 등 부분에 배선용 침을 꽂은 상태에서 전기 쇼트를 방지하기 위해 스카치 테이프로 간단히 절연해둔 상태이다.
웹서버 예제와는 달리 Cactus Micro WiFi 모듈을 Client 역할로서 가변저항에 의해 생성되는 전압 신호를 모니터링하고 스마트 폰 핫스팟 공유기를 통해 사물인터넷 사이트로 잘 알려진 Thingspeak 사이트에 데이터를 전송과 함께 전압 변동그래프를 작성하기로 한다.
이번에는 그림에서처럼 Cactus Micro의 Vcc와 GND에 가변저항의 양단을 연결하고 가변저항의 중앙 입력 단을 아날로그 입력단 A0에 연결하여 Vcc에 가해지고 있는 전압 값을 정수 값 0에서 1023로 변환하여 Thingspeak서버에 전송하는 예제를 다루어 보기로 하자.
이 실험에서도 9k옴의 범위를 가지는 가변 저항을 사용하였다. 이보다 적은 값을 가지는 1k나 2k옴 정도의 범위를 가져도 문제는 없다.
만약 리튬 폴리머 배터리를 사용하고자 한다면 최소 전압이 3.7V 이상임을 멀티메터로 확인하고 핀 배치도를 참고하여 3.7V를 반드시 RAW 핀에 공급하도록 한다.
Thingspeak.com 사이트는 MATLAB 이라는 소프트웨어로 유명한 회사에서 제공하는 사물인터넷 용 웹서버로서 무료로 측정 채널을 제공하고 있다. Thingspeak을 활용하여 Cactus Micro 사물인터넷을 만들려면 반드시 무료회원으로 가입하여 API를 부여 받아야 한다.
Thingspeak에 가입하려면 반드시 구글의 Email 주소가 필수적이다. 화면상의 ID는 임의로 입력해보았다.
Password를 입력하고 엔터 키를 치면 다음 화면으로 넘어간다.
상당히 장황한 문장 및 입력 창이 나오지만 사물인터넷 프로그래밍과는 큰 관계가 없으므로 그냥 넘어가도록 하나 마지막 초록색에서 나의 ThingSpeak 계정 사용 여부를 문의하므로 마우스로 클릭하도록 한다.
로그인이 완료된 상태에서 맨 아랫 줄의 OK 버튼을 클릭하도록 한다. 이로서 Cactus Micro WiFi 클라이언트 모듈에서 송신되는 전압데이터를 수신하여 그래프 작성을 위한 준비가 되었다.
ThingSpeak 사이트의 Channels 탭에서 Private View 화면이다. 현재의 화면은 Channel Settings에서 ADC-01 이라는 이름으로 Field1의 챠트 타이틀이 부여되어 있는 상태이며 세로 축 단위는 Volt로 입력되어 있다. 본 블로그에서 전압 측정데이터의 범위는 0∼1023이므로 최대 1500으로 설정하였다. 시간 축에 가로 축 설정은 Field1 Chart 오른쪽의 붉은 색 써클 친 부분을 클릭하면 그래프 세부 설정이 가능하다. 참고로 우측의 Map은 경도와 위도를 입력하면 자동으로 나타난다. 이는 기상 데이터 처리할 경우에 필요할 수도 있을 것이다.
Channel Settings 탭으로 들어가 필요한 최소한의 정보 즉 Name 과 Field 1의 측정 단위 Volt를 입력한다. 필요하다면 경도와 위도도 입력하고 하단의 Save Channel 버튼을 누른다.
다음 중요한 스텝은 API keys 탭에서 본인의 API를 부여 받는 일이다. Channel Settings 옆의 API keys 탭을 클릭하여 들어간다. Write API와 Read API 두 종류의 키가 있으나 Write API 키가 필요하다.이 키 암호는 Cactus Micro 클라이언트 프로그램에서 ThingSpeak.com에 연결 요청을 위해 사용되는 개인 정보이다. 가입 시에 개인 별로 부여되는 고유의 개인 정보이며 별 변동이 없으나 때로는 드물게 바뀌기도 하므로 프로그램이 잘 돌다가 아무런 별 이상이 없는데도 안 될 경우 API 키 값이 변동 될 수 도 있음에 유의한다.
일단 이로써 기본 준비가 끝난 상태라면 Cactus Micro 의 와이파이 클라이언트가 데이터를 보낼 때 그래프를 관찰해 보기로 한다. 클라이언트 데이터를 준비해서 보낼 때 한 가지 주의할 점은 ThingSpeak.com의 반은 시간이 15초 이상 간격을 요한다는 점이다. 이러한 점을 감안하여 Cactus Micro 프로그램에 반드시 시간 지연 즉 delay(15000); 또는 그 이상으로 설정해야 한다.
여기서는 가변 저항을 여유 있게 여러 번 조작하여 0과 1023을 찍은 후 연결한 그래프를 보도록 한다.
첫 번 째 값 1023이 출력된 상태이다.
측정 점의 개수와 그래프의 가로 세로 축 규격을 설정하기 위해서는 그래프 상단 우측의 두 번째 연필 모양탭을 클릭한다.
측정 포인트 디스플레이는 즉 Results는 20개로 제한하였고 Y축 최대와 데이터 최대 값을 1100으로 설정하였다.
1023 또는 0 의 값을 찍었으며 가변 저항을 서서히 돌려 그 사이의 값을 그래프로 보여준다. 지정된 데이터 갯수를 넘어 가면 데이터 하나씩 사라지며 새로운 측정 값이 디스플레이 된다.
한편 Cactus Micro 클라이언트 프로그램이 작동하기 이전에 웹브라우저로 이러한 데이터 수신 및 그래프 작성 과정을 모니터링 해 볼 수 있다.
API Keys 옆의 Data Import/Export 탭으로 클릭해 들어가면 API Requests 하단에 GET 명령 사례를 볼 수 있다. 이 부분은 결국 Cactus Micro 프로그램 중간에도 나타나는 내용인데 별도로 https://...부터 field1=0 이라 쓰인 부분을 구글 크롬 url 창에 입력하고 엔터 키를 치면 데이터 송신에 성공했을 경우 하단에 ThinSpeak.com으로부터 회신 받은 정수 값이 출력된다.
처음 데이터라면 ThingSpeak 서버로부터 전송된 값 1이 출력되며 동시에 Thingspeak 사이트의 그래프에 입력됨을 확인할 수 있다. 확인을 위해서 field1= 123 과 같이 특수한 값을 입력해 보기 바란다.
구체적인 프로그래밍 사례는 다음의
Cactus Micro ESP8266WiFi 클라이언트 Thingspeak 웹서버 예제: II 아두이노 프로그래밍
에서 계속 됩니다.
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
Thingspeak에서 MQTT방식을 사용하는 NodeMCU WiFi 통신예제 아두이노 코딩 (0) | 2017.01.20 |
---|---|
ESP8266WiFi NodeMCU 12E WiFi 모듈사용 ThingSpeak 전압데이터 전송 예제:III (0) | 2017.01.14 |
아두이노 NodeMCU ESP8266WiFi 웹서버 예제:아날로그 입력 데이터 생성 및 전송 (0) | 2017.01.12 |
아두이노 NodeMCU ESP8266WiFi 모듈의 핀배치 프로그래밍 주의 사항 (0) | 2017.01.12 |
아두이노 ESP8266WiFi NodeMCU 모듈사용 와이파이 Web Server 예제:II (0) | 2017.01.10 |