@zahary-momchilov Yes. You can use WiFi. However it is advisable to have a generic USB/UART adapter with 3.3v output as second option. Any adapter with 3.3V output level will do. The latter sorts out most Arduinos.
You are connecting to GATT Server as client, so what you can do is request the server send you notifications. You can't send notifications as a client. Bluetooth.PROP_NOTIFY means you can request notifications on that characteristic.
I'm guessing that characteristic is not writable (read only) hence you get that error?
If what you want is to be notified by the Server (e.g. when the value changes) use the char.callback(trigger=Bluetooth.CHAR_NOTIFY_EVENT, handler=YourHandlerFunct, arg=YourOptionalArgument)
P20 is an ADC1 pin, are you sure you can't use it?
As for the ADC2 that is not currently supported in the Python side because it it's a bit of an oddball: due to hardware/firmware limitations you can't use WiFi and ADC2 at the same time. For now to use it you'd have to program in C and have WiFi off.