ARDUINO
WI-FI Shield
ultimo aggiornamento 30 marzo 2012


 

 

Il WI-FI shield per Arduino qui presentato è prodotta dalla Futura Elettronica permette di accedere a una rete TCP/IP e ad Internet, ma non attraverso livelli hardware di tipo ethernet, bensì tramite connessioni wireless.
La comodità di questa tecnologia permette di non avere cavi da stendere e la piena libertà nel posizionamento dei diversi nodi delta rete wireless. Questa scheda prende spunto dalla scheda prodotta dalla AsyncLabs, che è una delle prime aziende a concentrarsi sulla tecnologia Wi-Fi.  Con esse ha piena compatibilità hardware sia con l'ether-net shield, sia con gli shield Wi-Fi.
Sullo shield è previsto inoltre uno slot per inserire memorie di tipo microSD.
Le dimensioni e la forma dello shield sono compatibili con le schede Arduino Duemilanove, e Arduino UNO
Per la comunicazione con il  controllore host principale (il processore Arduino) viene utilizzata la connessione SPI (velocità massima di 25 MHz); sono supportate sia le reti wireless del tipo infrastrutturato (BSS) che ad hoc (IBSS) ed a permesso il collegamento anche a reti sicure (sono supportate le crittografie WEP a 64 e a 128 bit, nonché WPA/ WPA2 TKIP, AES e PSK).
In riferimento allo schema elettrico, possiamo vedere che il modulo Microchip MRF24WB0MA (integrato U1) è collegato al bus SPI (Serial Peripheral Interface) tramite le linee SDO (Serial Data Output ), SCK (Serial Clock)e SDI (Serial Data Input), pin 32, 34 e 35, e che, in caso di necessità, può essere resettato tramite un pulsante (P1 nello schema).
Nello schema è visibile anche visibile lo slot per montare lo sempre più utilizzate e diffuse memorie SD (Secure Digital) , siglato SD1 nello schema schema elettrico), gestito da Arduino sempre attraverso la porta SPI; ciò permette di estrarre i dati e trasportarli in altri sistemi.
E anche presente un LED (siglato LD1) utilizzato per indicare se la connessione Wi-Fi è attiva o meno; la relativa gestione è realizzata tramite una porta hardware, che pertanto normalmente non potrà essere utilizzata da software. Nel caso in cui fosse necessaria proprio questa porta, è comunque presente un ponticello (indicato con LED) che, una volta aperto, scollega il LED rendendo nuovamente disponibile il pin di 1/O.
Infine, a completare l'hardware dello shield c'è una sezione di alimentazione dedicata alla logica, composta da un regolatore di tensione a 3,3 V tipo TC1262-3.3 indicato con U2; quanto ai 5V, vengono prelevati direttamente dalla scheda Arduino.

Nota: La descrizione è tratta dall'articolo scritto da Alessandro e Alessio Giusto e pubblicato sul numero 160 della Rivista Elettronica IN

 

 

homotix

Foto dello Shield senza connettori

Descrizione

Il componente base dello shield Wi-Fi è un modulo Wi-Fi siglato MRF24WB0MA e prodotto dalla Microchip.  Il dispositivo e un Wi-Fi RF transceiver certificato IEEE 802.11, ha un data-rate compreso tra 1 e 2 Mbps, dispone di antenna interna con elettronica di adattamento integrata e ha un indirizzo MAC, (in inglese MAC address, dove MAC sta per Media Access Control), detto anche indirizzo fisico, indirizzo ethernet o indirizzo LAN, è un codice di 48 bit (6 byte) assegnato in modo univoco dal produttore ad ogni scheda di rete ethernet prodotta al mondo, tuttavia modificabile a livello software.  Il modulo lavora nella banda di frequenze 2.400-2.484 GHz.

Schema Elettrico

Sigla

Descrizione

R1÷R4  

4,7 kΏ (0805)

R5, R8, R10

1 kΏ (0805)

R6

4,7 kohm (0805)

R7,R9, R11

2,2 kΏ(0805)

R12  

330 Ώ (0805)

C1,C2  

220 μF 6,3 VL elettrolitico (D)

C3,C4,C5  

100 nF multistrato (0805)

LD1

LED verde (0805)

U1

MRF24WB0MA/RM

U2

TC1262-3.3 (SOT-223)

SD1

Connettore μSD-Card(MICROSDSOCK2)

P1

Pulsante miniatura SMD

 

Strip maschio 2 poli + Jumper

 

Strip M/F 6 poli (2 pz.)

 

Strip M/F 8 poli (2 pz.)

 

Strip M/F 3 poli (2 pz.)

 

Circuito stampato

MRF24WB0MA/MRF24WB0MB 2.4 GHz, IEEE Std. 802.11b™ RF Transceiver Module

Piedinatura Datasheet Foto dell'integrato

Esempio utilizzo: WI-FI shield per Arduino


TC1262 - 500mA Fixed Output CMOS LDO


 
Piedinatura Datasheet Foto dell'integrato

Contenuto del blister

 Analisi software

Lo shield è compatibile con le librerie software WiShield fornite dalla AsyncLabs in grado di supportare varie modalità di funzionamento, quali APP_ WEBSERVER, APP_WEBCLIENT, APP_SOCKAPP, APP_UDPAPP e APP_WISERVER, corrispondenti rispettivamente a Web Server, Web Client, Socket, UDP e WiServer.
L’impostazione predefinita è APP_WEBSERVER, che funziona sulla maggior parte dei sistemi Arduino ma presenta diverse limitazioni, la principale delle quali è l’incapacità di funzionare simultaneamente sia come client che come server.
Una modalità alternativa sicuramente più interessante, maggiormente diffusa, utilizzata e consigliata, è la APP_WISERVER (libreria denominata “WiServer.h”) che permette ad un sistema Arduino equipaggiato con shield Wi-Fi di essere configurato e funzionare sia come Web Server sia come Web Client.
Nel primo caso sarà possibile servire richieste di connessione provenienti da web client esterni ed inviare delle pagine HTML in risposta; invece nel secondo ci si potrà collegare a un web server e,tramite la tecnologia request GET o POST, inviare richieste di esecuzione comandi e ricevere pagine HTML di risposta.
Per configurare la libreria WiShield scaricata come APP_WISERVER è necessario aprire il il <directory di arduino>\libraries\WiShield\apps-conf.h,
andare circa alla riga numero 39, commentare il “#define” di APP_WEBSERVER e rimuovere il commento al “#define” di APP_WISERVER.
La sezione di codice in esame deve risultare qualcosa come:
//#define APP_WEBSERVER
//#define APP_WEBCLIENT
//#define APP_SOCKAPP
//#define APP_UDPAPP
#define APP_WISERVER

 

Skatch e librerie
Su www.futurashop.it , direttamente nella scheda del prodotto (cod. WIFI_SHIELD), sono disponibili skatch d’esempio e librerie per l’utilizzo dello shield.

Pin

Symbol

Type

Description

1

GND

P

Massa

2

NC

NC

Non connesso

3

JTAGTDO

O

JTAG test data output

4

JTAGTCK

I: Constant(1)

JTAG clock input

5

JTAGTMS

I

JTAG mode input

6

JTAGTDI

I

JTAG test data input

7

RESET

I: Constant(1)

Module Reset input

8

NC

NC

Non connesso

9

RST

I

JTAG Reset input (optional; see Section 2.0)

10

GND

P

Massa

11

NC

NC

Non connesso

12

NC

NC

Non connesso

13

NC

NC

Non connesso

14

NC

NC

Non connesso

15

NC

NC

Non connesso

16

WP(2)

I

Write protect (this pin is used to enable FLASH update)

17

VDD

P

Power

18

GND

P

Massa

19

GND

P

Massa

20

HIBERNATE

I

Hibernate mode enable (high input will disable the module)

21

JTAGEN

I

JTAG test enable

22

NC

NC

Non connesso

23

CS

I

SPI Chip Select input

24

NC

NC

Non connesso

25

GND

P

Massa

26

DEBUGRX

I

Serial debug port input (see Section 2.0)

27

DEBUGTX

O

Serial debug port output (see Section 2.0)

28

GND

P

Massa

29

VDD

P

Power

30

GND

P

Massa

31

NC

NC

Non connesso

32

SDO

O

SPI data out

33

INT

O

Interrupt output (open drain – requires a pull-up)

34

SCK

I

SPI clock input

35

SDI

I

SPI data in

36

GND

P

Massa

Legenda:Pin type abbreviation: P = Power input, I = Input, O = Output, NC = Non connesso

 

Elenco revisioni
30/03/2012 Emissione preliminare
Private Policy Cookie Policy