Arduino 2.0.1 and newer support slave and master mode. The two modes
have a begin() method with different signature:
```
// Slave Begin
bool TwoWire::begin(uint8_t addr, int sdaPin, int sclPin, uint32_t frequency)
// Master Begin
bool TwoWire::begin(int sdaPin, int sclPin, uint32_t frequency)
```
Use type casting to make sure that overloaded method for master mode
is used.
When using static TAG is only valid in the current compile unit. For
some reason it seems that the current ESP8266/ESP32 compiler use the
instance from ble.cpp, but it seems that this causes issues with newer
compiler leading to compile time errors like this:
In file included from /root/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-log.h:164,
from /root/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:71,
from /root/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:36,
from src/esphome/core/esphal.h:3,
from src/esphome/core/helpers.h:10,
from src/esphome/components/esp32_ble/ble_uuid.h:3,
from src/esphome/components/esp32_ble/ble_advertising.cpp:5:
src/esphome/components/esp32_ble/ble_advertising.cpp: In member function 'void esphome::esp32_ble::BLEAdvertising::start()':
src/esphome/components/esp32_ble/ble_advertising.cpp:64:14: error: 'TAG' was not declared in this scope
ESP_LOGE(TAG, "esp_ble_gap_config_adv_data failed (Advertising): %d", err);
^~~