wifi shield elecrow 1.0

ciao a tutti
sono nuovo del mondo di arduino e mi sto cimentando in alcuni progetti , come primo progetto ho realizzato tramite una gsm shield il classico programmino per inviare un messaggio quando scatta un allarme.
Come da oggetto ora sto cercando di connettere il mio arduino uno r3 alla wifi shield elecrow 1.0 e qui vengono i guai.
Ho preso questa scheda perché economica e sull'onda dell'entusiasmo del primo progetto riuscito, L'intenzione è quella di fare un piccolo server web su arduino per accendere tramite relè una lampada ma non riesco ad andare a vanti. Con enorme difficoltà e le librerie seedstudio sono riuscito a connettere in maniera stabile arduino al router ma non riesco a trovare nessun esempio su come mettere su il server web e le relative librerie. Certo del vostro aiuto

questa mattina ho trovato le queste librerie per wifly che contengono anche Server.h

http://mgisolutions.blogspot.se/2012/05/arduino-wifly-shield-tutorial.html

posso provare con queste?

Io ho visto questo: http://www.elecrow.com/wiki/index.php?title=WiFi_Shield
stai parlando di questa scheda ?

si esattamente la scheda è questa.

Il problema è che per questa scheda non trovo nessun esempio da cui partire per realizzare un piccolo web server con arduino

ho trovato queste librerie

http://sourceforge.net/projects/arduinowifly/files/latest/download?source=files

questa sera provo

... niente sono fermo ... riesco a pingare la scheda ma non riesco ad andare oltre, mi sono incartato tra librerie ed IDE ( sono passato a 1.5 ) consigli / suggerimenti?

Ci sono riuscito !!!! con la libreria WiflyHq-master sono riuscito a fare partire il server web .... compito di domani :
Accendere un led :slight_smile:

ora chiaramente non riesco a mettere su l’interfaccia web per "accendere il led "

sono partito da questo

ed ho ridotto le porte da 4 ad 1 ( lasciando la possibilità di espandere il circuito )

di seguito lo sketch

/*

  • WiFlyHQ Example httpserver.ino
  • This sketch implements a simple Web server that waits for requests
  • and serves up a small form asking for a username, then when the
  • client posts that form the server sends a greeting page with the
  • user’s name and an analog reading.
  • This sketch is released to the public domain.

*/

/* Notes:

  • Uses chunked message bodies to work around a problem where
  • the WiFly will not handle the close() of a client initiated
  • TCP connection. It fails to send the FIN to the client.
  • (WiFly RN-XV Firmware version 2.32).
    */

/* Work around a bug with PROGMEM and PSTR where the compiler always

  • generates warnings.
    */
    #undef PROGMEM
    #define PROGMEM attribute(( section(".progmem.data") ))
    #undef PSTR
    #define PSTR(s) (extension({static prog_char __c PROGMEM = (s); &__c[0];}))

#include <WiFlyHQ.h>

#include <SoftwareSerial.h>
SoftwareSerial wifiSerial(2,3);

//#include <AltSoftSerial.h>
//AltSoftSerial wifiSerial(8,9);

WiFly wifly;

/* Change these to match your WiFi network */
const char mySSID = “xxxxxx”
const char myPassword = “xxxxx”

void sendIndex();
void sendGreeting(char *name
void send404();

char buf[80];

// Relay PINs
unsigned char relayPin[1] = {4};

void setup()
{
Serial.begin(115200);
Serial.println(F(“Starting”));
Serial.print(F("Free memory: "));
Serial.println(wifly.getFreeMemory(),DEC);

wifiSerial.begin(9600);
if (!wifly.begin(&wifiSerial, &Serial)) {
Serial.println(F(“Failed to start wifly”));
wifly.terminal();
}

/* Join wifi network if not already associated /
if (!wifly.isAssociated()) {
/
Setup the WiFly to connect to a wifi network */
Serial.println(F(“Joining network”));
wifly.setSSID(mySSID);
wifly.setPassphrase(myPassword);
wifly.enableDHCP();
wifly.save();

if (wifly.join()) {
Serial.println(F(“Joined wifi network”));
} else {
Serial.println(F(“Failed to join wifi network”));
wifly.terminal();
}
} else {
Serial.println(F(“Already joined network”));
}

wifly.setBroadcastInterval(0); // Turn off UPD broadcast

//wifly.terminal();

Serial.print(F("MAC: "));
Serial.println(wifly.getMAC(buf, sizeof(buf)));
Serial.print(F("IP: "));
Serial.println(wifly.getIP(buf, sizeof(buf)));

wifly.setDeviceID(“Wifly-WebServer”);

if (wifly.isConnected()) {
Serial.println(F(“Old connection active. Closing”));
wifly.close();
}

wifly.setProtocol(WIFLY_PROTOCOL_TCP);
if (wifly.getPort() != 80) {
wifly.setPort(80);
/* local port does not take effect until the WiFly has rebooted (2.32) */
wifly.save();
Serial.println(F(“Set port to 80, rebooting to make it work”));
wifly.reboot();
delay(3000);
}
Serial.println(F(“Ready”));
}

// Configure the relay PINs
void configRelayPINs()
{
int i;
for(i = 0; i < 1; i++)
{
pinMode(relayPin,OUTPUT);
}
}

void loop()
{
if (wifly.available() > 0) {

/* See if there is a request /
if (wifly.gets(buf, sizeof(buf)))
{
if (strncmp_P(buf, PSTR(“GET /?RELE1=ON”), 14) == 0) {
digitalWrite(relayPin[0],HIGH);
}
else if (strncmp_P(buf, PSTR(“GET /?RELE1=OFF”), 15) == 0) {
digitalWrite(relayPin[0],LOW);
}
{
else if (strncmp_P(buf, PSTR(“POST”), 4) == 0) {
/
Form POST /
Serial.println(F(“Form POST”));
}
else {
/
Unexpected request */
}
wifly.flushRx(); // discard rest of input
sendStatus();

}
}
}

/** Send an index HTML page with an input box for a username /
void sendStatus()
{
/
Send a greeting HTML page with the user’s name and an analog reading */
wifly.println(F(“HTTP/1.1 200 OK”));
wifly.println(F(“Content-Type: text/html”));
wifly.println(F(“Transfer-Encoding: chunked”));
wifly.println();

/* Send the body using the chunked protocol so the client knows when

  • the message is finished.
  • Note: we’re not simply doing a close() because in version 2.32
  • firmware the close() does not work for client TCP streams.
    /
    wifly.sendChunkln(F(""));
    wifly.sendChunkln(F(“WiFly RELE status”));
    /
    No newlines on the next parts */
    for (int i = 0; i < 1; i++);
    {
    snprintf_P(buf, sizeof(buf), PSTR(“RELE %d”), i+1);
    wifly.sendChunk(buf);
    if (digitalRead(relayPin));
    {
    wifly.sendChunk(F(“ON”));
    }
    else
    {
    wifly.sendChunk(F(“OFF”));
    }
    wifly.sendChunkln(F("
    “));
    }
    wifly.sendChunkln(F(”"));
    wifly.sendChunkln();
    }

va in errore per
Arduino:1.5.7 (Windows 7), Scheda:“Arduino Uno”

Build options changed, rebuilding all

Uso la libreria WiFlyHQ-master nella cartella: C:\Program Files (x86)\Arduino\libraries\WiFlyHQ-master (legacy)

Uso la libreria SoftwareSerial nella cartella: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial (legacy)

C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\WiFlyHQ-master -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial C:\Users\dellann\AppData\Local\Temp\build7682489674650598940.tmp\httpserver.cpp -o C:\Users\dellann\AppData\Local\Temp\build7682489674650598940.tmp\httpserver.cpp.o

httpserver.ino: In function ‘void configRelayPINs()’:
httpserver.ino:118:28: error: invalid conversion from ‘unsigned char*’ to ‘uint8_t {aka unsigned char}’ [-fpermissive]
In file included from C:\Program Files (x86)\Arduino\libraries\WiFlyHQ-master/WiFlyHQ.h:72:0,
from httpserver.ino:28:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:123:6: error: initializing argument 1 of ‘void pinMode(uint8_t, uint8_t)’ [-fpermissive]
void pinMode(uint8_t, uint8_t);
^
httpserver.ino: In function ‘void loop()’:
httpserver.ino:136:1: error: expected ‘}’ before ‘else’
httpserver.ino:136:1: error: expected ‘}’ before ‘else’
httpserver.ino: At global scope:
httpserver.ino:148:5: error: expected declaration before ‘}’ token

consigli?
grazie a tutti

niente non riesco a venirne a capo.... Ho spazzolato tutto il www e ho trovato molte persone con il mio stesso problema ma nessuna soluzione . .... comincio a pensare di avere sbagliato scheda.

consigli?

dopo lunghe ricerche u internet ho trovato uno sketch pilota tramite il quale sono risucito ad accendere le luci

Lo condivido sul forum per tutti quelli che avranno lo stesso problema

di seguito il link

Mi raccomando, il codice racchiudilo sempre nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti può capitare che una parte del codice viene interpretata e visualizzata male (soprattutto se ci sono parentesi quadre).

sto andando avanti con il progetto ed ora dopo avere inserito il display e il modulo con DS132 mi sono di nuovo bloccato con la pubblicazione verso il web

In particolare calcolo la temperatura per poi pubblicarla sul display e sulla webgui , ma lato web vedo solo dei numeri strani

Analog0=2621

la pubblicazione verso il web la faccio con le seguenti stringhe

 snprintf_P(buf, sizeof(buf), PSTR("<p>Analog0=%d</p>"), (temp));
wifly.sendChunkln(buf);

la variabile temp è float ed ho provato anche con

 snprintf_P(buf, sizeof(buf), PSTR("<p>Analog0=%d</p>"), dtostrf (temp,  3,  0, test);
wifly.sendChunkln(buf);

ma continuano uscire dei numeri strani

da quello che ho capito il problema è il tipo di variabile che do in pasto a PSTR ma non riesco a venirne a capo

consigli?

Ciao anche io ho acquistato la stessa wifi shield ma è da parecchi giorni che sto provando a connetterla.

Usando le librerie su seedstudio (ho provato lo sketch di test) il led D1 arriva a lampeggiare continuamente mentre invece dovrebeb essere fisso.
Entrando nel router vedo che gli viene assegnato un'IP ma oltre questo non vado.

Come hai fatto a farla funzionare?