【 레오나르도활용#2】 온도와 밝기 값 PC로 수집하기 팁 #2(Leonardo)
아두이노 레오나르도(Leonardo)가 있으면 온도 센서와 광센서(CDS)등의 데이터를 실시간으로 PC로 수집할 수 있다. 이렇게 수집된 데이터는 엑셀로 차트를 만들어 볼 수 있고, 프로세싱(Processing) IDE를 통해 비주얼 하게 그래픽 처리해서 볼 수 있다. 그리고 파이썬으로 데이터를 정리하고 다듬어 준다면 활용할 수 있는 영역은 매우 많다. 한 번 해보면 어렵지 않으니 재미있게 즐겨보자~! Let's go~!
▶ 선수 학습 :
1. [레오나르도 활용#1] 레오나르도 보드 사용법(보드 스펙& 설치-연결 참조) ☜ (클릭)
2. [아두이노 센서#3] TMP36 온도 센서 (온도센서 참조) ☜ (클릭)
3. [아두이노 기초#3] 포토레지스터(CDS) 제어 (cds 광센서 참조) ☜ (클릭)
▶ 실습 목표 :
1. [ 레오나르도 보드에 온도센서(Tmp36)와 광센서(cds) 회로를 연결하고 동작시킬 수 있다.]
2. [ 온도센서와 광센서로 부터의 데이터 값을 PC메모장을 통해 전송시킬 수 있다.]
3. [ 전송된 데이터를 엑셀 등을 이용해서 활용해 본다 ]
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
▶ 프로그램 코드 및 설명 1 :
/* Leonardo 보드로 온도 & 밝기 데이터 수집하기 */
#include <Keyboard.h>
const int TEMP = 0; // A0 포트
const int CDS = 1; // A1 포트
const int LED = 12;
const int BUTTON = 11;
boolean lastBtn = LOW;
boolean currentBtn = LOW;
boolean running = false;
int counter = 1;
void setup ( ) {
pinMode(LED, OUTPUT);
Keyboard.begin();
}
void loop ( ) {
currentBtn = debounce (lastBtn);
if (lastBtn == LOW && currentBtn == HIGH) //버튼 누름
{
running = !running; // 상태 값 반대로 변경
}
lastBtn = currentBtn; // 버튼 상태값 업뎃
if (running) // 데이터 기록 중
{
digitalWrite(LED, HIGH);
// millis() 함수는 데이터를 ms 단위로 반환해 줌, 백그라운드 동작
// delay() 함수를 사용할 수 없을 때 사용
if (millis()%1000 == 0) // 1초마다 if문을 실행
{
int temperature = analogRead(TEMP);
int brightness = analogRead(CDS);
float mVoltage = temperature*5000.0/1024.0; //섭씨온도 값 변환
float TempDotC = (mVoltage - 500) / 10.0; //섭씨온도값 변환
Keyboard.print(counter); // 데이터 앞줄마다 번호 매김
Keyboard.print(",");
Keyboard.print(TempDotC); // 온도 데이터
Keyboard.print(",");
Keyboard.print(brightness); // 밝기 데이터
Keyboard.print("\n");
counter++;
}
}
else
{
digitalWrite(LED, LOW);
}
}
//버튼의 체터링 현상 방지를 위한 서브 함수 생성
boolean debounce (boolean last)
{
boolean current = digitalRead (BUTTON);
if(last != current)
{
delay(5);
current = digitalRead(BUTTON);
}
return current;
}
▶ 아두이노 파일다운 :
(다운로드하여서 압축을 풀어 사용하세요)
▶ 영상강좌 :
(전체 화면 보기로 보세요)
(아래는 유튜브로 시청하기)
https://youtu.be/ViP64mGwv-I
'아두이노 > 5. 아두이노-프렌즈' 카테고리의 다른 글
【 레오나르도활용#3】어두워 지면 PC 화면 잠그기 (Leonardo) (3) | 2019.06.10 |
---|---|
【 Leonardo #3】 Visualize Temperature& Brightness Data on your PC with Leonardo (0) | 2019.05.28 |
【 레오나르도활용#3】 온도& 밝기값 PC로 비주얼화 하기 (Leonardo) (0) | 2019.05.24 |
【 Leonardo #1】 Let's collect Temperature & Brightness data to PC! (0) | 2019.05.15 |
【 레오나르도활용#1】 아두이노 레오나르도 보드 사용법 (Leonardo #1) (0) | 2019.05.13 |