Wifi Shield arduino – installazione librere ed esempi

Nell’articolo precedente dedicato alla Wifi Shield arduino hai visto come comtare il connettore SPI per la comunicazione tra la shield ed Arduino.

wifi shield arduino

Passa ora a scaricare il software, installare le librerie sul tuo IDE e prova i primi esempi forniti.

Download delle librerie per la Wifi shield arduino

Il progetto della libreria è open-source, come la maggior parte dei progetti dedicati ad Arduino, e lo puoi scaricare qui.

libreria wifi shield arduino

nella pagina di download trovi 3 link, vedi figura sopra, il primo in basso è il progetto originale “Asynclabs WiFiShield library (IDE 0023)” scritto per l’IDE 0022 di Arduino, salendo trovi degli esempi da utilizzare con questa libreria ed infine il primo link contiene la libreria per la wifi shield arduino modificata sia per l’IDE 1.0 sia per la schield TiDiGino.

Scarica il software compatibile con la versione dell’IDE 1.0, almeno di non usare ancora un IDE 0022.

Decomprimi il file .zip ed ottieni una directory WIFI con al suo interno tutte le librerie utili e gli esempi da aggiungere al tuo IDE:

 libreria wifi shield arduino decompressa

copia questa cartella nell’IDE, per farlo individua la dir in cui Arduino ha installato le librerie, sul mio Mac è:

/Users/mauroalfieri/Documents/Arduino/libraries/

in cui ho copiato tutta la dir WIFI così come decompressa:

 libreria wifi shield arduino nell'IDE

Avvia l’IDE 1.0 di Arduino e verifica che le librerie per la wifi shield arduino siano presenti:

libreria wifi shield arduino installata

Primo sketch di esempio della wifi shield arduino

Il primo esempio che ho provato della libreria wifi shield arduino è stato: SimpleServer la curiosità di potermi collegare ad Arduino via Wifi e vedere che fosse lui a rispondere, le librerie contengono anche altri sketch che magari vedremo in occasione di altri progetti.

/*
 * A simple sketch that uses WiServer to serve a web page
 */

#include <WiServer.h>

#define WIRELESS_MODE_INFRA	1
#define WIRELESS_MODE_ADHOC	2

// Wireless configuration parameters ---------------------------

unsigned char local_ip[] = {192,168,1,2};	// IP address of WiShield
unsigned char gateway_ip[] = {192,168,1,1};	// router or gateway IP address
unsigned char subnet_mask[] = {255,255,255,0};	// subnet mask for the local network
const prog_char ssid[] PROGMEM = {"ASYNCLABS"};		// max 32 bytes

unsigned char security_type = 0;	// 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {"12345678"};	// max 64 characters

// WEP 128-bit keys
// sample HEX keys
prog_uchar wep_keys[] PROGMEM = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,	// Key 0
				  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	// Key 1
				  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	// Key 2
				  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00	// Key 3
				};

// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi device
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
// End of wireless configuration parameters -------------------

// This is our page serving function that generates web pages
boolean sendMyPage(char* URL) {

    // Check if the requested URL matches "/"
    if (strcmp(URL, "/") == 0) {
        // Use WiServer's print and println functions to write out the page content
        WiServer.print("<html>");
        WiServer.print("Hello World!");
        WiServer.print("</html>");

        // URL was recognized
        return true;
    }
    // URL not found
    return false;
}

void setup() {
  // Initialize WiServer and have it use the sendMyPage function to serve pages
  WiServer.init(sendMyPage);

  // Enable Serial output and ask WiServer to generate log messages (optional)
  Serial.begin(57600);
  WiServer.enableVerboseMode(true);
}

void loop(){

  // Run WiServer
  WiServer.server_task();

  delay(10);
}

Leggi le prime righe dello sketch e trovi le linee 07 ed 08 in cui definisci le due modalità in cui la wifi shiled arduino può operare, nel dettaglio:

INFRA: o infrastructure è la modalità in cui la wifi shield arduino si connette ad una rete wifi esistente come quella di casa o del tuo ufficio

ADHOC: è una modalità in cui arduino si collega ad una altro dispositivo wifi in modo dedicato.

Se hai letto il progetto Rover5 Leonardo WiRC ricorderai che la scheda WIRC realizza appunto una connessione di tipo AdHoc con il dispositivo di controllo ( iPad, iPhone, Android )

nell’esempio utilizzi la wifi shield arduino facendola connettere ad una rete WiFi preesistente e quindi in modalità Infrastructure.

Quindi procurati i dati di accesso della tua rete WiFi, su Mac apri le preferenze di rete

schermata preferenze di rete wifi OSX

ora sai il nome della tua rete o ssid e lIP assegnato al computer, quindi la classe di indirizzi di rete, ti serve conoscere anche il tipo di cifratura utilizata, clicca su “Avanzate” e trova la tua rete:

schermata preferenze di rete wifi OSX avanzate

sulla destra è riportato il tipo di cifratura, nel mio caso WPA.

Passa alla configurazione dello sketch, linee 10-37 racchiudono tutta la configurazione della network, in particolare concentrati sulle linee 12-15 per l’IP, il gateway, la netmask e il ssid:

unsigned char local_ip[] = {192,168,1,200};
unsigned char gateway_ip[] = {192,168,1,1};
unsigned char subnet_mask[] = {255,255,255,0};
const prog_char ssid[] PROGMEM = {"Alice-45748781"};

i parametri che vedi sono quelli relativi alla schermata presa dal Mac, ho cambiato l’IP prendendo quello successivo rispetto al Mac ( .199 -> .200 )

la linea 17: individua il tipo di crittografia essendo la mia una rete con crittografia WPA modifico la line a come:

unsigned char security_type = 3;	// 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

la linea 20: indica il tipo di chiave di sicurezza utilizzata, io ho configurato temporaneamente la mia rete wifi inserendo la stessa linea presente nello sketch della wifi shield arduino: 12345678;

linea 33:la puoi lasciare invariata, indica la modalità di connessione che per questo esempio è Infrastructure;

delle altre linee dello sketch non varia nulla e servono a far visualizzare sul browser la pagina web creata alle linee 45-47;

Ecco il risultato collegandoti con il browser ( firefox ) all’indirizzo 192.168.1.200:

homepage wifi shield arduino

Buon divertimento wifi !!!

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/informatica/wifi-shield-arduino-libreria.html

127 pings

Skip to comment form

  1. […] la GPRS shield. Per connettere il tuo progetto alla grande rete hai già letto come utilizzare la WiFi shield o Ethernet Shield ma quando non hai la possibilità di collegarti ad una rete già esistente puoi […]

  2. […] la GPRS shield. Per connettere il tuo progetto alla grande rete hai già letto come utilizzare la WiFi shield o Ethernet […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.