[아두이노#152] 블루투스(AT09)모듈로 아두이노 2개(master/slave) 1:1 통신해보기(녹칸다/포로리야공대가자)
프로그래밍/블루투스통신 2020. 11. 23. 22:03
회로도준비중
블루투스(AT09)모듈로 아두이노 2개(master/slave) 1:1 통신해보기
-아두이노 2개를 준비해서 각각 블루투스모듈(AT09)를 1개씩 연결해보자!
-AT09의 AT COMMAND를 이용해서 하나는 마스터모드(master)하나는 슬레이브모드(slave)로 설정해보자!
-마스터와 슬레이브가 페어링 되는지 확인해보자!
-페어링했을때 데이터를 어떻게 주고받는지 확인해보자!
-간단한 LED와 버튼(택트스위치) 예제 정도 만들어보고 후속편을 준비하자!
목표)
시리얼통신 송수신
특정메시지에 대해서 led점멸
master의 버튼에 의한 slave led제어
아스키코드로 처리하기
byte array로 처리하기
예제 152-1 블루투스모듈인 AT09에 마스터모드와 슬레이브모드를 선택할 수 있게끔 만들어보자!
* 주의사항! 아두이노에서 블루투스모듈AT09와 uart통신을 하기 위해서
* 데이터의 제일 끝에 CR(0x0D), LF(0x0A) 이걸 붙여야함!
* AT+INQ : AT09가 마스터모드일때 주변 디바이스를 검색하는 명령어!
* AT+CONA[mac address] : mac주소로 슬레이브와 블루투스 페어링!
* 예시)
* AT+CONA50338BF41EAF : 50338BF41EAF주소로 페어링을 해라!
* 이코드를 활용하면.. 모드변경 OK.. master모드에서 slave와 페어링 OK..!
예제 152-2-1(master 코드)
* 유저가 시리얼모니터를 통해 AT커맨드로 페어링 하는게 아니라
* 아두이노의 코드로 페어링이 되게 할 수는 없는가?
* 자동 페어링은 어렵다...
* 어느정도 합의점을 제안해보자!
예제 152-3-1(master 코드)
* 슬레이브에 LED 1개가 장착되어있다!
* 마스터에서 0을보내면 LED가 꺼지고 1을 보내면 켜지도록하라!
* (실제 데이터) '0' 0x0D, 0x0A : LED OFF
* (실제 데이터) '1' 0x0D, 0x0A : LED ON
* 1초에 한번씩 켰다가 껏다가 해보자..!
예제 152-4-1(master 코드)
* 마스터에 버튼2개가 있다.
* 버튼은 D4, D5에 연결되어있다.
* 버튼을 눌렀을때 슬레이브에 연결된 LED가 제어되도록 해보자!
* 첫번째 버튼을 누르면 빨간LED가 켜지고 두번째 버튼을 누르면 녹색 LED가 켜진다!
* 4바이트로 제어를 해보자! (그중 2바이트는 cr, lf)
* 예시) 0 0 CR LF : 첫번쨰꺼 꺼라
* 예시) 0 1 CR LF : 첫번쨰꺼 켜라
* 예시) 1 0 CR LF : 두번째꺼 꺼라
* 예시) 1 1 CR LF : 두번쨰꺼 켜라