Megjeleníti a hatótávolságon belüli összes WiFi hálózatot.
Utolsó felülvizsgálat: 2022.05.12 12:58
Ez a példa 802.11b/g hálózatokat keres az Arduino WiFi pajzs segítségével. Az Arduino Software (IDE) soros monitora információkat nyomtat az alaplapról és az általa látható hálózatokról. Nem fog csatlakozni a hálózathoz.
Hardver szükséglet
Arduino WiFi pajzs
Pajzs kompatibilis Arduino kártya
Az áramkör
A WiFi pajzs a 10-es, 11-es, 12-es és 13-as kivezetéseket használja a HDG104 modul SPI-csatlakozásához. A 4-es digitális kivezetés az SD-kártya chipválasztó kivezetésének vezérlésére szolgál.
Nyissa meg a soros monitort a WiFi pajzs által látható hálózatok megtekintéséhez. Előfordulhat, hogy a pajzs nem lát annyi hálózatot, mint a számítógépe.

A Fritzing segítségével fejlesztett kép. További áramköri példákért lásd a Fritzing projekt oldalát.
A kód
/*
Ez a példa kinyomtatja a Wifi-pajzs MAC-címét, és a Wifi-pajzs
segítségével keresi az elérhető Wifi-hálózatokat.
Tíz másodpercenként újra felderít. Valójában nem csatlakozik
semmilyen hálózathoz, így nincs megadva titkosítási séma.
Az áramkör:
* Csatolt WiFi pajzs
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() {
// Inicializálja a soros portot, és várja meg, amíg megnyílik:
Serial.begin(9600);
while (!Serial) {
; // várja meg a soros port csatlakozását. Csak a natív USB-porthoz szükséges
}
// ellenőrizze a pajzs meglétét:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// Ne folytasd:
while (true);
}
String fv = WiFi.firmwareVersion();
if (fv != "1.1.0") {
Serial.println("Please upgrade the firmware");
}
// nyomtassa ki a Wifi MAC címét:
printMacAddress();
}
void loop() {
// meglévő hálózatok keresése:
Serial.println("Scanning available networks...");
listNetworks();
delay(10000);
}
void printMacAddress() {
// a Wifi-pajzs MAC-címe
byte mac[6];
// nyomtassa ki a MAC-címét:
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() {
// közeli hálózatok keresése:
Serial.println("** Scan Networks **");
int numSsid = WiFi.scanNetworks();
if (numSsid == -1) {
Serial.println("Couldn't get a wifi connection");
while (true);
}
// nyomtassa ki a látott hálózatok listáját:
Serial.print("number of available networks:");
Serial.println(numSsid);
// nyomtassa ki a hálózat számát és nevét minden talált hálózathoz:
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) {
// olvassa el a titkosítás típusát és nyomtassa ki a nevet:
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;
}
}
Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.