Webbino - Server web "dinamico" per Arduino

gpb01: Mea culpa ... è vero, per fare la prova velocemente ho usato il pin 13 ... rifaccio la prova con un altro pin e riporto !

Messo il LED sul pin 7 e rifatta la prova ...

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
0. ST_ON_CHK
1. ST_OFF_CHK
2. WEBBINO_VER
New client
Client disconnected
New client
Client disconnected
New client
Client disconnected
New client
Client disconnected
New client
Client disconnected

... non cambia nulla :(

Guglielmo

Provato anche l'esempio SimpleServer ...

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
New client
Request for "/"
Redirecting to /index.html
Client disconnected
New client
Request for "/favicon.ico"
Client disconnected
New client
Request for "/"
Redirecting to /index.html
Client disconnected
New client

... la prima volta che vado sulla pagina, NON appare nulla, ma la sessione si chiude, se ricarico la pagina ... resta appeso.

Guglielmo

M'è venuto pure il dubbio che ci fosse qualche problema sull'hardware, ma ... ho caricato il classico esempio WiFiWebServer e ...

Attempting to connect to SSID: xxxxxxxxxxx
SSID: xxxxxxxxxx
IP Address: 192.168.1.172
signal strength (RSSI):-37 dBm
new client
GET /index.html HTTP/1.1
Host: 192.168.1.172
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: it,en-US;q=0.8,en;q=0.6

client disonnected

... funziona regolarmente :confused:

Guglielmo

Erm, non puoi usare nemmeno il 7:

Digital pin 7 is used as a handshake pin between the WiFi shield and the Arduino, and should not be used.

SukkoPera: Digital pin 7 is used as a handshake pin between the WiFi shield and the Arduino, and should not be used.

Azz ... si vede che è una vita che quella scheda è chiusa nel cassetto e non la uso ... provo con il 5 e riferisco :D

Guglielmo

P.S.: Però NON funzionava nenache il SimpleServer ... * *:confused:

Si fa un passetto più avanti, ma ... sul browser NULLA ...

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
0. ST_ON_CHK
1. ST_OFF_CHK
2. WEBBINO_VER
New client
Request for "/index.html"
Processing replacement tag: "WEBBINO_VER"
Replacement is: "0.9.0"
Processing replacement tag: "ST_ON_CHK"
Replacement is: ""
Processing replacement tag: "ST_OFF_CHK"
Replacement is: "checked"
Client disconnected
New client
Client disconnected

... anzi, tu scrivi Client disconnected, ma il browser indica che sta ancora aspettando una risposta !

Guglielmo

Giuro che non capisco :(.

La richiesta arriva, viene estratto l'url, recuperata la pagina corrispondente, inviata coi tag sostituiti ma non pare arrivare!

... e, tolto del tutto il LED e caricato l'esempio "SimpleServer" ... stessa cosa ... il browser resta in attesa, mentre tu dici "Client disconnected" :

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
New client
Request for "/index.html"
Client disconnected
New client

Guglielmo

P.S.: Le prove le sto facendo con Chrome e con gli esempi classici della WiFi non ci sono problemi.

Boh, puoi provare ad aggiungere un delay() qua:

void WebClientWifi::sendReply () {
    flushBuffer ();

        delay (10);                        <-- QUA

    internalClient.stop ();
    DPRINTLN (F("Client disconnected"));
}

Forse ci vorrebbe uno spione di pacchetti. Per Linux (e quindi credo funzioni su OSX) conosco solo kismet.

SukkoPera: Boh, puoi provare ad aggiungere un delay() qua:

Il risultato NON cambia ...

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
New client
Request for "/index.html"
Client disconnected
New client
Request for "/index.html"
Client disconnected
New client
Request for "/index.html"
Client disconnected
New client
Request for "/index.html"
Client disconnected

... mi sa che è venuto il momento che almeno uno shield WiFi te lo compri :D :D :D

Nota che tu scrivi sul monitor seriale "Client Disconnected", ma il browser non ha chiuso affatto la sessione e sta li ad aspettare di ricevere qualche cosa ... ... c'è qualche cosa che non va nella parte del codice che si occupa della "trasmissione" verso il WiFi ::)

Guglielmo

Non so se ti dica nulla ... ... ho decomennato queste tre righe di degug che ho trovato:

void WebClientWifi::flushBuffer () {
    if (avail > 0) {
        DPRINT (F("Flushing "));
        DPRINT (avail);
        DPRINTLN (F(" bytes to client"));

        // The cast is needed on ESP8266 standalone, byt shouldn't hurt anywhere
        internalClient.write ((const uint8_t *) buf, avail);
        avail = 0;
    }

Ho compilato il SimpleServer e lanciato, come al solito sul browser NON appare nulla, ma monitor seriale porta ti qualche info in più ...

Webbino 0.9.0
Trying to get an IP address through DHCP
FW Version: 1.1.0
Connecting to AP: xxxxxxxxx
Joined AP, local IP address: 192.168.1.172
DHCP configuration done:
- IP: 192.168.1.172
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Pages available in flash memory:
0. /index.html
Tags available:
New client
Request for "/index.html"
Flushing 256 bytes to client
Flushing 238 bytes to client
Client disconnected
New client
Request for "/index.html"
Flushing 256 bytes to client
Flushing 238 bytes to client
Client disconnected
New client
Request for "/index.html"
Flushing 256 bytes to client
Flushing 238 bytes to client
Client disconnected
New client
Request for "/index.html"
Flushing 256 bytes to client
Flushing 238 bytes to client
Client disconnected

Nota che io NON ho ricaricato la pagina, ma tu continui a ciclare tra "Client disconnected" e "New client" fino a quando il browser si incavola e chiude lui la sessione ...

Ti dice nulla ?

Guglielmo

Ancora non ho provato niente, ho compilato e basta e dà questo warning. Qualcosa di preoccupante? (mi riferisco al branch buffer) :wink:

In file included from D:\Arduino\libraries\Webbinobuffer\src\WebbinoCore\WebServer.cpp:22:0:

D:\Arduino\libraries\Webbinobuffer\src\WebbinoCore\Content.h:76:7: warning: extra qualification 'SDContent::' on member 'getNextByte' [-fpermissive]

  char SDContent::getNextByte () override {

       ^

No, tranquillo. Poi lo sistemo.

;)

Allora, per adesso, non vedo nessun problema, si carica almeno il triplo più velocemente! Ovviamente appena il sito risponde avviene il caricamento veloce, se c'è qualcosa che non rallenta il loop comunque, è un caricamento quasi istantaneo ;) Nel mio caso come già detto in precedenza sarebbe da isolare l'anemometro, facendolo gestire da un'altra MCU e non dalla stessa che si occupa del sito. Comunque per ora, un bel lavoro sukko questa beta :)

Io oggi sono a casa con la febbre e ne sto approfittando per testare su ENC28J60 e va alla grande anche lì!

Volevo testare anche la DigiFi ma la Seriale USB-CDC mi sta facendo impazzire >:(.

EDIT: Fixati warning.

Si, ma sul WiFi hai dei problemi nel rispondere alla HTTP GET …
… ho messo in trace Wireshark e, mentre la HTTP GET parte corettamente, da te NON mi sembra arrivino risposte corrette.

Ti allego il file di cattura così, se ti scarichi Wireshark lo puoi importare ed esaminare.

Guglielmo

Cattura.pcapng.zip (2.04 KB)

In effetti arrivano boiate. Vedo di capire, per quanto continui a sembrarmi tutto OK a livello di codice :confused:.

Se ti può servire ti mando il file di cattura dell’esempio standard di Arduino WiFiWebServer che interrogato spedisce indietro il valore delle porte analogiche … guarda la differenza … :wink:

Guglielmo

Cattura_Arduino.pcapng.zip (1.34 KB)