본문 바로가기

반응형

전체 글

(645)
캡스톤 : 송수신문제점고찰 BLE 를 구현해서 각각의 정보를 받는것은 괜찮았다. 하지만 아두이노의 특성상 setup의 하나의 스레드 즉 단일 스레드로서의 한계를 느꼇다 ​ 명령어를 실행하고 그 값을 다 받을때까지 기다린다음 필요하 함수를 실행하는것은 시간이 오래걸린다는 것. ​ 동영상을 보면 알겠지만. 왼쪽에서 초록불 빨간불로 바꾸고나서 한참뒤 그값이 변경된것을 한참뒤에 적용하는 소스. ​ 이러한 문제점을 고치기위해 thread가 필요하였는데 아두이노에서 라이브러리로 스레드는 아니지만 스레드처럼 라이브러리를 구현하여 사용할수 있게 하였다. ​ 물론 delay같은 함수를 쓰면 단일스레드이므로 동작자체가 다멈춘다 하지만 라이브러리에서 제공하는 sleep을 쓰면 실제 아두이노에서 스레드를 제공하는것처럼 느낄수 있다. https://ww..
캡스톤 : 아두이노간 비콘구현 1:n 통신 BLE통신의 브로드캐스트모드에서 하나의 ble (hm10)이 마스터슬레이브로서 여러데이터들은 무작위로 수신받는다. 그형태는 at+disi? 명령어를 한결과다 이렇듯 원하는 uuid와 마지막 rssi 값을 추출할수잇다면 거리에따른 함수구현이가능하다.. #include #define BT_RX 2 #define BT_TX 3 char str[1000]; char check_end[8]={'O','K','+','D','I','S','C','E'}; char check_start[7] = {'O','K','+','D','I','S','C'}; char uuid[78]; char c; int tmp; int value; int cnt; int p;//이전값 참조 인덱스 int end_p; int start_p; ..
캡스톤 : hm-10 비콘 활성화 AT+RENEW
캡스톤 : 비콘(BEACON) 구현 비콘의 DATA 시트이다 UUID는 16bytes 로 구현되어있다. 그리고 AT명령어로 이UUID를 변경가능하다. 마스터 슬레이브의 AT+DISI 라는 명령어를 사용하면 지금 장치주변으 모든 비콘의 값을 받을수가있다. 1111111111111111111111111111 이라는 값은 내가 다른 아두이노 비콘에 대해 임의로 설정하는 값이다. 마지막 값은 rssi 값을 확인할수있다. 이러한 값을알면 어느 장치에서 어떤정보를 어느정도 위치라는 값을 얻을수가있다. 우리가 캡스톤에서 구현해야할것은 위치정보 (얼마나 가까운지) 그리고 신호등의 적신호 청신호를 수집해야한다. 따라서 두개의 비콘에서 UUID중 4바이트는 고유 식별 번호로 지정하고 나머지 4바이트를 현재상태 식별을 하게된다면 아두이노에서 쉽게 현재 어떤 ..
캡스톤 : 아두이노 안드로이드 통신 마무리 HM10 오픈소스의 수정은 끝나엿지만 통신시 write과정이 너무 복잡하고 기존 소스를 바꾸자니 이해해야할부분이 많아 최소 몇일 더걸릴것가타고생각. 따라서 hc06묘듈을 하나 구매하여 통신에 이용 이전에 만들어놧던 소스에 잘적용되는 것을 볼수 있었다. hm10모듈로는 비콘을 구성하여 거리적인 값을 구현하여 통신하면 좋을 듯하다. #include #define BT_RX 2 #define BT_TX 3 char c; int tmp=0; SoftwareSerial HC06(BT_RX, BT_TX); // RX핀(7번)은 HC06의 TX에 연결 // TX핀(8번)은 HC06의 RX에 연결 void setup() { Serial.begin(9600); HC06.begin(9600); pinMode(8,OUTPU..
캡스톤 : 오류해결2일차(hm10 안드로이드 블루투스) 아무리 코드를 봐도 나의 코드에 문제가 없다고 판단하고 자료조사를 하던중 android Develper 페이지에서 힌트를 찾앗다. LE모델 즉 LOW Energy 블루투스의 경우 bluetoothgatta라는 형식의 메소로 저전력모듈을 처리하는것 따라서 gatta 오픈소스를 이용해 오픈개발을 시도하였다. https://github.com/googlearchive/android-BluetoothLeGatt googlearchive/android-BluetoothLeGatt Migrated:. Contribute to googlearchive/android-BluetoothLeGatt development by creating an account on GitHub. github.com 하지만 오픈소스 개발중..
캡스톤 : anroid connect(); 오류에 관하여 http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=tech_comm&wr_id=10 Bluetooth Low Energy 모듈 (iBeacon) > Communication module | HardCopyWorld Bluetooth Low Energy 모듈 (iBeacon) > Communication module | HardCopyWorld www.hardcopyworld.com 현재 안드로이드 hm10 블루투스모듈과 안드로이드 oreo 8.0 api 29 G6 모듈에 코넥트 문제를 겪고잇다. connect 할당시 ret1 값 즉 time out or reutn null 값이 반환이 되는데 이이유를 못찾고 있다. 첫번째 문제점으로 UUID -..
캡스톤 : 아두이노 안드로이드 블루투스 통신 https://beomnaegol.tistory.com/entry/Bluetooth-UUID 먼저 UUID란 개념을 알아야한다 . - 블루투스의 UUID 란? 범용 고유 번호(Universally Unique IDentifiers) 라고 불리며, 128 비트의 숫자들을 조합한다. 말 그대로 범용적으로 사용할 수 있는 고유의 ID를 사용하기 위해 생성되며, 그렇기 때문에 128 비트의 HEX 조합은 unique 하여야 한다. Bluetooth 에서는 device에서 제공하는 service를 검색하여 각 service 마다 UUID 를 부여하는 등 많은 부분에서 사용된다. - UUID 의 구성 요소 UUID = (time_low) - (time_mid) - (time_high_and_version) - (c..

반응형