안녕하세요. 아두이노에 관해 3번 째 글입니다.
이번에는 블루투스와 아두이노를 연결해서 센서값을 읽어 활용하는 예제입니다.
저는 HT21UD 온습도 센서를 사용해 온도('C), 습도(%)를 아두아노에서 읽어와
블루투스를 통해 안드로이드에 보내볼 생각입니다.
자 우선, HT21UD에 대해 설명해보자면, 위에 말처럼 온도와 습도를 읽어오는 센서입니다.
1. HT21UD
저는 HT21UD의 라이브러리의 예제를 약간 제 식대로 바꾸도록 하겠습니다.
라이브러리는 아래에 남겨 두도록 하겠습니다.
https://github.com/sparkfun/SparkFun_HTU21D_Breakout_Arduino_Library/
#include <Wire.h>
#include "HTU21D.h"
HTU21D myHumidity;
void setup()
{
Serial.begin(9600);
myHumidity.begin();
}
void loop()
{
double humd = myHumidity.readHumidity(); //습도
double temp = myHumidity.readTemperature(); //온도
Serial.print(temp);
Serial.print("C");
Serial.print(humd);
Serial.println("%");
}
온습도의 예제는 블루투스와 통신하기 위해 잠시 되는지 안되는지 점검을 하기 위해 간략화한 스케치입니다.
되는 것이 확인되었다면 이제 바로 블루투스로 아두이노와 안드로이드를 통신해보도록 하겠습니다.
1. HC-06 블루투스 모듈
저 같은 경우는 눈에 보이는 것을 좋아해서
바로 HT21UD의 값을 블루투스로 전송하도록 하겠습니다.
#include <Wire.h>
#include "HTU21D.h"
#include <SoftwareSerial.h>
#define BT_RXD 8
#define BT_TXD 7
SoftwareSerial bluetooth(BT_RXD, BT_TXD;
HTU21D myHumidity;
unsigned long time_previous, time_current;
void setup()
{
Serial.begin(9600);
myHumidity.begin();
BT.begin(9600);
time_previous = millis();
}
void loop()
{
time_current = millis()
double humd = myHumidity.readHumidity(); //습도
double temp = myHumidity.readTemperature(); //온도
if(time_current - time_previous >= 1000){
BT.print(temp);
BT.print(",");
BT.print(humd);
BT.print(",");
BT.println();
}
}
1초에 한 번씩 온도와 습도를 안드로이드에 보내는 예제입니다!
지금 이 스케치로는 어떻게 안드로이드와 아두이노가 블루투스로 연결되어서 센서값을 전달하는지 알 수 없습니다.
다음 글은 이제 안드로이드 스튜디오를 이용해 온습도 센서값을 받는 어플을 만들고 나서 위 예제와 함께 설명하면 바로 이해가 가실겁니다!!
'Embeded SW > Arduino' 카테고리의 다른 글
PWM으로 아날로그 값을 출력해보자! 1편 (0) | 2020.01.28 |
---|---|
Pull up(풀업) , Pull down(풀다운) 저항에 대해 알아보자! (0) | 2020.01.26 |
아두이노, 안드로이드를 블루투스로 연결해서 센서값 읽어오기!(2) (9) | 2020.01.22 |
millis()함수를 통해 LED 동시에 켜보자! (0) | 2020.01.20 |
아두이노 delay() VS millis() 정확히 알고 쓰자! (2) | 2020.01.19 |