Archivi categoria: Arduino

Arduino con WiFi shield

Hello WiFi ( Arduino )

Testiamo oggi il modulo (Shield) Arduino WI-FI.

Shield_Arduino1

Questo shield utilizza un controllore WiFi prodotto da Microchip il MRF24WB0MA, molto semplice da utilizzare, che comunica con un microcontrollore attraverso la porta SPI.
Tale controllore è classificato sul sito ufficiale Microchip come “mature” quindi molto affidabile e robusto.

WiFiShield

Hardware

Il chip Integra uno stack TCP/IP e un connection manager con lo standard 802.11, non necessita di memoria RAM esterna.
Questo e’ il link alla pagina ufficiale sul sito Microchip: http://www.microchip.com/wwwproducts/Devices.aspx?product=MCW1001A

La scheda e’ arrivata con i connettori da saldare, quindi, dotandoci di saldatore e stagno, procediamo al lavoro “sporco”. Dopo aver saldato i vari connettori ( headers in English ), proviamo a connettere fisicamente la scheda Arduino UNO con lo shield WiFi.

Arduino con WiFi shield

Perfetto, i connettori della scheda Arduino Uno e WIFI Shield combaciano.
Proviamo ora a dare alimentazione alla scheda… FIUUU niente fumo, tutto OK!

In aggiunta prepariamo un led VERDE di test con una resistenza e colleghiamolo al PIN 8 di Arduino. Il LED ci servirà per testare la connessione WiFi e avere un feedback sull’avvenuta esecuzione dei comendi da wifi.

Passiamo quindi alla parte di configurazione software.

 Firmware

Scarichiamo le librerie appositamente scritte per questo modulo ( WiShield by Async Labs ), e copiamo la directory della libreria nella radice di

c:\Program Files (x86)\Arduino\libraries\

Se tutto e’ configurato correttamente, dovremmo vedere aprendo l’IDE Arduino in

File->Esempi->WiShield

dei nuovi esempi per testare lo shield.
Apriamo lo scketch SimpleServer che dimostra come configurare e utilizzare il modulo per farlo funzionare da web server.

L’impostazione fondamentale da esiguire nello sketch e’ quella relativa alla rete WiFi casalinga, in cui bisogna specificare il nome della rete la password di accesso e la porta http per l’accesso al web server.

// 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 = {"surfer's wifi"};        // max 32 bytes

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

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

Proviamo quindi a scaricare il firmware  in Arduino. Se tutto e’ configurato correttamente dovremmo vedere il led verde che si accende sullo shield, il che indica la connessione alla rete WiFi.

HTML

Quindi passiamo a costruire una pagina web che accende e spegne il led tramite la pressione di pulsanti, con la tecnologia AJAX.

<!DOCTYPE HTML><html><head><title>Arduino | LED CONTROL</title>
<style type="text/css">
.btn { width:180px; height:40px; font-size:150%; color:#0075c7; margin: 0.5em; }
</style>
<script type='text/javascript'>
var ledStatus = 0;var myRequest;
function CreateXmlHttpReq(handler) {
  var xmlhttp = null;
  xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}
function setLed(ledNo, status) {
    myRequest = CreateXmlHttpReq(myHandler);
    myRequest.open('GET','192.168.1.2/setled?ld'+ledNo+'='+status);
    myRequest.send(null);
}
function myHandler() {    if (myRequest.readyState == 4 && myRequest.status == 200) {    } }
</script>
</head>
<body>
<center>
    <h2>accendi / spegni LED (pin 8)</h2>
    <div><input type='button' class="btn" name='ledOn' value='LED ON' onclick='setLed(0, 1)' /><input type='button' class="btn" name='ledOff' value='LED OFF' onclick='setLed(0, 0)' /></div>
    <footer>
        <p>Arduino with WiFi board <br /> libreria WiShield by Async Labs Inc.<br /> Leonardo Benini 2014 &copy;</p>
    </footer>
</center>
</body>
</html>

VERIFICA FUNZIONAMENTO

Programmiamo Arduino… e testiamo!!!

Hello Arduino

Premessa

Essendo completamente alle prime armi con il mondo Arduino ( ma non nella programmazione di microcontrollori in generale) scrivo questo articolo per spiegare come iniziare lo sviluppo con questo famoso sistema di sviluppo a microcontrollore.

Vediamo innanzitutto l’ hardware:
Arduino UNO dotato di microcontrollore ATMEGA328P
Arduino-uno-small

Installazione dell’ambiente di sviluppo IDE

Andando sul sito web ufficiale di arduino: http://arduino.cc/en/Main/Softwarescarichiamo e installiamo l’ambiente di sviluppo integrato ( IDE ), nel mio caso installo la versione Windows 1.06, che servirà per programmare (e debuggare) il microcontrollore attraverso il linguaggio, installare i drivers USB.

Installato l’ambiente di sviluppo per prima cosa collego alla posrta USB la scheda Arduino e attendo la configurazione dei drivers USB, che fallisce.
Bisogna quindi installare i drivers MANUALMENTE da Gestione Dispositivi.
Si vedrà una porta COM6 Arduino Uno

Installa-Drivers-Arduino

Installare quindi il driver manualmente selezionando Installa nuovo Driver e cercandolo nel computer manualmente, nella directory di installazione Programmi(x86)Arduino\drivers ( Attenzione, non FTDI drivers ) -> arduino.inf

Una volta installato il driver aprire l’IDE menu-arduino dal menu.

L’ambiente di sviluppo Arduino è dotato di comodi esempi utili in questo caso per provare la scheda.

Apriamo lo Sketch ( è così che vengono chiamati i programmi arduino ) Blink da
File->Esempi->01. Basic -> Blink

Quindi scegliamo il nostro dispositivo da Strumenti->Tipo di Arduino->Arduino Uno

Premiamo il tasto di upload dello sketch pulsant-uploadi

E se tutto è andato bene si vedranno i led di TX/RX sulla scheda lampeggiare.

Dopodichè verrà eseguito lo sketch di esempio sulla scheda che fa lampeggiare il led L

COMPLIMENTI!! avete una scheda Arduino funzionante e pronta per essere programmata!!!!