Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ESP 32 WROOM Arduino jak pozyskać adres clienta bluetooth zaraz po sparowaniu.

coshiz 10 Aug 2021 22:56 285 4
  • #1
    coshiz
    Level 11  
    Dzień dobry,
    Proszę o pomoc. Potrzebuję odczytać adres klienta bluetooth zaraz po sparowaniu.
    Od jakiegoś czasu szukam po stronach internetowych i znalazłem taki kod (zamieszczam poniżej opisu problemu).
    Czy zna ktoś może komendę (druga linijka), która pozwoli na zrealizowanie instrukcji warunkowej zaraz po sparowaniu. W tej chwili
    udaje się odczytać adres mac bluetooth ale dopiero po otwarciu terminala np. na smartfonie a samo sparowanie nie daje efektu.
    Z góry dzięki za pomoc.

    void callback(esp_spp_cb_event_t event, esp_spp_cb_param_t *param) {

    if (event == ESP_SPP_SRV_OPEN_EVT){

    Serial.println("Client Connected has address:");

    for (int i = 0; i < 6; i++) {

    Serial.printf("%02X", param->srv_open.rem_bda);

    if (i < 5) {
    Serial.print(":");
    }

    }
    }
    }
    źródło: https://techtutorialsx.com/2018/12/11/esp32-arduino-serial-over-bluetooth-get-client-address/
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • #2
    khoam
    Level 41  
    Adres klienta jest w param->srv_open.rem_bda i akurat w tym przykładzie jest wyświetlany w monitorze portu szeregowego, ale nie musi.

    coshiz wrote:
    Czy zna ktoś może komendę (druga linijka), która pozwoli na zrealizowanie instrukcji warunkowej zaraz po sparowaniu.

    Nie bardzo rozumiem. O jaki warunek konkretnie chodzi?
  • #3
    coshiz
    Level 11  
    Dziękuję za odpowiedź.
    Rzeczywiście nie sprecyzowałem dokładnie problemu.
    Istotnie adres jest wyświetlany w monitorze portu szeregowego i to działa bez zarzutu.
    Problem polega na tym że jest on wyświetlany dopiero wtedy kiedy na urządzeniu dołączonym do ESP32 przez bluetooth uruchomię terminal. Akurat uruchamiam w tym celu darmowy programik ze sklepu play "Arduino bluetooth controller".
    Chodzi mi o to żeby nie trzeba było uruchamiać dodatkowych aplikacji tylko zaraz po sparowaniu wyświetlał się w terminalu adres klienta.
    Podejrzewam, że zamiast komendy ESP_SPP_SRV_OPEN_EVT trzeba użyć na przykład coś w rodzaju ESP_SPP_INIT_EVT ale to mi nie działa.
    Pozdrawiam
    Coshiz
  • #4
    khoam
    Level 41  
    Może ESP_SPP_DISCOVERY_COMP_EVT ?
  • #5
    coshiz
    Level 11  
    Niestety ale nie działa.
    Kompilacja przebiega pomyślnie ale nie wchodzi w instrukcję warunkową przy tej komendzie.
    Ja też cały czas szukam i jeśli znajdę to oczywiście zamieszczę odpowiedź.
    Jeszcze raz dziękuję za pomoc.
    Pozdrawiam
    Coshiz