Sida 1 av 1

BLE BatterySerivce för ESP32 C3

Postat: 4 oktober 2024, 22:31:12
av Roger123
Hej,
Undrar om någon som är duktig på programmering kan hjälpa mig med några rader kod för Arduino IDE för BLE BatterySerivce i en ESP32 C3 modul.

Jag har lyckats klippa och klistra ihop kod för BLE Server så att den skickar det procentuella värdet av resterande batterikapacitet. Se bifogad länk med exempel nedan

https://circuitdigest.com/microcontroll ... indication

Jag önskar nu lägga till aktuell spänningsnivå i batteriet med en decimal i samma BatteryService Server. Försöker läsa och förstå instruktionen för BLE Bluetooth, se länk nedan

https://www.bluetooth.com/specifications/specs/bas-1-1/

Om jag förstått rätt skall det gå att lägga till ett Present Voltage field

3.5.1.3. Present Voltage field

The Present Voltage field may be included in the Battery Energy Status characteristic.

Jag får inte till detta. Får till en characteristic som jag vill ska visa Voltage: 14,8V i appen, men får enbart till Voltage: 14%, vilket inte känns så lyckat.

Jag använder LightBlue appen för iPhone.

Tack på förhand

Re: BLE BatterySerivce för ESP32 C3

Postat: 4 oktober 2024, 22:59:55
av rvl
Välkommen! Behövdes bara nästan 15 år för att samla mod för att skriva ditt första inlägg. :mrgreen: Om själva problemet har jag inte så mycket att komma med ...ännu.

Re: BLE BatterySerivce för ESP32 C3

Postat: 5 oktober 2024, 00:31:40
av Roger123
Tack rvl!
Tycker inte man ska missbruka forumet allt för ofta om det inte är riktigt angeläget :bravo:

Ser fram emot att se om någon har lust och kunskap att hjälpa mig med detta.

//Roger

Re: BLE BatterySerivce för ESP32 C3

Postat: 5 oktober 2024, 17:15:08
av Roger123
Hej,
Kämpar vidare med detta. Har nu hittat ett dokument med ”Gatt Specification Supplement” där det under kapitel 3.23 Battery Energy Status finns en parameter Present Voltage som jag tror skulle åtgärda mitt problem. Har dock inte tillräckligt med kunskap hur jag skall aktivera denna funktion. Någon som vet?

https://btprodspecificationrefs.blob.co ... pdf#page34
IMG_4180.jpeg

Re: BLE BatterySerivce för ESP32 C3

Postat: 9 oktober 2024, 19:47:12
av Mr Andersson
Battery energy status har UUID 0x2BF0. Sen skickar du 3 bytes där flags är 2 (present voltage) och sen spänningen i medfloat16-format. (0xF094 för 14,8)

Kod: Markera allt

BLECharacteristic BatteryEnergyStatusCharacteristic(BLEUUID((uint16_t)0x2BF0), BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY);
...
uint8_t batteryStatus[] = {0x02, 0x94, 0xF0};
BatteryEnergyStatusCharacteristic.setValue(batteryStatus, sizeof(batteryStatus));

Re: BLE BatterySerivce för ESP32 C3

Postat: 23 oktober 2024, 00:54:54
av Roger123
Tack för svar Mr Andersson,

Mina baskunskaper i programmering är för låg för att hänga med i din förklaring.

Jag har nu hållit på att testa olika varianter men får bara upp felmeddelanden. Det blir något fel när jag skall lägga till flera Characteristics i samma Service. Hängde inte heller med vad du menar med flags…

Tacksam för lite mer utförligare beskrivning.

/Roger