이전 글인 esp32 study를 바탕으로 communication을 시도해보았다.
Development Goals
현재 목표는, 버튼을 통해 인터럽트를 주고 그 인터럽트를 통해
microchip과 esp32는 서로 uart를 통한 communication으로 data를 주고 받는다.
esp32는 그 data를 다시 ble를 통해 phone app으로 주고 받고,
socket과도 wifi를 통해 data를 주고 받는다.
총 esp32는 3개의 communication을 주고 받는다.
Development Environment
Arduino IDE에서 ESP32와 연결된 port를 선택, 이때, port는 장치관리자를 통해 어떤 port인 지 확인
Upload는 à 모양의 icon을 통해 가능하다.
파일 -> 환경설정 -> 추가적인 보드매니저 URLs
->https://dl.espressif.com/dl/package_esp32_index.json 을 통해 esp32의 보드매니저 추가
툴 -> 보드 -> 보드매니저-> Esp32검색을 통해 esp32 보드매니저 설치
툴 -> 모드 -> ESP32 Arduino -> ESP32 Dev Module 선택
Upload Speed : esp32 라이브러리의 통신속도가 115200으로 세팅되어 있기 때문에 115200으로 변경
을 하면 개발을 위한 셋팅은 끝난다.
이전 글에서 esp32에 대해 배웠지만 통신쪽에 대해서 공부하지는 않았다.
wifi와 uart communication은 많이 해보았을 것인데 ble라는 것이 다소 생소할 수 있다.
따라서 ble에 대한 공부를 추가적으로 하였다.
BLE 연결 방식
Advertisde Mode :
주로 자신의 존재를 알리거나, 적은 양의 User data를 보낼 때 사용한다.
Advertiser(Peripheral) : 일정한 주기로 신호를 방송하듯 주변에 뿌리는 디바이스.
Observer(Central) : Advertiser 에게 신호를 받기 위해 주기적으로 Scanning 을 하는 디바이스.
Connection Mode :
양 방향 통신을 하거나, Advertise 만으로는 많은 양의 데이터를 주고 받을 수 없을 때 사용한다.
1대1 통신이다.
Peripheral(Slave) : 연결하기 위한 Advertise 신호를 주기적으로 보내다가, Central 디바이스가 연결 요청을 보내면, 이를 수락해 연결한다.
Central(Master) : 다른 디바이스의 Advertise 신호를 주기적으로 스캔하다가, 연결을 요청한다.
BLE는 Profile, Service, Characteristic의 구조로 이루어져있다.
Profile : BLE 장치가 어떤 일을 하는 장치인지 나타내는 개념적인 구분, service들의 묶음
Service : 특정한 기능과 관련이 있는 데이터들의 집합, 서로를 구분하기 위해 고유한 UUID 값을 가지며 블루투스 표준에 정의된 Service경우, 16bit UUID 값을 가진다.
BLE 사이트에서 제공되는 서비스의 UUID는 https://www.bluetooth.com/에서 확인 가능하다.
Characteristic : 단 하나의 data를 포함
Service와 마찬가지로 UUID라 불리는 구분자를 가지고 있다.
BLE에 대해서도 공부를 하였으니, 개발을 하였다.
'Project > BLE' 카테고리의 다른 글
[BLE] Bike Data Acquisition (ble 최종) (0) | 2022.04.11 |
---|---|
[BLE] esp32 communication using AT command (0) | 2022.04.11 |
[BLE] esp32 study (0) | 2022.04.11 |
[IOT] 2. Fan Control with BLE (0) | 2021.07.12 |
[IOT] 1. Fan Control with Arduino,relay Module (0) | 2021.06.23 |