ESP32 Arduino firmware

Job ID: 31339747

Budget: €250 – €750 EUR

I need a firmware for ESP32 MCU with following features:
- Power button (deep sleep management)
- Config Button (switch to config mode)
- Wifi
- Bluetooth (BLE/GATT, multiple connection)
- mDNS
- Battery monitor
- OTA WEB Update
- MQTT
--------------------------------------------------------------------------------------------------------------------------
what should it do?
in configuration mode via ble, the settings must be saved:
- Wifi ssid / password
- Device name (for bluethoot an mdns)
- pathId (guid)
- device id (guid)
--------------------------------------------------------------------------------------------------------------------------
By default it should:
- connect to the wifi network
- wait for a BLE device to connect
- advertise using mdns
- expose web api for OTA update and battery status
- connect to the mqtt brocker
--------------------------------------------------------------------------------------------------------------------------
On BLE message
take the message and publish it on mqtt (the topic includes pathId and device Id) in the payolad you should add an identifier of the bluetooth device (simultaneous connections)
On MQTT Message
- detect BLE device (same id used in publication)
- push message to BLE device
- close BLE connection