mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-11 22:24:13 +01:00
9eaea4205d
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples. Changed in in "wait for serial port to connect. Needed for native USB port only"
120 lines
2.7 KiB
C++
120 lines
2.7 KiB
C++
/*
|
|
|
|
This example prints the Wifi shield's MAC address, and
|
|
scans for available Wifi networks using the Wifi shield.
|
|
Every ten seconds, it scans again. It doesn't actually
|
|
connect to any network, so no encryption scheme is specified.
|
|
|
|
Circuit:
|
|
* WiFi shield attached
|
|
|
|
created 13 July 2010
|
|
by dlf (Metodo2 srl)
|
|
modified 21 Junn 2012
|
|
by Tom Igoe and Jaymes Dec
|
|
*/
|
|
|
|
|
|
#include <SPI.h>
|
|
#include <WiFi.h>
|
|
|
|
void setup() {
|
|
//Initialize serial and wait for port to open:
|
|
Serial.begin(9600);
|
|
while (!Serial) {
|
|
; // wait for serial port to connect. Needed for native USB port 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);
|
|
}
|
|
|
|
String fv = WiFi.firmwareVersion();
|
|
if (fv != "1.1.0") {
|
|
Serial.println("Please upgrade the firmware");
|
|
}
|
|
|
|
// Print WiFi MAC address:
|
|
printMacAddress();
|
|
}
|
|
|
|
void loop() {
|
|
// scan for existing networks:
|
|
Serial.println("Scanning available networks...");
|
|
listNetworks();
|
|
delay(10000);
|
|
}
|
|
|
|
void printMacAddress() {
|
|
// the MAC address of your Wifi shield
|
|
byte mac[6];
|
|
|
|
// print your MAC address:
|
|
WiFi.macAddress(mac);
|
|
Serial.print("MAC: ");
|
|
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 listNetworks() {
|
|
// scan for nearby networks:
|
|
Serial.println("** Scan Networks **");
|
|
int numSsid = WiFi.scanNetworks();
|
|
if (numSsid == -1) {
|
|
Serial.println("Couldn't get a wifi connection");
|
|
while (true);
|
|
}
|
|
|
|
// print the list of networks seen:
|
|
Serial.print("number of available networks:");
|
|
Serial.println(numSsid);
|
|
|
|
// print the network number and name for each network found:
|
|
for (int thisNet = 0; thisNet < numSsid; thisNet++) {
|
|
Serial.print(thisNet);
|
|
Serial.print(") ");
|
|
Serial.print(WiFi.SSID(thisNet));
|
|
Serial.print("\tSignal: ");
|
|
Serial.print(WiFi.RSSI(thisNet));
|
|
Serial.print(" dBm");
|
|
Serial.print("\tEncryption: ");
|
|
printEncryptionType(WiFi.encryptionType(thisNet));
|
|
}
|
|
}
|
|
|
|
void printEncryptionType(int thisType) {
|
|
// read the encryption type and print out the name:
|
|
switch (thisType) {
|
|
case ENC_TYPE_WEP:
|
|
Serial.println("WEP");
|
|
break;
|
|
case ENC_TYPE_TKIP:
|
|
Serial.println("WPA");
|
|
break;
|
|
case ENC_TYPE_CCMP:
|
|
Serial.println("WPA2");
|
|
break;
|
|
case ENC_TYPE_NONE:
|
|
Serial.println("None");
|
|
break;
|
|
case ENC_TYPE_AUTO:
|
|
Serial.println("Auto");
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|