El programa que hi ha a continuació fa un ping per saber si un dispositiu de la xarxa està disponible.
// Aquest programa està parcialment basat en els exemples de la pàgina // https://www.arduino.cc/en/Tutorial/LibraryExamples#wifi1010 #include <SPI.h> // Carreguem la biblioteca SPI #include <WiFiNINA.h> // Carreguem la biblioteca WiFiNINA
const char idXarxa[] = "xarxa-wifi"; // Nom del punt d'accés const char contrasenya[] = "contrasenya-wifi"; // Contrasenya de connexió int status = WL_IDLE_STATUS; String nomHost = "recursos.citcea.upc.edu"; int resultat;
void setup() { // Inicialització
Serial.begin(9600); // Monitor sèrie
while (!Serial) {
; // Esperem que l'usuari s'hagi connectat amb el monitor sèrie
}
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("No s'ha trobat el dispositiu Wi-Fi");
while (true); // Bloquegem el programa
}
String versio = WiFi.firmwareVersion();
if (versio < "1.0.0") {
Serial.println("Convindria actualitzar el firmware");
}
while (status != WL_CONNECTED) {
Serial.print("Connectant a la xarxa ");
Serial.println(idXarxa);
status = WiFi.begin(idXarxa, contrasenya);
delay(10000); // Ho tornarem a intentar passats 10 s
}
Serial.print("Connectat a ");
Serial.println(WiFi.SSID());
Serial.print("Estat de la connexió: ");
Serial.println(WiFi.status());
Serial.print("Adreça IP del dispositiu: ");
Serial.println(WiFi.localIP());
Serial.print("Intensitat del senyal: ");
Serial.print(WiFi.RSSI());
Serial.println(" dBm");
Serial.println();
}
void loop() {
Serial.print("Fent un ping a ");
Serial.print(nomHost);
Serial.print(": ");
resultat = WiFi.ping(nomHost);
if (resultat >= 0) {
Serial.print("Correcte! RTT = ");
Serial.print(resultat);
Serial.println(" ms");
} else {
Serial.print("Fallada! Codi d'error: ");
Serial.println(resultat);
}
delay(5000);
}
En aquest programa hi ha la condició que el monitor sèrie estigui obert per a que el programa comenci a funcionar. Això ens permet seguir tot el procés encara que triguem a obrir el monitor sèrie. Quan el microcontrolador hagi de funcionar de manera independent de l'ordinador caldrà eliminar les línies següents per evitar aquest bloqueig.
while (!Serial) {
; // Esperem que l'usuari obri el monitor sèrie
}
El resultat obtingut al monitor sèrie podria ser:
Fent un ping a recursos.citcea.upc.edu: Correcte! RTT = 20 ms
Si volem fer el ping a una adreça IP hauríem de canviar les tres instruccions marcades en groc per les següents (cada una al seu lloc).
IPAddress ipPing(147, 83, 2, 75);
Serial.print(ipPing);
resultat = WiFi.ping(ipPing);
El resultat obtingut al monitor sèrie podria ser:
Fent un ping a 147.83.2.75: Correcte! RTT = 10 ms Fent un ping a 192.168.1.41: Fallada! Codi d'error: -1

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.