05-16 00:01
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

miinsun

[์•„๋‘์ด๋…ธ] ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹  ๋ณธ๋ฌธ

IoT/Arduino

[์•„๋‘์ด๋…ธ] ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ 

miinsun 2021. 12. 3. 18:11

 

๐Ÿ’ป ์‹ค์Šต ํ™˜๊ฒฝ

Board : Arduino UNO
Language : C

 

  •  ํšŒ๋กœ๋„
HC-06 Arduino UNO
VCC 5V
GND GND
TX D2
RX D3

 

  • ์Šค๋งˆํŠธํฐ ์„ค์ •
  1. BlueTooth Test ์–ดํ”Œ ๋‹ค์šด
  2. ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋ธ(HC-06)๊ณผ ์—ฐ๊ฒฐ
  3. ํŽ˜์–ด๋ง ํ›„ HC-06์˜ LED๊ฐ€ ๊นœ๋นก๊ฑฐ๋ฆผ์„ ๋ฉˆ์ถ”๊ณ  On์ƒํƒœ๋ฅผ ์œ ์ง€
  4. ์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋˜๋ฉด ์•„๋‘์ด๋…ธ ๋ณด๋“œ์™€ ํ†ต์‹  ์‹œ์ž‘

 

๐Ÿ’ฌ ์š”๊ตฌ ์‚ฌํ•ญ - 1

๋ธ”๋ฃจํˆฌ์Šค ๋ฌด์„  ํ†ต์‹ ์„ ์ด์šฉ
์Šค๋งˆํŠธํฐ์—์„œ ์ „์†กํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— ์ถœ๋ ฅ
์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— ์ž…๋ ฅ๋ฐ›์€ ๋ฉ”์‹œ์ง€๋ฅผ ์Šค๋งˆํŠธํฐ์— ์†ก์‹ 

 

๐Ÿ“Œ Code - 1

#include <SoftwareSerial.h>

SoftwareSerial bt(2,3);

void setup(){
    Serial.begin(9600); // ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ดˆ๊ธฐํ™”
    bt.begin(9600);  // ๋ธ”๋ฅดํˆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™”
    Serial.println("ready");
}

void loop(){
    if(bt.available()){ // ๋ธ”๋ฃจํˆฌ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด
        Serial.write("PHONE: "); 
        Serial.write(bt.read()); //์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ๋กœ ๋ฐ›์€ ๋‚ด์šฉ ์ถœ๋ ฅ
        Serial.println();
    }
 
    if(Serial.available()){ // ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด
        bt.write("PC: ");
        bt.write(Serial.read()); // ์Šค๋งˆํŠธํฐ์œผ๋กœ ๋ฐ›์€ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ
        bt.println()
    }
}

 

๐Ÿ’ฌ ์š”๊ตฌ ์‚ฌํ•ญ - 2

์†ก์ˆ˜์‹ ์„ ์ง€์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ์š”๊ตฌ์‚ฌํ•ญ 1์„ ์ˆ˜์ •
(16Byte์˜ ๊ณ ์ • ํฌ๊ธฐ ๋ฉ”์‹œ์ง€๋กœ ์†ก์ˆ˜์‹  ์ง„ํ–‰ - ๋‚จ์€ ์˜์—ญ์€ 'X'๋กœ ์ฑ„์šฐ๊ธฐ)

 

๐Ÿ“Œ Code - 2

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2,3);

byte buffer[1024];
int bufferPosition;

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);
  bufferPosition = 0;  
}

void loop() {
  if(BTSerial.available()){
    
    byte data = BTSerial.read();
    
    Serial.write(data);
    buffer[bufferPosition++] = data;
  
    if(data == '\n'){
      buffer[bufferPosition] = '\0';
  
      BTSerial.write(buffer, bufferPosition);
      bufferPosition = 0;
    }
  }
}
Comments