Nell’articolo precedente dedicato alla Wifi Shield arduino hai visto come comtare il connettore SPI per la comunicazione tra la shield ed 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.
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:
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:
Avvia l’IDE 1.0 di Arduino e verifica che le librerie per la wifi shield arduino siano presenti:
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
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:
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:
Buon divertimento wifi !!!
Prima di inserire un commento, per favore, leggi il regolamento
127 pings
Skip to comment form
[…] 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 […]
[…] la GPRS shield. Per connettere il tuo progetto alla grande rete hai già letto come utilizzare la WiFi shield o Ethernet […]