Good afternoon,
I am busy making an app that complimeht my timekeeping system. The idea is to use Bluetooth Low Energy broadcasting to broadcast a bib no (each athlete have a phone nowadays)
but I understaand I neet to have to convert my broadcasting data to bytes to broadcast. I cannot find any block that can help with that.
I have the attached blocks, but doesnt work.
any help or point to the correct extension package? I have installed BLE version 20240822
I'm not conversant with the advertising block, but I can see from your blocks that the data flow is wrong.
You set global byteList to an empty list, then send it into the Advertising block unchanged, repeatedly according to the length of the bib number. That's a whole lot of nothing being advertised.
Having a blank UUID probably doesn't help either.
Also, byte numbers are typically in the range 0-255, not alphabetic characters.
I'll know for sure when I see the tool tip for that advertising block.
(Canned Reply: ABG- Export & Upload .aia)
Export your .aia file and upload it here.
.
I am also not sure your athletes' phones are good places to try to connect to, as they all run by you one by one.
This might work better for you:
Hi Johan - when you say broadcast a bib number, how close to the athletes will the User of the App be? BLE does not have a great range. It would be better to send an SMS text.
ProfessorCad: Tips & Tricks Bluetooth
Thanks for the feedback.
It is just for a simple fun project for our local Cycling community. All teh riders nomally do have a phone, and by using the phone to broadcast their bib number via BLE, and I can use a ESP32 to read the broadcasted packages, and feed them into my already made timekeeping website.
@ChrisWard it will be a arch approx 3-4m wide with the bluetooth reader overhead as a finish/checkpoint.
I am basically research a cheaper option than to use RFID timing systems. The RFID tags are cheap, but teh proper readers, setup ect are expensive, and for most clubs (Cycling and running) it kills the sport, because of the timekeeping equipment. By creating a simple app that use an athletes phone as a broadcasting device, and have a reader, it could work in theory.
I see now - it is the athletes sending the bib number, not the other way round
So you need two Apps, one for the athletes to send their bib number, one for you to receive them.
Yes. So the App sending - I call TimeToken -it only broadcast the bib no. as the athlete pass the checkpoint the second app - BLE Reader - will read the broadcasted bib no, and process it to a spreadsheet, add dimestamps, ect. Thats easy small stuff.
I have attached my two apps.
Currently the reader detects the broadcasting device, but I struggle to collect only the advertised bib number.
(a suggestion was to add the bib number to the broadcasting device name, and filter that when read?)
TimeToken.aia (222.4 KB)
BLE_Reader.aia (199.4 KB)
In the BLE Extension, there are several options to send Advertisements, but non to recieve or view them. I seem to cant view the advertisemnt data on a reciever?
I have event thought to include the bib number in teh sending device's Uuid and get it accros like that - but cant retrieve the Uuid on the reviever end. I am at a big wall now.
You simply want to send-receive integers
Yes, the reciever should not actually connect to recieve. BLE is an unknown field for me, im learning every day
edit: Send and recieve integers require a connection if Im correct?
BluetoothLE1.AdvertisementDataReceived is not an available block.
I don't think BLE is going to collect the integer fast enough - plus being a race, several athletes could cycle/run past as a group?
RFID typically does not have the range that BLE has (which itself is not great). I think I'm coming to the conclusion that this requirement cannot be met on a low budget......
I hear you. I stiil would like to try though. Ive done some tests with my reader catching the device name, and the MAC adress and worked quite well for my needs. so if I could catch any custom data, it would be a win.
If you are going to have the runners have a client app running when they reach the finish line, have their apps scan for devices continually, and note when they encounter a pre-programmed device ID (your finish line device) for the first time.
The pre-programmed device ID would be detectable at the gate.
Have the runner app upload their bib ID and time somewhere.
Yes that is the principle. Thats the whole issue - how do I broadcast and recieve a pre programmed ID? Coupled to a bib no, or preferebly the bib no itself?
There are blocks in the BLE extension that send advertisements, and a block that scan advertisements, but none that VIEW or extract it
How about this, on the runner app?
could work, but that require all devices to have an active internet connection, and also the timestamps could not be accurate. But will try it, it might work
So, here is the workaround I am thinking of:
1)The Athlete broadcasting app will still advertise as initially planned.
2) The Reader app already catch the MAC Adress and Bluetooth name, in a list.
The Idea is at registration before start, to select each entry's device on the bluetooth list, and assign the bib number manually. this way I can control the entries, and also check that each participant's app DOES broadcast.
Now the challenge is how do I "substitute" all selected devices with the assigned bib no.
That's a table lookup problem.