From 8494df0bdd789a13e202b2afe747cc30a1a3d76e Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sat, 24 Sep 2016 20:53:46 +0100 Subject: [PATCH] Add WiFi code, but it doesn't work yet. --- WiFiConnection/WiFiConnection.ino | 93 ++++++++++++++++++++++++ WiFiExample/WiFiExample.ino | 115 ++++++++++++++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 WiFiConnection/WiFiConnection.ino create mode 100644 WiFiExample/WiFiExample.ino diff --git a/WiFiConnection/WiFiConnection.ino b/WiFiConnection/WiFiConnection.ino new file mode 100644 index 0000000..7a5e272 --- /dev/null +++ b/WiFiConnection/WiFiConnection.ino @@ -0,0 +1,93 @@ +/* + * Connecting to a WiFi network with WPA + ************************************************ + * Originally adapted from https://www.arduino.cc/en/Tutorial/ConnectWithWPA + * by Starbeamrainbowlabs + */ + +#include + +char ssid[] = "evenstar-2.4"; +char password[] = "yourPassowordHere"; +// The current wifi status +int currentStatus = WL_IDLE_STATUS; + +void setup() +{ + // put your setup code here, to run once: + Serial.begin(4800); + + Serial.println("Hello, world!"); + + // Make sure that WiFi is supported + Serial.print("Testing for WiFi support - "); + if(WiFi.status() == WL_NO_SHIELD) + { + Serial.println("failed!"); + Serial.println("WiFi shield not present :-("); + while(true) { delay(1000); } + } + Serial.println("success."); + + Serial.println("Beginning connection sequence."); + while(currentStatus != WL_CONNECTED) + { + Serial.print("Attempting to connect to "); + Serial.print(ssid); + Serial.print(" - "); + + currentStatus = WiFi.begin(ssid, password); + + // Wait 10 seconds for the connection to start + delay(10000); + } + + Serial.println("success!"); +} + +void loop() +{ + delay(1000); + printWiFiInfoLocal(); + printWiFiInfoRemote(); + delay(1000); +} + +void printWiFiInfoLocal() +{ + Serial.print("IP Address: "); + Serial.println(WiFi.localIP()); + + Serial.print("MAC Address: "); + byte macAddress[6]; + WiFi.macAddress(macAddress); + printMac(macAddress); +} + +void printWiFiInfoRemote() +{ + Serial.print("Current Wifi network:"); + Serial.print(WiFi.SSID()); + Serial.print(" ("); + byte macAddress[6]; + WiFi.macAddress(macAddress); + printMac(macAddress); + Serial.println(")"); +} + +void printMacPart(byte& macPart, bool end); + +void printMac(byte macAddress[]) +{ + for(int i = 5; i >= 0; --i) + { + printMacPart(macAddress[i], i == 0 ? true : false); + } +} + +void printMacPart(byte& macPart, bool end) +{ + Serial.print(macPart,HEX); + if(!end) Serial.print(":"); +} + diff --git a/WiFiExample/WiFiExample.ino b/WiFiExample/WiFiExample.ino new file mode 100644 index 0000000..0db4a70 --- /dev/null +++ b/WiFiExample/WiFiExample.ino @@ -0,0 +1,115 @@ +/* + + This example connects to an unencrypted Wifi network. + Then it prints the MAC address of the Wifi shield, + the IP address obtained, and other network details. + + Circuit: + * WiFi shield attached + + created 13 July 2010 + by dlf (Metodo2 srl) + modified 31 May 2012 + by Tom Igoe + */ + #include + +char ssid[] = "evenstar-2.4"; // your network SSID (name) +char pass[] = "insertPasswordHere"; // your network password +int status = WL_IDLE_STATUS; // the Wifi radio's status + +void setup() { + //Initialize serial and wait for port to open: + Serial.begin(300); + while (!Serial) { + ; // wait for serial port to connect. Needed for Leonardo only + } + + // check for the presence of the shield: + if (WiFi.status() == WL_NO_SHIELD) { + Serial.println("WiFi shield not present"); + // don't continue: + while(true); + } + + // attempt to connect to Wifi network: + while ( status != WL_CONNECTED) { + Serial.print("Attempting to connect to WPA SSID: "); + Serial.println(ssid); + // Connect to WPA/WPA2 network: + status = WiFi.begin(ssid, pass); + + // wait 10 seconds for connection: + delay(10000); + } + + // you're connected now, so print out the data: + Serial.print("You're connected to the network"); + printCurrentNet(); + printWifiData(); + +} + +void loop() { + // check the network connection once every 10 seconds: + delay(10000); + printCurrentNet(); +} + +void printWifiData() { + // print your WiFi shield's IP address: + IPAddress ip = WiFi.localIP(); + Serial.print("IP Address: "); + Serial.println(ip); + Serial.println(ip); + + // print your MAC address: + byte mac[6]; + WiFi.macAddress(mac); + Serial.print("MAC address: "); + Serial.print(mac[5],HEX); + Serial.print(":"); + Serial.print(mac[4],HEX); + Serial.print(":"); + Serial.print(mac[3],HEX); + Serial.print(":"); + Serial.print(mac[2],HEX); + Serial.print(":"); + Serial.print(mac[1],HEX); + Serial.print(":"); + Serial.println(mac[0],HEX); + +} + +void printCurrentNet() { + // print the SSID of the network you're attached to: + Serial.print("SSID: "); + Serial.println(WiFi.SSID()); + + // print the MAC address of the router you're attached to: + byte bssid[6]; + WiFi.BSSID(bssid); + Serial.print("BSSID: "); + Serial.print(bssid[5],HEX); + Serial.print(":"); + Serial.print(bssid[4],HEX); + Serial.print(":"); + Serial.print(bssid[3],HEX); + Serial.print(":"); + Serial.print(bssid[2],HEX); + Serial.print(":"); + Serial.print(bssid[1],HEX); + Serial.print(":"); + Serial.println(bssid[0],HEX); + + // print the received signal strength: + long rssi = WiFi.RSSI(); + Serial.print("signal strength (RSSI):"); + Serial.println(rssi); + + // print the encryption type: + byte encryption = WiFi.encryptionType(); + Serial.print("Encryption Type:"); + Serial.println(encryption,HEX); + Serial.println(); +}