Simple WIFI setup over bluetooth
This servie uses network manager API to connect to a WIFI network.
The implementation offers two interfaces
- a bluetooth service
- a rest API for local(host) usage by other services
You can use go run main.go on a linux machine to start the software.
Then point your browser to http://localhost:9099/ to see an example usage.
The BLE server exposes one service 12342233-0000-1000-8000-00805f9b34fb with two characteristics
0x3344that supports- read - return the connectivity status as enum with values connected, limited, unknown, disconnected
- write - accept a UTF8 string in the format WIFI:T:WPA;S:;P:;H:false; (if ssid or password contains : or ; they must be backslashed eg ;
0x4455that support read and list the available APs the wifi device found. The response is in the formatSSID;strength\na double \n indicates the end of the list
The service exposes also an HTTP API to intereact with WIFI connections
/connectconnect to a WIFI connection. Expects a body in the format{ "payload": "WIFI:T:WPA;S:your ssid;P:your password;H:false;;" }/statusreturn the connection status with format{"status": "connected"}/listaplist the reachable APs in format{"accessPoints": [ { "ssid": "example", "strength": 54 } ]}
The connection string format is based on https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11