前回と同様、esp32 +BLEで、デバイス間通信で
Broadcast Networkの、Advertising を使って通信のテストしてみました。
一方向の送信のみで、GAP Profileで、最大 31 byteらしいのですが、
GATT に比べて、connect不要でも通信できそうです。
# 参考のコード
adv(配信側 / Peripheral device):
examples/bluetooth/ble_adv
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/ble_adv
client(Central device):
前回の Gatt Client実装 参考にしています。
http://knaka0209.blogspot.jp/2017/04/esp32-7-BLE.html
# 解説
Advertising(配信):
ble_adv/main/app_bt.c
static void hci_cmd_send_ble_set_adv_data(void) で、
配信データを作成部、デバイス名の後ろに、
送信データを追加しておきます。(センサ値/デバイス制御コード等 )
client(受信):
esp_gap_cb()
adv_name = esp_ble_resolve_adv_data(scan_result->scan_rst.ble_adv,
ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len);
*) esp_ble_resolve_adv_dataの戻り値で、データ部(デバイス名 含む)が取得できましたので
追加したデータ取得できました。
#Log ,client

# 参考のサイト
https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/ble_adv
http://esp-idf.readthedocs.io/en/latest/api/bluetooth/esp_gap_ble.html
0 件のコメント:
コメントを投稿