아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

Lab-09: 안드로이드-아두이노블루투스통신

앱인벤터로아두이노와블루투스로연결하여센서확인하기

(1) 아두이노 회로도

 - DHT11 : 온도, 습도센서,    - HC-06 : 블루투스모듈

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

소스코드 오픈소스사용

#include "DHT.h"       // 온도습도를센서를위한 DHT.h 라이브러리를포함한다

#include <SoftwareSerial.h>                            //SoftwareSerial통해블루투스와데이터전송

SoftwareSerial BTserial(4,5); //Rx, Tx

#define DHTPIN 2      // DHT핀을 6번으로정의한다(DATA)

#define DHTTYPE DHT11  // DHT타입을 DHT11정의한다

DHT dht(DHTPIN, DHTTYPE);  // DHT설정 - dht (디지털2, dht11)

void setup()

Serial.begin(9600);    // 9600 속도로시리얼통신을시작한다

BTserial.begin(9600);          // 9600 속도로블루투스시리얼(소프트웨어시리얼) 통신을시작한다

void loop()

int h = dht.readHumidity();  // 변수 h습도값을저장

int t = dht.readTemperature();  // 변수 t온도값을저장

BTserial.print("습도: ");

BTserial.print(h);

BTserial.print("% ");

BTserial.print("온도: ");

BTserial.print(t);

BTserial.print(" C");                           // 블루투스시리얼을통해문자열전송

delay(1000);

(2) 인벤터를통해어플리케이션만들기

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

1. 목록선택(ListPicker) 컴포넌트 추가.

2. 목록선택이름변경과너비변경

3. 텍스트변경

블루투스의연결의경우아두이노와연결된 HC-06신호하나만잡히지않고다른여러신호가잡힐있기때문에 목록을만들어원하는연결을선택할있도록하여야한다.

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

1. 레이블(Lable) 컴포넌트추가

2. 글꼴크기변경

3. 텍스트란의레이블1 텍스트를공백으로변경

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

1. 센서탭의시계(clock) 컴포넌트추가 (단위 ms)

C언어의 delay비슷한동작을.여기서는 1간격으로 블루투스의전송된값을읽기위해사용.

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

1. 연결탭의블루투스 클라이언트(Bluetooth client) 추가

어플리케이션을블루투스클라이언트로사용해야추가하는컴포넌트이다. 여기서는 아두이노의 HC-06블루투스서버가되고안드로이드가클라이언트가된다.

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

위의블록과같이블록도생성.

1. 번째블록

   - 블루투스목록을선택하기전에블루투스클라이언트에서받는서버의주소와 이름들을블루투스목록으로지정한다.

2. 번째블록

   - 블루투스목록에서블루투스를선택하게되면 선택된항목의주소로안드로이드에서블루투스클라이언트로연결한다.

3. 번째블록

   - 1간격 마다블루투스연결상태를확인한다. 블루투스가연결이되어있다면다시블루투스를통해받는데이터를바이트크기로 받게된다. 만약바이트의크기가 0보다크다면 (데이터가전송된다면) 레이블1블루투스클라이언트를 통해받은바이트를텍스트로변경해입력하게된다.

(3) 결과

- 어플리케이션화면

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog
아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog
아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

메인화면, 블루투스연결 목록버튼을누른화면, 연결화면순이다.

레이블컴포넌트에블루투스에서전송한데이터가출력되는 것을확인있다.

- 아두이노와어플리케이션실행화면

아두이노 블루투스 음성 출력 - adu-ino beullutuseu eumseong chullyeog

추가

1. 버튼을통한 온도, 습도값전송받기.

2. 음성변환기능을사용하여온도습도텍스트음성변환.