?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

질문 | 아두이노 블루투스 비콘 질문이요!

페이지 정보

작성자 졸업작품준비생 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일18-05-15 19:10 조회19회 댓글1건

본문

제가 아두이노와 블루투스 모듈고 비콘 4개를 통해 RSSI세기 값을 받아오려고 하는데요.


비콘이 랜덤으로 받아져서 제가 원하는 비콘 순서대로 받고 싶은데요 받을 수 있는건지 여쭤보고싶습니다.


#include<SoftwareSerial.h>

int bluetoothTx = A2;
int bluetoothRx = A3;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
int a,b,c,d = 0;
char commandbuffer1[200];
char commandbuffer2[200];
char commandbuffer3[200];
char commandbuffer4[200];




void setup() {
Serial.begin(9600);
bluetooth.begin(9600);

bluetooth.println("AT");
bluetooth.println("AT+RENEW");
bluetooth.println("AT+IMME1");
bluetooth.println("AT+ROLE1");
bluetooth.println("AT+ADTY2");
bluetooth.println("AT+SHOW0");




}

void loop() {
 
bluetooth.println("AT+DISC?");
Serial.println("AT+DISC?");
delay(600);
while( bluetooth.available() && (a< 99))

{
commandbuffer1[a++] = bluetooth.read();
delay(40);
}

commandbuffer1[a++]='\0';

while( bluetooth.available() && (b< 99))

{
commandbuffer2[b++] = bluetooth.read();
delay(40);
}

commandbuffer2[b++]='\0';

while( bluetooth.available() && (c< 99))

{
commandbuffer3[c++] = bluetooth.read();
delay(40);
}

commandbuffer3[c++]='\0';

while( bluetooth.available() && (d< 99))

{
commandbuffer4[d++] = bluetooth.read();
delay(40);
}

commandbuffer4[d++]='\0';


if(a>0)
{
  Serial.println((char*)commandbuffer1);
  a=0;
  delay(100);
}

if(b>0)
{
  Serial.println((char*)commandbuffer2);
  b=0;
  delay(100);
}

if(c>0)
{
  Serial.println((char*)commandbuffer3);
  c=0;
  delay(100);
}

if(d>0)
{
  Serial.println((char*)commandbuffer4);
  d=0;
  delay(100);
}
}

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

비컨도 신호를 쏘는 주기가 있고 스캔하는 쪽도 스캔하는 주기가 있어서 원하는 순서대로 받을수는 없을겁니다. 몇 회에 걸쳐 수신된 비컨리스트 중 중복된 것을 거르고 최종 결과 리스트를 만들어서 사용하셔야 할겁니다.