Using BLE to control WIFI configuration as SSID and PW.
Dependencies: BLE_API WIFI_API_32kRAM mbed nRF51822
Fork of NNN40_WiFi by
BLE_WIFIControl enables user to setup Wifi connection via BLE link. Here is iPhone app that teaches you how to use this BLE_WIFIControl example. /media/uploads/Marcomissyou/ios_app_for_wifi_configure.pdf
Diff: main.cpp
- Revision:
- 8:d39bc94f139b
- Parent:
- 7:5d82c92ec2a3
- Child:
- 9:16ac259b2ce7
--- a/main.cpp Mon May 18 07:13:04 2015 +0000 +++ b/main.cpp Tue Jun 30 03:12:25 2015 +0000 @@ -1,5 +1,5 @@ #include "mbed.h" -#include "BLEDevice.h" +#include "BLE.h" #include "BLEControlWIFIService.h" #include "DeviceInformationService.h" #include "WIFIDevice.h" @@ -17,7 +17,9 @@ DigitalOut led2(LED2); DigitalOut RFSWIO(p19); -const static char DEVICE_NAME[] = "BLE WCS"; +bool is_AP_connect = false; + +const static char DEVICE_NAME[] = "TSUNGTA_BLE WCS"; static volatile bool triggerSensorPolling = false; void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) @@ -25,12 +27,14 @@ ble.startAdvertising(); // restart advertising } -const char* PC_SERVER_ADDRESS = "192.168.1.234"; +const char* PC_SERVER_ADDRESS = "192.168.15.101"; uint16_t PC_PORT = 5222; int main(void) { - eth.init(); //Use DHCP + NRF_CLOCK->XTALFREQ = 0x00; //Tsungta, Used to active radio correctly external when XTAL 32MHz is loaded + TCPSocketConnection sock; + RFSWIO = 0; ble.init(); ble.onDisconnection(disconnectionCallback); @@ -53,17 +57,25 @@ while (1) { if (ble.getGapState().connected && BLEWIFIService.is_config) { BLEWIFIService.is_config = false; - eth.connect(40000); - TCPSocketConnection sock; - sock.connect(PC_SERVER_ADDRESS,PC_PORT); - led1 = 1; - if(sock.is_connected()){ - led2 = 1; - char msg[] = "Hello World"; - sock.send(msg, sizeof(msg)); - } + //ble.shutdown(); + eth.init(); //Use DHCP + + while (eth.connect()) {} + is_AP_connect = true; + } else { + + if (is_AP_connect) { + if(!sock.is_connected()){ + sock.connect(PC_SERVER_ADDRESS,PC_PORT); + led1 = 1; + } else { + char msg[] = "Hello World"; + sock.send(msg, sizeof(msg)); + wait(1); + } + } ble.waitForEvent(); // low power wait for event } }