아두이노2016. 2. 25. 13:00

아두이노에 블루투스 모듈을 추가하면 시리얼통신을 이용하여 데이터 값을 받거나 보낼 수 있다. 블루투스는 10미터 정도에서 무선으로 데이터를 보내거나 받을 수 있으므로 이를 활용하면 릴레이, 모터, 전등 등을 동작시켜 무선으로 기기를 제어하는 것이 가능하게 된다. 예를 들어 블루투스 기능이 있는 스마트폰, 노트북 등으로 아두이노에 연결된 블루투스 모듈로 신호를 보내 침대에 누워서도 집안의 전등을 무선으로 끄고 켤 수 있게 할 수 있다. 단, 통신거리 10M 정도라는 제한이 있으므로 멀리 떨어지면 블루투스 모듈과의 연결이 끊겨 작동이 되지 않을 수도 있다.


아두이노를 위한 블루투스 모듈은 여러가지가 있지만 가장 싼 값에 사용할 수 있는 것이 HC-06이라고 불리는 모듈이다. 국내에서도 1만원 이하로 다양한 제품을 구할 수 있으며 성능도 좋아서 가장 많이 사용하고 있다.


HC-06 블루투스 모듈의 모습



HC-06 블루투스 모듈의 핀이다. 총 4개의 핀이 있으며 위에서부터 신호를 받기위한 핀인 RX 핀, 신호를 전송하기 위한 TX핀, GND(Ground), VCC 핀이 있다. 모듈의 전원은 3.6V ~ 6V 사이에서 동작하므로 VCC핀은 아두이노의 5V 단자에 연결하면 된다. 모듈에 따라 3.3V에서 동작하는 모듈도 있으므로 규격을 꼭 확인하여 전원을 연결해야 한다. 



아두이노와 연결된 모습이다. 처음 연결하면 블루투스 모듈의 LED가 깜빡인다.(페어링 되지 않음 표시) 하지만 스마트폰이나 노트북과 블루투스 페어링이 되면 깜빡이지 않게 되고 계속 켜져 있는 상태가 된다. 아두이노와의 연결은 다음과 같이 연결을 하였다.

RXD ---------------------- D3

TXD ---------------------- D2

GND --------------------- GND

VCC --------------------- 5V


해도 되고 안해도 되지만 먼저 블루투스 모듈의 이름과 페어링 암호(PIN)를 바꿔 주었다. 기본값은 이름이 'HC-06' 이고 페어링 PIN은  '1234' 이다. 이를 'DENEB' 와 '2016' 으로 바꾸어 주었다. 혹시 모르지만 다른 사람이 내 장치를 가로챌 수 있으므로 바꾸어 주는 것이 좋다. 바꾸는 방법은 다음과 같다.


블루투스 모듈 이름 및 PIN 의 변경

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <SoftwareSerial.h> //시리얼통신 라이브러리 호출
 
int blueTx=2;   //Tx (보내는핀 설정)at
int blueRx=3;   //Rx (받는핀 설정)
SoftwareSerial mySerial(blueTx, blueRx);  //시리얼 통신을 위한 객체선언
 
void setup() 
{
  Serial.begin(9600);   //시리얼모니터
  mySerial.begin(9600); //블루투스 시리얼
}
void loop()
{
  if (mySerial.available()) {       
    Serial.write(mySerial.read());  //블루투스측 내용을 시리얼모니터에 출력
  }
  if (Serial.available()) {         
    mySerial.write(Serial.read());  //시리얼 모니터 내용을 블루추스 측에 WRITE
  }
}
cs


위의 소스코드를 입력하고 아두이노에 업로드 해 주고 아두이노 IDE의 시리얼 모니터를 연다.


먼저  시리얼 모니터 입력창에 'AT' 라고 입력하고 전송 버튼을 누른다. 'OK' 라는 블루투스 모듈로 부터의 답변이 온다. 이는 블루투스 모듈과의 통신이 정상적으로 되었다는 의미이다.


AT를 입력하여 OK를 받았으면 블루투스 모듈의 이름을 변경하기 위하여 'AT+NAME원하는이름'  을 입력하고 전송버튼을 클릭하면 'OKsetname' 라는 메시지를 블루투스 측에서 보내주며 이름이 정상적으로 변경이 된다.


블루투스 페어링 암호인 PIN의 변경은 'AT+PIN원하는숫자' 를 입력하고 전송 버튼을 클릭하면 'OKsetPIN' 이라는 메시지와 함께 PIN이 정상적으로 변경되었음을 알려준다.


이제 스마트폰, 노트북 등에서 HC-06이 아닌 자신이 설정한 이름과 PIN으로 블루투스 모듈과의 페어링이 이루어지게 되는 것이다. 


아래는 나의 스마트폰과 블루투스 모듈과의 페어링하는 모습이다. 기기에 따라 다르겠지만 일반적으로 기기의 블루투스 설정메뉴에 들어가서 기기검색을 한 후 선택하면 PIN 을 요구하는데 이때 설정한 PIN 을 입력하면 된다.



이로써 블루투스 모듈의 이름과 PIN 을 변경완료 하였다.


이제 블루투스 모듈의 설정과 스마트폰과의 페어링이 끝났으므로 시리얼 통신을 통하여 문자열을 전송해 보겠다.


스마트폰과 블루투스 모듈과의 통신을 통한 문자열 전송

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
 
int blueTx=2;   //Tx (보내는핀 설정)
int blueRx=3;   //Rx (받는핀 설정)
SoftwareSerial mySerial(blueTx, blueRx);  //시리얼 통신을 위한 객체선언
String myString=""//받는 문자열
 
void setup() {
  Serial.begin(9600);   //시리얼모니터 
  mySerial.begin(9600); //블루투스 시리얼 개방
 
}
 
void loop() {
  while(mySerial.available())  //mySerial에 전송된 값이 있으면
  {
    char myChar = (char)mySerial.read();  //mySerial int 값을 char 형식으로 변환
    myString+=myChar;   //수신되는 문자를 myString에 모두 붙임 (1바이트씩 전송되는 것을 연결)
    delay(5);           //수신 문자열 끊김 방지
  }
  if(!myString.equals(""))  //myString 값이 있다면
  {
    Serial.println("input value: "+myString); //시리얼모니터에 myString값 출력
    myString="";  //myString 변수값 초기화
  }
}
cs


위의 소스는 페어링된 스마트폰에서 문자열을 보내면 아두이노 시리얼모니터에서 그 내용을 표시해 주는 소스이다. 이를 테스트 하려면 안드로이드폰 기준으로 구글스토어에서 앱을 하나 다운로드 받아야 한다. 'bluetooth serial controller' 라고 검색하면 맨위에 뜨는 앱을 설치하면 된다.




앱을 설치 후 실행하면 위와 같은 화면이 나온다. 'CONNECT' 를 눌러서 블루투스 모듈과 연결을 한다. 페어링 요청이 올 경우 PIN을 입력하면 된다. 블루투스 모듈과의 연결이 완료되면 위와 같이 'connected to 블루투스명' 이라고 블루투스 모듈과의 연결이 되었음을 알 수 있다. 연결이 되면 블루투스 모듈의 깜빡이던 LED가 연결이 되었음을 뜻하는 계속켜짐 상태가 된다.

이 상태에서 아두이노의 시리얼모니터를 열고 앱의 아래쪽에 있는 입력창에 아무 문구나 입력하고 Send 버튼을 눌러본다. 아래와 같이 무선으로 문자열이 블루투스 모듈을 통해 아두이노의 시리얼 모니터에 표시되는 것을 볼 수 있다.




여기에서 조금 더 응용하여 아두이노에 연결된 LED를 ON 또는 OFF  할 수도 있다. 이 의미는 무선으로 LED 뿐만 아니라 모터, 릴레이 등의 제어도 가능하므로 응용한다면 다양한 기능의 장치를 만들 수도 있는 것이다.


블루투스 모듈을 이용하여 LED 켜고 끄기

먼저 위의 블루투스 모듈과 아두이노의 연결에서 추가로 LED 를 13번 PIN 에 직접 꼽아 주었다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <SoftwareSerial.h> //시리얼 통신 라이브러리 호출
 
int blueTx=2;   //Tx (보내는핀 설정)
int blueRx=3;   //Rx (받는핀 설정)
SoftwareSerial mySerial(blueTx, blueRx);  //시리얼 통신을 위한 객체선언
String myString=""//받는 문자열
 
void setup() {
  Serial.begin(9600);   //시리얼모니터 
  mySerial.begin(9600); //블루투스 시리얼 개방
  pinMode(13, OUTPUT);  //Pin 13을 OUTPUT으로 설정 (LED ON/OFF)
}
 
void loop() {
  while(mySerial.available())  //mySerial 값이 있으면
  {
    char myChar = (char)mySerial.read();  //mySerial int형식의 값을 char형식으로 변환
    myString+=myChar;   //수신되는 문자열을 myString에 모두 붙임 (1바이트씩 전송되는 것을 모두 붙임)
    delay(5);           //수신 문자열 끊김 방지
  }
  
  if(!myString.equals(""))  //myString 값이 있다면
  {
    Serial.println("input value: "+myString); //시리얼모니터에 myString값 출력
 
      if(myString=="on")  //myString 값이 'on' 이라면
      {
        digitalWrite(13, HIGH); //LED ON
      } else {
        digitalWrite(13, LOW);  //LED OFF
      }
      
    myString="";  //myString 변수값 초기화
  }
}

cs


소스는 위의 문자열 전송 소스에서 LED 부분만 추가하여 코딩하였다. 'on' 이라는 문자열이 아두이노로 전송되어 온다면 13번 핀에 연결된 LED 가 켜지는 것이다. 테스트를 쉽게 하기 위하여 bluetooth serial controller 앱의 버튼을 미리 정의해 준다면 쉽게 문자열 입력이 아닌 버튼 클릭으로 LED를 켜고 끌 수가 있다. 앱을 실행하고 preference 를 눌러서 들어가면 된다.

스마트폰으로 아두이노에 연결된 LED 를 켜고 끄는 모습



이상으로 블루투스 모듈 HC-06를 아두이노와 연결하여 활용하는 방법을 알아보았다. 여기에 사용된 라이브러리인 SoftwareSerial 라이브러리에 대해서 더 알고 싶은 사람은 다음의 URL을 들어가보면 더욱 많은 함수들의 사용법을 알 수 있을 것이다.


https://www.arduino.cc/en/Reference/SoftwareSerial


SoftwareSerial 라이브러리의 Function 리스트


반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 임종권

    항상 도움 잘 받고 갑니다..

    대네브님 덕분에 아낀 시간은 정말 돈으로 환산할 수가 없을정도입니다.

    감사합니다!!!!!!

    2017.03.15 13:29 [ ADDR : EDIT/ DEL : REPLY ]
  3. JSPARK

    안녕하세요. 블로그 좋은글 잘 보고 있습니다.

    시리얼 통신상에서 이름도 바꾸고 PIN 번호도 바꾸고 나서 시리얼창에서는 이상이 없는데

    폰에서 블루투스 기능 켜고 나서 보니 아두이노 우노에 꽂은 블루투스모듈이 아예 검색이 안되네요..

    혹시 이유를 알수 있을까요??

    2017.03.19 12:01 [ ADDR : EDIT/ DEL : REPLY ]
  4. ㅇㅇ

    정보글 감사합니다. 질문 하나 드려도 될까요??
    핸드폰에서 문자열을 입력해 아두이노로 수신되는지 테스트하기 위해, 포스트에 소개된 앱을 다운받았는데,
    앱을 실행하기 전 블루투스 모듈을 안드로이드와 연결하면 앱에서 connect가 되질 않네요
    그래서 앱을 실행하여 앱 내에서 모듈을 페어링하면, 이번엔 문자열이 보내지지 않습니다..

    아두이노 나노를 쓰고 있고, 블루투스 모듈은 BK8000L, 안드로이드는 6.0 마시멜로인데
    어떤 게 문제일까요? 코드도 그대로 썼는데....ㅜㅠ

    2017.05.15 03:08 [ ADDR : EDIT/ DEL : REPLY ]
    • 페어링 연결에 문제가 있네요.
      매우 다양한 문제가 있을 수 있구요.
      모듈 초기화 및 설정이 제대로 되었는지 확인 바랍니다.
      다른 스마트폰으로도 한 번 해보세요.
      이 글만으로는 판단이 힘듭니다.

      2017.05.17 22:58 신고 [ ADDR : EDIT/ DEL ]
  5. sk

    안녕하세요 덕분에 시간절약도 많이하고 쉽게 이해했습니다.
    하나 궁금한점이, 제 폰이 갤럭시 S8+ 입니다. 블루투스 검색하면 변경한 이름과 PIN 번호로 등록까지 되는데, 결정적으로 페어링이 안됩니다 ㅠㅠ 블루투스 목록에 보이는데 막상 누르면 무응답이네요... 혹시 뭐가 문제일까요...??

    2017.10.16 20:06 [ ADDR : EDIT/ DEL : REPLY ]
    • 글쎄요... 다시 한 번 네임과 핀을 변경하고 해보는 수 밖에요... 스마트폰 기종하고도 상관이 없을 겁니다. 제가 알기론 S8 은 블루투스 5.0 이지만 하위 버전도 호환이 되니까요

      2017.10.25 08:34 신고 [ ADDR : EDIT/ DEL ]
  6. 지녁

    우와... 너무 재미있어 보여요.
    버튼을 누르면 엘이디가 꺼졌다 켜졌다 하게 만들어보고 싶은데 필요한 물건이

    1. 아두이노(이건 어떤 모델을 사면 되나요?)
    2. 블루투스 HC-06 모듈
    3. LED
    4. 블루투스 통신 앱
    5. 해당 코딩 소스

    이렇게만 있으면 되나요?
    어플 말고 물리적인 스위치로 LED를 블루투스 통신에 의해 온오프 시키는 방법도 있을까요?

    2017.10.18 14:14 [ ADDR : EDIT/ DEL : REPLY ]
    • 아두이노는 아무거나 해도 상관이 없습니다.
      하지만 대부분 초보자면 우노를 쓰지요
      준비물에 케이블 정도 추가로 필요하겠네요

      2017.10.25 08:35 신고 [ ADDR : EDIT/ DEL ]
  7. 배래박

    안녕하세요 좋은 글 써주셔서 도움이 많이 됐습니다
    대네브님의 다른글인 블루투스로ㅠ서보모터 제아하는 글을 따라 해봤더니 페너링까지는 다 잘됩니다. 그래서 서보모터를 하나 더 추가해서 두 개를 제아하려고 하는데 몇번 왔다갔다하면 블루투스 연결이 끊어지던데 이건 어떻게 하면 고쳐질까요

    2017.11.30 22:10 [ ADDR : EDIT/ DEL : REPLY ]
  8. ㅇㅇ

    정보글 감사합니다.
    한가지 문의드릴 게 있는데요
    본문에서 PIN번호를 시리얼 모니터를 통해 변경하셨는데
    PIN번호가 어플 상에서도 변경할 수 있는건가요?

    2018.03.30 13:35 [ ADDR : EDIT/ DEL : REPLY ]
    • 어플에서도 AT커맨드를 통해서 변경 가능 합니다.
      당연히 그런 어플은 직접 만드셔야겠죠? ^^

      2018.03.31 17:39 신고 [ ADDR : EDIT/ DEL ]
  9. ㅇㅇ

    당연히 직접 만들어야죠
    답변해주셔서 감사합니다

    2018.04.02 04:46 [ ADDR : EDIT/ DEL : REPLY ]
  10. wkddnwns27

    시리얼모니터 입력창에 AT입력 후 OK는 나오는데 그 이후 이름변경에서 OK답변이안나오네요 어떻게해야할까요 ㅠㅠ

    2018.06.07 18:26 [ ADDR : EDIT/ DEL : REPLY ]
  11. 안녕하세요

    여쭤볼게있는데 ㅠㅠ 블루투스 써서 미세먼지측정기 돌리려고하는데

    밑에 LED 부분만빼고 넣었는데 돌아가질않네요..


    #include <Wire.h> //LCD I2C 통신 사용
    #include <LiquidCrystal_I2C.h> //LCD I2C 통신 사용
    #include "sound_effect.h" // 사운드 이펙트 사용(음원효과)

    LiquidCrystal_I2C lcd(0x3F,16,2); //LCD 주소 할당

    int blue_pin = 2; //블루 LED
    int green_pin = 3; //그린 LED
    int red_pin = 4; //레드 LED
    int pin = 8; //먼지센서
    int cooler= 5; //쿨러
    int buzzer_pin = 13; //부저
    unsigned long duration; //지속 시간
    unsigned long starttime; //시작 시간
    unsigned long sampletime_ms = 5000; //샘플시간 5초 마다 업데이트
    unsigned long lowpulseoccupancy = 0; //Low 신호가 지속된 시간을 초기화
    float ratio = 0; //비율
    float concentration = 0; //입자 농도 0으로 초기화
    float pcsPerCF = 0; //한 입자당 CF를 0으로 초기화
    float ugm3 = 0; //최종 값으로 세제곱미터 당 마이크로 그램(㎍/㎥)
    uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0}; // 시계 이모티콘


    void setup() {
    Serial.begin(9600); //시리얼 통신 시작
    pinMode(8,INPUT); //미세먼지 센서 입력
    pinMode(2,OUTPUT); //블루 LED 출력
    pinMode(3,OUTPUT); //그린 LED 출력
    pinMode(4,OUTPUT); //레드 LED 출력
    pinMode(13,OUTPUT); //부저 출력
    pinMode(5,OUTPUT); // 쿨러 ON/OFF
    digitalWrite(blue_pin, HIGH); //애노드 RGB LED 이므로 HIGH이면 꺼진다.(이하 2개 동일)
    digitalWrite(green_pin, HIGH);
    digitalWrite(red_pin, HIGH);
    digitalWrite(cooler,LOW);
    starttime = millis(); //현재 시간 대입
    lcd.begin(); //LCD 시작
    lcd.backlight(); //백라이트 ON
    lcd.clear(); //LCD 초기화
    lcd.print("Hello! SILLA!"); //다음 문자를 LDC에 출력
    lcd.setCursor(0, 1); //두 번째 줄로 커서 이동
    lcd.print("I will find DUST");
    lcd.createChar(1, clock); //시계 이모티콘 출력
    seSqueak(13); //초기시작 음원효과
    delay(5000); // 5초 대기
    if ( ugm3 == 0) { //만약 결과값이 0보다 작으면 아래를 LCD에 출력한다.
    lcd.clear();
    lcd.print("Analysing Data");
    lcd.write(1);
    lcd.setCursor(0, 1);
    lcd.print("................");
    lowpulseoccupancy = 0;
    starttime = millis();
    }

    }

    void loop() {
    duration = pulseIn(pin, LOW);
    lowpulseoccupancy = lowpulseoccupancy+duration;

    if ((millis()-starttime) >= sampletime_ms) { //만약 샘플 시간이 5초라면(위에서 정한 샘플 시간)
    ratio = lowpulseoccupancy/(sampletime_ms*10.0); // 정수 백분율
    concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // 미세먼지 센서 사양 시트 곡선 사용
    pcsPerCF = concentration * 100; // 입자 농도에 100을 곱하면 입자당 CF값
    ugm3 = pcsPerCF / 13000; //입자당 CF를 13000으로 나누면 미터세제곱당 마이크로그람의 미세먼지 측정값

    if (ugm3 > 0.01 ) { // 만약에 결과값이 0.01보다 크면 미세먼지 값을 출력하라
    lcd.clear();
    lcd.print("Dust:");
    lcd.print(ugm3);
    lcd.print("ug/m3");
    lowpulseoccupancy = 0;
    starttime = millis();
    }

    if (ugm3 > 0.01 && ugm3 <= 30) { //만약 미세먼지 값이 0.01 보다 크고 30이랑 같거나 작으면 아래를 출력
    lcd.setCursor(0, 1);
    lcd.print("Good! ^v^");
    setColor(0, 0, 225); //블루
    noTone(13); //소리 끔
    digitalWrite(5,LOW);
    }
    else if (ugm3 > 30 && ugm3 <= 80) { //만약 미세먼지 값이 30보다 크고 80이랑 같거나 작으면 아래를 출력
    lcd.setCursor(0, 1);
    lcd.print("SoSo! ^ ^;");
    setColor(0, 255, 225); //블루그린
    noTone(13); //소리 끔
    digitalWrite(5,LOW);
    }
    else if (ugm3 > 80 && ugm3 <= 150) { //만약 미세먼지 값이 80보다 크고 150이랑 같거나 작으면 아래를 출력
    lcd.setCursor(0, 1);
    lcd.print("Bad! T.T");
    setColor(255, 120, 0); //오렌지
    noTone(13); //소리 끔
    digitalWrite(5,HIGH);
    }
    else if (ugm3 > 150) { //만약 미세먼지 값이 150 보다 크면 아래를 출력
    lcd.setCursor(0, 1);
    lcd.print("Be Careful @.@");
    setColor(255, 0, 0); //레드
    tone(13, 500); //500Hz로 소리 재생
    digitalWrite(5,HIGH);
    }
    }
    }

    void setColor(int red, int green, int blue) { //RGB LED 출력을 위한 아날로그 출력 세팅
    analogWrite(red_pin, 255-red);
    analogWrite(green_pin, 255-green);
    analogWrite(blue_pin, 255-blue);
    }

    이소스에 블루투스기능넣는건 안되는건가요 ㅠ 따로 ON/OFF해줄 입력핀이없어송..

    2018.06.08 15:25 [ ADDR : EDIT/ DEL : REPLY ]
    • 공지사항에도 적어 놓았는데 소스는 봐드리지 않습니다. 죄송합니다

      2018.06.08 16:35 신고 [ ADDR : EDIT/ DEL ]
  12. 시엔

    안녕하세요. 저 궁금한것이 있는데 아두이노와 블루투스 이어폰을 페어링하여 어떤 특정 상황일때 블투 이어폰으로 음성을 전달하는걸 해보려고하는데 어떤 방법들이 있는지 여쭤봐도 되나요..?

    2018.10.15 19:45 [ ADDR : EDIT/ DEL : REPLY ]
    • 가능할것 같습니다. 예를들어 센서에 무엇인가 감지되고 이를 아두이노에서 감지해서 mp3 모듈의 소리 데이터를 블투 모듈을 통해서 블투 이어폰으로 날리면... 가능하겠죠?!

      2018.10.15 19:52 신고 [ ADDR : EDIT/ DEL ]
  13. 시나

    질문 하나만 드려도 될까요?
    앱 인벤터와 연동해서 블루투스모듈을 사용중인데 어플에서 매 초마다 한 줄의 데이터를 연속적으로 전송하는데 한번씩 데이터가 중간에 짤려서 수신됩니다. 위 코드의 수신문자열 끊김방지 부분처럼 딜레이를 넣어줬는데도 여전하네요. 어플에서의 수신주기가 1초라서 모듈의 전송 딜레이를 1초 이상(3초)으로 설정했는데 잘못 설정한건가요?

    2018.11.09 11:39 [ ADDR : EDIT/ DEL : REPLY ]
    • 글쎄요. 그건 저도 잘 모르겠네요. 계속 수정하고 디버그 해 보시는것이...

      2018.11.09 12:37 신고 [ ADDR : EDIT/ DEL ]
  14. 좋은 글 정말 감사드립니다. 큰 도움이 되었습니다.
    제 경험을 공유하고자 잠시 몇 글자 적습니다.
    저는 아두이노 블루투스 쉴드 v2.2를 사용하였습니다.
    그런데 공개하신 소스로 아무리 해도 AT 커맨드 명령도 안먹더군요.
    그래서, 한참 구글링을 해보니 HC-06보드와 쉴드 v2.2와 일부 설정이 상이했습니다.
    결국 Tx, Rx핀을 4,5로 바꾸고 블루투스 시리얼 통신 속도를 38400bps로 바꾸고 나니 잘 되네요.
    앞으로도 많은 유익한 포스트 부탁드립니다. 감사합니다.

    2018.12.04 10:24 [ ADDR : EDIT/ DEL : REPLY ]
  15. 도전자

    안녕하세요. 유용하게 보고 갑니다. 혹시 반대로 아두이노에서 보내는 데이터를 휴대폰에서 받는 방법도 있을까요? 저도 비슷한 모델을 만들어봤는데 보내는것만 되고 받는것은 안되더라고요..

    2019.06.10 03:00 [ ADDR : EDIT/ DEL : REPLY ]
    • 저는 안해봤지만 가능한걸로 압니다.
      https://m.blog.naver.com/PostView.nhn?blogId=intopion&logNo=221504663095&isFromSearchAddView=true
      여기 한 번 보세요

      2019.06.10 07:54 신고 [ ADDR : EDIT/ DEL ]
  16. 전자공학과

    안녕하세요.... 정말 도움이 절실히 필요합니다ㅠㅠㅠ
    저는 led가 아닌 모터를 제어하고 싶어서 저 코드와 어플까지 방법을 모두 따라했습니다.
    어플에는 HC_05(블루투스센서)가 연결 되었다고 뜨는데 ON이라고 치면 시리얼모니터에 문자열이 뜨지도 않고 모터도 안돌아 갑니다.. 뭐가 잘못된건지 정말 모르겠습니다..

    2019.10.29 23:17 [ ADDR : EDIT/ DEL : REPLY ]
  17. 전자공학과

    안녕하세요.... 정말 도움이 절실히 필요합니다ㅠㅠㅠ
    저는 led가 아닌 모터를 제어하고 싶어서 저 코드와 어플까지 방법을 모두 따라했습니다.
    어플에는 HC_05(블루투스센서)가 연결 되었다고 뜨는데 ON이라고 치면 시리얼모니터에 문자열이 뜨지도 않고 모터도 안돌아 갑니다.. 뭐가 잘못된건지 정말 모르겠습니다..

    2019.10.29 23:17 [ ADDR : EDIT/ DEL : REPLY ]
  18. 나랑놀자

    안녕하세요. 질문이있는데요. 위에있는 소스 HC-06에서는 되던게 AT-09로 바꾸면 안되는데 왜그런거일까요?...

    2020.03.17 15:19 [ ADDR : EDIT/ DEL : REPLY ]
  19. 초딩우노

    기기의 알람이 작동을 하면 우노에서 블루투스로 가까운 거리에 연결되어 있는 휴대폰으로 메세지를 줄수 있게 만들고 싶은데 아직 초보이라서 어떻게 하면 될까요?

    2020.07.18 13:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 기기의 알람이 작동되면 우노에서 감지해서 블루투스에 연결된 스마트폰으로 신호를 보내면 됩니다. 블루투스를 통해서 신호를 보내는 방법은 이 글을 참고하면 됩니다

      2020.07.18 14:15 신고 [ ADDR : EDIT/ DEL ]
  20. 이름안바껴요

    매우급함!!!!!! 안녕하세요?? 아두이노를 잘하시네요...
    저 이거 따라하는데 이름 확인이랑 at쳣을때 ok뜨는데 이름 변경이 안돼요~~!!!ㅠㅠㅠㅠㅠㅠㅠ 제발 도와주세욥 제발!!!!ㅠㅠㅠ 급해용

    2020.08.07 08:40 [ ADDR : EDIT/ DEL : REPLY ]
  21. 아두이노

    안녕하세요 좋은 글 감사합니다!
    그런데 위의 포스팅을 따라하다가 질문이 있어서 댓글 남깁니다.
    위의 코드를 아두이노에 컴파일 한 후에 시리얼 모니터를 켜니 계속해서
    sensor_volt = 1903.20V
    R0 = -0.10
    위와 같은 내용의 두 줄이 계속 반복해서 화면에 표시됩니다.
    시리얼 모니터는 'line ending 없음'과 '9600 보드레이드'로 설정 완료였습니다.
    시리얼 모니터 입력창에 AT를 적어도 아무런 변화 없이 계속해서 위의 두 줄만 화면에 계속 표시됩니다.
    혹시 해결방법을 알고 계시면 답변해주시면 감사하겠습니다.

    2021.04.16 11:18 [ ADDR : EDIT/ DEL : REPLY ]