Implementing Bluetooth Data Collection Into Scouting App

Hello everyone! For the past two years, my team has been using a scouting app that we made from scratch in 2021. On paper, the scouting app is quite simple (I’ll link the repo at the bottom).

Essentially, it works by using an Apache2 server to host a website. This website is then used to fill out information about a team during a match or record pit scouting info. Afterward, the info is moved via Connector Python to a mySql database. The current implementation requires a hardwired ethernet connection to the server laptop.

What we (I) want to do this year is implement Bluetooth into the app. Even though the current implementation works, it’s a big mess with wires and old computers dying left and right. I’m not entirely sure how to do this, but I’ve been looking into using the PyBlueZ library. If anyone knows how to, or has any tips on how to implement this, it would be greatly appreciated. Assuming this works, the plan is to buy android tablets to load up the website and submit the data via Bluetooth.

Link to GitHub repo

2 Likes

MIT has a very good documentation, An Introduction to Bluetooth Programming. Chapter 3 has Python examples on PyBlueZ library. Prior knowledge with socket programming will be helpful.

4 Likes

Bluetooth is legal correct? We possibly could implement it for this season as well, would be much better than cellular or wired connections.

1 Like

bluetooth tips

be aware of your range constraints. even if you add an antenna dongle to the laptop, you will be limited by the tablets' range.

after doing a bluetooth powered project a while back, one takeaway that I got from it was to 100% implement some sort of local “cache” which will store outgoing data on the front end in the event that the wireless data transfer fails. since yours is a website, look into something like localForage (javascript lib) to store data when transmission fails.

app tips

look into Progressive Web Apps (PWA). they allow you to statically store web pages on a device, so you can limit communication to the data

AFAIK, websites do not support regular bluetooth sockets. you will likely have to use BLE, which has even less range.

MIT App Inventor is a good place to build a dead simple form app that can use regular bluetooth sockets. it unfortunately is a block-style app builder but ig that makes it easier to convert from web to app? note that it only makes APKs for android so no IOS.

I KNOW HOW TO. ITS ME. IM THE EXPERT. I’ve been working on a solution for my own team 5199 for a while and was going down the exact same path by using Bluetooth. I’m currently more focused on the actual hosted site our team will be using. But I have a working system that is being hosted on a raspberry pi. I’m not sure how to do it on windows or Mac or really anything else than exactly how I did it myself. But feel free to respond if you want to know more.

Currently for my own rendition of a scouting form I’m looking into all sorts of features like where some people mention PWA, local and session storage, also some of my own such as live visual data analysis and the entire site being configurable through JSON. Everything is still in the early stages of being worked out for the site itself. But my hardware, the Bluetooth server, is functioning