BLE BatterySerivce för ESP32 C3

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Roger123
Inlägg: 4
Blev medlem: 15 maj 2011, 01:18:00

BLE BatterySerivce för ESP32 C3

Inlägg 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
Senast redigerad av Roger123 5 oktober 2024, 00:35:35, redigerad totalt 1 gång.
Användarvisningsbild
rvl
Inlägg: 6811
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: BLE BatterySerivce för ESP32 C3

Inlägg 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.
Roger123
Inlägg: 4
Blev medlem: 15 maj 2011, 01:18:00

Re: BLE BatterySerivce för ESP32 C3

Inlägg 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
Roger123
Inlägg: 4
Blev medlem: 15 maj 2011, 01:18:00

Re: BLE BatterySerivce för ESP32 C3

Inlägg 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
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Mr Andersson
Inlägg: 1407
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: BLE BatterySerivce för ESP32 C3

Inlägg 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));
Roger123
Inlägg: 4
Blev medlem: 15 maj 2011, 01:18:00

Re: BLE BatterySerivce för ESP32 C3

Inlägg 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
Skriv svar