Many IoT devices and linux boards (like raspberry pi) have onboard Bluetooth and WiFi adapters but they are headless (without display or serial number). How could be configured to connect to the your WiFi using a simple bluetooth link with a smartphone?
The basic idea is that the mobile app sends the WiFi SSID and password to the device using a secure bluetooth channel, and then wait for the device become online: that’s all!
Many vendors implemented their own protocol like SmartConfig by TI (no sources released; reverse engineered here), ESP Touch by ExpressIf (client sources available for android+ios) and BluFi by ExpressIf (client sources available for android+ios) .
Since we need to configure our Raspberry device (PI3 or PI0W), to accomplish this goal we should implement the most recent BluFi protocol on such target (acting as a server), and test using any Android or iOS device by using the already released client source code.
Bluez is the name of the bluetooth stack implementation of linux and exports its API using DBUS standard. Its source packages contains many examples written in Python: this is a could be a good starting point to implemen a python BluFi server daemon.
The daemon should be automatically run as a service in background, wait for bluetooth connections, store WIFI credentials to the system standard location using python wifi library and then apply the new wifi configuration using standard bash system commands.
18 freelance font une offre moyenne de €16/heure pour ce travail
Hi, I have used BLE of RPi 3 to send wifi credentials to mobile phones before. What is your budget and timeline for this project? We can discuss in chat. Regards, Liu
Hello. I am a professional embedded developer with 5 years of experience in raspberry pi and arduino. I can do this with different solutions depending on your approval