반응형

 

 

지난 포스팅까지 아두이노(Arduino)를 사용하여 온습도 센서(Temperature and Humidity sensor)를 동작하고 측정된 데이터를 출력하고 저장하는 방법까지 알아보았습니다. 앞서 알아본 저장방법은 *.txt 파일로 저장되어서 엑셀을 많이 사용하시는 분들은 엑셀에 바로 연동하는 방법은 없는지 궁금하셨을 거 같아요 ^^ 

 

그래서!! 오늘은 아두이노 시리얼 통신(Serial communication) 데이터를 엑셀에 연동하여 저장하는 방법을 알아보겠습니다. 엑셀과 연동이 되면 데이터를 실시간으로 받으면서 데이터의 변화 추이를 그래프로 그려도 볼 수 있으며 분석하는데 더 많은 활용을 할 수 있습니다. 

 

아두이노(Arduino) 홈 IoT 입문 - 온습도 센서 데이터 출력/저장 방법

아두이노(Arduino)를 사용하여 온습도 센서(Temperature and Humidity sensor)를 작동하고 센싱한 값을 출력하는 것은 아두이노의 기본적인 사용법을 습득하는데 많은 도움이 됩니다. 저도 온습도 센서로 연습하면..

it-g-house.tistory.com


아두이노 시리얼 통신 데이터를 엑셀과 연동하려면 'PLX-DAQ' 프로그램을 사용해야 합니다. 'PLX-DAQ'는 'Parallax'라는 회사에서 무료로 제공하고 있는 프로그램인데 업데이트는 제공하지 않아서 2010 이하 버전의 Microsoft office와는 연동이 안된다고 합니다. 그러나!! 많은 고수님들이 자체적으로 업데이트하여 v2.11까지 웹상에서 쉽게 구할 수 있습니다. 아래 다운로드 링크와 압축 파일 첨부해두게요~ 우선 다운로드하여주세요 ^^ (Parallax 회사 홈페이지에서 원본 PLX-DAQ파일을 다운 받아 사용해도 저는 정상적으로 동작하더라고요 ㅎㅎ 근데 업데이트된 버전이 기능도 추가되고 사용하기 훨씬 편하니 아래 파일을 사용하는 것을 추천드려요~)

https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg301376

 

PLX-DAQ-v2.11.zip
0.49MB

압출을 풀면 아래와 같이 'PLX-DAQ-v2.11' 엑셀 파일을 볼 수 있습니다.

 

PLX-DAQ 실행파일

엑셀 파일을 실행하면 엑셀 상단에 아래와 같이 매크로 사용 여부를 묻는 경고창이 뜰 겁니다. 

 

'콘텐츠 사용'을 클릭하면 아래와 같이 실행 화면을 볼 수 있습니다. 만약 PLX-DAQ창이 뜨지 않으면 엑셀 시트 중단의 'Open PLX DAQ UI'를 클릭해 주세요~

 

아두이노 시리얼 통신(Serial communication) 데이터를 엑셀에 저장할 수 있는 PLX-DAQ 소프트웨어 실행 화면

여기까지 실행시켜놓고 아두이노로부터 시리얼 통신 데이터를 받으려면 아두이노의 프로그램도 약간의 조정이 필요합니다. 엑셀로 받기 위한 데이터 배열을 조정해 준다고 정도로 생각하시면 될 거 같아요 ^^ 시리얼 데이터는 어떤 데이터가 들어오던 상관은 없지만 이해를 돕기위해 지난 포스팅에서 진행하였던 온습도 센서를 이용해서 실제로 엑셀과 연동하면서 포스팅하도록 하겠습니다. (코드블럭은 본문 맨 아래 첨부해 두었습니다~)

 

 

 

아두이노와 엑셀을 연동하는 'PLX-DAQ' 사용을 위한 코딩

스케치로 돌아가서 이전 포스팅에서 코딩한 DHT11 온습도 센서를 위한 코딩을 위와 같이 프로그램을 수정하시면 됩니다. DHT11 온습도 센서 사용 방법과 코딩에 대해서는 아래 링크 걸어두게요~ 참고 부탁드립니다.

 

 

아두이노(Arduino) 홈 IoT 입문 - 온습도 센서(DHT11) 사용하기

아두이노(Arduino)를 사용한 홈 IoT (사물인터넷)의 가장 기본은 각 종 센서를 동작시키고 센싱 값을 읽는 것이라고 할 수 있습니다. 구상하는 대부분의 프로젝트는 어떤 조건이 만족하면 원하는 명령들을 수행하..

it-g-house.tistory.com

수정된 프로그램을 compile후 아두이노로 업로드하고 시리얼 모니터(Serial Monitor)를 실행하면 아래와 같이 데이터가 출력되는 것을 확인할 수 있습니다.

 

아두이노 시리얼 통신을 통한 DHT11 온습도 센서 데이터 출력 (엑셀과 연동 방법)

엑셀 시트가 셀 단위로 이루어져 있고 셀에 데이터를 하나하나 넣는 과정에서 셀 과셀 구분을 쉼표', '로 한다고 생각하시면 됩니다. 그래서 처음 'CLEARDATA'는 데이터를 전부 지워서 리셋하는 내용이고 그다음 LABEL, Temp, Humi이 엑셀에서 첫 행에서 각 데이터 이름이 됩니다. 그 뒤로 온도와 습도 data들이 계속 기록되는 순서로 진행된다고 이해하시면 됩니다.

 

그럼 다시 엑셀 시트로 돌아가서~ PLX-DAQ 실행 창에서 Setting 부분의 Port와 Buad rate를 PC에 연결되어 있는 아두이노와 동일하게 맞춰주시고 아래에 'Connect'를 누르면 아두이노의 시리얼 통신으로 들어오는 온도와 습도 데이터가 엑셀에 저장되는 것을 실시간으로 확인할 수 있습니다. 와우~ 신기하죠?? ㅎㅎ 아!! 여기서 주의하실 점은 시리얼 모니터 창은 닫으셔야 정상 동작합니다.

 

아두이노 엑셀연동을 위한 PLX-DAQ 셋팅

아래 엑셀 창에서 처럼 왼쪽 A, B열에 첫 행에는 열 이름 Temp, Humi 그 밑으로 2행부터 데이터가 실시간으로 기록됩니다. PLX-DAQ창에서 'Display direct debug'를 클릭하면 실질적으로 몇 시 몇 분에 데이터가 들어오는지 확인할 수 있습니다.

 

아두이노 시리얼 통신을 통한 DHT11 온습도 센서 데이터를 PLX-DAQ 프로그램을 이용하여 엑셀에 저장하는 방법

추가적으로 새로운 엑셀 시트에 저장할 수 있는 기능과 logging을 멈출 수 있는 기능 등이 있습니다. 직접 하나둘씩 만져보시면 아마 어떻게 사용하는지 금방 알 수 있을 거예요 ^^

 

 

 


여기까지 아두이노(Arduino)의 시리얼 통신(Serial communication)을 통한 데이터를 엑셀에 연동하여 저장하는 방법을 알아보았습니다. 엑셀에 실시간으로 기록되기 때문에 이를 이용해서 실시간으로 그래프를 그려본다던지 좀 더 시각화하여 데이터를 볼 수도 있을 거 같아요~ ㅎㅎ

 

다음 포스팅에는 아두이노를 사용하여 실시간으로 그래프를 그리는 방법과 이를 통하여 datalogger 기능을 살펴보겠습니다. 궁금하신 거나 추가적으로 필요한 내용 있으면 언제든지 댓글로 남겨주세요~ ^^

#include<dht.h>
dht DHT;
#define DHT11_PIN 2
float hum; //Stores humidity value
float temp; //Stores temperature value

void setup() {
Serial.begin(9600);
Serial.println("CLEARDATA");
Serial.println("LABEL,Temp,Humi");
}

void loop() {
DHT.read11(DHT11_PIN);
hum = DHT.humidity;
temp = DHT.temperature;

Serial.print("DATA,");
Serial.print(temp);
Serial.print(",");
Serial.println(hum);
delay(2000); //Delay 2 sec.
}

 

 

 

반응형

+ Recent posts