Pages: [1] 2   Go Down
Author Topic: Metto a disposizione un webserver basato sulla scheda ENC28J60  (Read 1491 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
è tre giorni che mi sono arrivati dal venditore eBay Ekitzone (http://www.ekitszone.com/) il mio primo arduino (MEGA2560) e la relativa scheda ENC28J60 Ethernet Shield for Arduino MEGA / MEGA2560.

Siccome ho fatto fatica a trovare esempi di webserver in italiano per questa scheda Etherner, vorrei postare per tutti coloro che potrebbero essere interessati un piccolo esempio di webserver in grago di visualizzare 4 pagine due delle quali permettono di cambiare dei parametri (nel mio caso l'ora di accensione e spegnimento delle luci dell'acquario). Il programma è appena all'inizio proprio perchè ogniuno lo può adattare alla propria applicazione (si basa sulla libreria che si trova sul sito del venditore).

Spero di avere fatto cosa gradita
Scusate per la banalità del programma ma non conosco dove trovare la lista delle funzioni disponibili (per esempio esiste un comando per formattere del testo? lo userei per scrivere 01 al posto di 1 nelle ore e nei minuti)

* test.pde (14.09 KB - downloaded 41 times.)
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 25
Posts: 5481
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bell'idea smiley
peccato che non ne ho il tempo smiley-sad
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Castelletto Sopra Ticino, IT
Offline Offline
Full Member
***
Karma: 0
Posts: 169
Yes we can!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
bella cosa postare il proprio codice smiley...
Pero' ho dato un occhio.. e oltre al testo contenuto nella pagine che hai creato vedo solo inglese.
i commenti (la parte interessate) sono in inglese....
Ciao t30
Logged

Pignola (PZ)
Offline Offline
Newbie
*
Karma: 0
Posts: 45
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Noto che i prezzi sul sito che hai segnalato sono molto vantagiosi e per di più propongono free shipping. A te come è andata, hai pagato solo quello indicato o alla dogana sono stati aggiunti dei costi?
« Last Edit: June 18, 2011, 03:19:22 am by mimmofire » Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io ho la tua stessa configurazione hw, il mega e lo stesso chip di rete
obbiettivo: sfruttare il tcp/ip, la connettivita' di rete, e 34 gpio del mega
per confezionare un eprom emulator remoto

se invece parliamo di campionare delle temperature
con le quali, eventualmente gestire un remote power on/off

cioe' arduino connesso ad un paio di sensori
alla shield di rete, e ad un array di 4..8 rele

beh, ho qualcosina in mente, ma senza sfruttare l'interfaccia web!
perche' alla fine, per come la vedo io, se si usa unix
e' molto + comodo sfruttare i socket di rete, la shell, e, all'occorrenza, X11




certo, da web e' immediato il controllo tramite ipad/iphone
basta un browser, un mimimo di supporto iterattivo nel webserver
(senza scomodare php, python, o CSI ... o altri linguaggi app web
necessari per l'iterattivita' delle pagine html
e "parlati" dai browser + comuni)
e il gioco e' fatto!

ma questo vale per interfacce web molto semplici

tipo accensione/spegnimento di rele
con relativa visualizzazione dello stato, modi lampadina accesa/spenta

senza altro pretendere, tutto e' "relativamente" facile
e non serve che il web-server debba appoggiarsi a linguaggi interni

ma bastano gia' strumenti un filo + avanzati nelle pagine html
affinche' diventi obbligatorio rifarsi a linguaggi-web
pena incastrarsi in tunnel senza uscita

dunque o abbandonare il bareboard minimalista di arduino
per qualcosa di molto + complesso (tipo un vero server web, anche embedded)
oppure tenersi il bareboard arduino
considerarlo un "sensore intelligente" e nulla di +
e sfruttare solo i socket di rete, e scriversi una App dedicata

saltando cioe' in tronco il supporto di quei linguaggi
per i queli il motore iterattivo dovrebbe girare nell'arduino
cosa non credo fattibile anche limando all'osso lo stretto essenziale


io per non essere sempre col cappio al collo
propendo proprio per l'approccio
"arduino sensore intelligente, tutto il resto nella App dedicata"

ho in mano un palmare su cui gira un kernel linux/gnu
con tutto il supporto di rete
mi e' facile quindi aprire socket verso arduino
e tramite questi veicolare dati, e comandi
per i quali il parsing e' assolutamente + semplice di un parser web
quanto sfrutto e' semplicemente il tcp/ip


e per esempio per valutare la variazione di temperatura ambientale
campionando a diverse ore di distanza, e plottando il tutto su un grafo
e' assolutamente molto + comodo aprire un socket di rete verso arduino
fargli campionare la temperatura, dicendogli ogni quanto campionarla
(e, nel caso, di salvarsela nella propria SD card)

e farmi restituire poi il tutto, quando richiesto in una serie di  pacchettini tcp/ip
un array di valori di temperatura da dare in pasto a chesso ... gnuplot, e
cosi' da confezionare una interpolata speculativa sull'andamento previsto della temperatura


dovessi farlo il webserver arduino, dovrebbe essere capace
fra le varie cose, di confezionare immagini statiche
(vettoriale e' da escludersi, implicherebbe portare "flash" su aduino: impossibile!)
per poi creare al volo una paginetta html statica
con un include, e il file immagine da inviare al client, quando questo ne fa richiesta




p.s.
vero web-server-embedded: fonera-2, 60 euro
supporta diversi linguaggi web
« Last Edit: June 18, 2011, 05:39:23 am by flameman » Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 7
Posts: 2247
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

negli ultimi post di flameman ho notato che cerca di distogliere da arduino smiley-lol no dai scherzo

comunque il fonera ha una memoria moooooolto limitata.

e se vogliamo fare i pignoli sul suo post, quale sistema non si basa su un kernel unix?   smiley-neutral
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Offline Offline
Edison Member
*
Karma: 11
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quale sistema non si basa su un kernel unix? 

in ambiente domotico, robotico, aerospaziale, automotive, ferroviario, elettromedicale
difficile che tu possa trovare il kernel linux

(i motivi sono tanti, dal tecnico al burocratico)


come non e' detto che un nodo domotico non possa trovare vantaggi
dall'uso di kernel di tutt'altra natura
come per esempio freeRTOS (che gira su dsPIC, tanto quanto su AVR32)

ma non e' il kernel linux, o freeRTOS, o altro, il punto, anzi !
in ipotesi di monociclo, cioe' servire 1 solo client alla volta
non serve nemmeno un kernel (pessimo design, ma fattibile)

e quindi non e' nemmeno il kernel il punto da cui sono partito
sono partito da un mimimo di linguaggia web che un web server dovrebbe supportare
per farsi capire da un comune browser (suo diretto interlocutore)
il tutto per avere una interfaccia web decente piuttosto che una paginetta giocattolo
alche', visto che e' + un gioco di stile che una reale utilita'
ho proposto di spostare il problema del web server a qualcosa che non ha problemi a supportare linguaggi web
e di ritagliare all'arduino il compito di gestire quanto deve gestire
comunicando con il suo interlocutore (questa volta non un browser ma un webserver)
attraverso socket di rete


la fonera-2 e' stata citata proprio per fare un esempio di server web embedded
volendo si possono fare tanti altri esempi
spaziando da soluzioni + piccole di una fonera, a soluzioni + grandi
fino ad arrivare a pc embedded incassati nel muro quali "computer di bordo dell'impianto domotico"
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non trovo che il webserver sia un "gioco di stile" lo trovo molto utile.

Le interfaccie grafiche che si mettono spesso negli "scatolini" dei nostri circuiti sono spesso orrende e personalmente ne limiterei l'uso al minimo indispensabile (quando non ho il pc acceso) e a questo punto conviene una interfaccia web seppure molto semplice ma che in più offre la possibilità di avere anche una interfaccia remota.

Allego il mio sketch aggiornato con RTC e dati modificati via WEB salvati in EEPROM

* test.pde (40.02 KB - downloaded 18 times.)
Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Le interfaccie grafiche che si mettono spesso negli "scatolini" dei nostri circuiti sono spesso orrende e personalmente ne limiterei l'uso al minimo indispensabile (quando non ho il pc acceso) e a questo punto conviene una interfaccia web seppure molto semplice ma che in più offre la possibilità di avere anche una interfaccia remota.

per come la vedo io, penso francamente che
non sono solo orrende e limitate
sono del tutto inutili e sbagliate proprio come principio!
(nonche' un non indifferente bagno di sangue)


perche' secondo te con arduino e le sue limitate possibilita'
ha senso sprecare flash per implementare un webserver
al + monociclo e del tutto incapace
(perche' per linguaggi web manca ram runtime,
e flash per il codice, arduino e' fortemente limitato
del resto non e' affatto pensato per questo target)
per implementare anche il + semplice dei linguaggi web ?

e il voler mettere a tutti i costi un webserver nello scatolino
ha piu' senso che limitarsi ad usare la net schield per veicolare
invece dei soli dati via rete, chesso' un protocollino tftp (udp/ip fra l'altro)
verso qualcosa che (per esempio una fonera, o un iphone, ipad, adroid ...)
non ha affatto problemi a gestire una interfaccia web seria ?

quando non si ha il pc acceso, basta un serverino domestico,
tipo fonera, fatta per altro apposta.

alla fonera manca del tutto l'io per controllare la qualsiasi
non ha convertitore ADC, non ha DAC, non ha PWM, non ha GPIO usabili ....
ha pero' una usb e una scheda di rete, e una wifi
flash e ram + che suff per permettersi un kernel linux e un rootfs
capace di far girare un webserver e vari linguaggi web

arduino, invece, non ha ram, non ha flash suff
ma ha ADC, pwm, gpio ...
insomma e' pensato apposta per il controllo
in questo eccelle ! (sopratutto per il rapporto cosa fa/quanto costa)





per me il web server su arduino e' un demo,
esattamente per come e' stato presentato
ovvero un dimostrativo della ethernet schield e della librerie di rete
ma nulla di piu' di un puro esercizio di stile, a scopo puramente dimostrativo
(perche' parliamoci chiaro, di utilita' vera un web server su arduino non ne puo' avere,
non con gli attuali arduino)

(e qui mi piacerebbe far notare che senso ha controllare in remoto un acquario
via iphone, ipdad, cell-android, suppongo, o dove viene eseguito il browser ?

forse non su computer che, sebbene non siano il PC
sono perfettamente capaci di far girare LORO una applicazione
che raccoglie i dtati dai vari arduino-net
e confezionare LORO delle pagine html iterattive ?

o stiamo parlando di controllare l'acquario da fuori casa, su web-point pubblici ?
nel caso c'e' tutta la trafila del natting + routing da gestire
cosa che guardacaso passa dal router
magari proprio una fonera, o altro router dove non puo' che non girare linux/gnu
e quello e' il posto giusto per gestire eventuali pagine web dinamiche

oltre che tutta la trafila di natting, routing
e quantaltro serve per esportare un proprio servizio domestico sulla rete)




p.s.
che un arduino intefacci eeprom, flash, sd card
e li vi salvi i dati per poi scaricarli al client remoto
non implica affatto che arduino debba farlo
per forza da interfaccia web
 
il punto della mia critica e' esattamente questo

edit:
ma non voglio scoraggiarvi, sia chiaro
« Last Edit: June 18, 2011, 10:05:46 am by flameman » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sono d'accordo. Il mio webserver è molto funzionale. Ho suplito alla scarsa memoria per il webserver creando più pagine con un numero di controlli inferiori.

Qualcuno sa come formattare una stringa per trasformare il testo 1 in 01 per i minuti?
Logged

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 987
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Siccome ho fatto fatica a trovare esempi di webserver in italiano per questa scheda Etherner,
Lodevole iniziativa, grazie!
Che mi dici pero' del problema dei blocchi improvvisi della scheda ethernet? Li hai riscontrati? Risolti? Che modello uso?
Anch'io vorrei fare un webserver, ma se la scheda si blocca e/o resetta quanto gli pare, o fa resettare la Arduino, non va mica bene...
Logged

Offline Offline
Edison Member
*
Karma: 11
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non sono d'accordo. Il mio webserver è molto funzionale.

allora dimostramelo!
smentitemi con esempi concreti
cose che hanno davvero ragione e senso di girare su un webserver arduino
e fammi un esempio, corredato di dettagli.


perche' se per "funzionale" intendiamo paginetta statica
dimmi, se queste due che ho realizzato ti sembrano una interfaccia funzionale


lo scopo della prima e' controllare un carico (scopo puramente demostrativo)



lo scopo della seconda ha invece un che di + pragmatico
non avevo nulla sottomano, dovevo mostrare il traffico di una rete
e cosi' ho realizzato un piccolo analizzare il traffico capace di plottare un grafo su browser

ma siccome lo scatolino non puo' supportare alcun linguaggio web, ne strumento
mi sono dovuto rifare su una sorta di "ascii-art"
ovvero il grafico che vedi e' costituito da caratteri
il tutto perche' il webserver confeziona paginette statiche
che rinfresca ogni tot secondi
e ti assicuro che, per quanto sia un bel gioco di stile,
ci stia, assieme allo stack di rete tcp/ip, al kernel, alle librerie, e a tutto il resto
in 32Kbyte di ram
per quanto sia anche un utile esercizio (sopratutto per scrivere task)
come interfaccia non e' per nulla funzionale!

« Last Edit: June 19, 2011, 03:44:28 pm by flameman » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,


Io ho comprato Arduino 2009  ( dallo stesso venditore )  con ethernet  shield ENC28J60 ma purtroppo non riesco a fare funzionare la scheda di rete  smiley-cry mi spiego meglio, ho provato a caricare il software di esempio ( web server) ma la scheda di rete non viene inizializzata.
C'e' modo di fare debug per capire se e' lo shield che non funziona ? Suggerimenti ?


Grazie
Francesco .
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10105
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
è tre giorni che mi sono arrivati dal venditore eBay Ekitzone (http://www.ekitszone.com/) il mio primo arduino (MEGA2560) e la relativa scheda ENC28J60 Ethernet Shield for Arduino MEGA / MEGA2560.

Siccome ho fatto fatica a trovare esempi di webserver in italiano per questa scheda Etherner, vorrei postare per tutti coloro che potrebbero essere interessati un piccolo esempio di webserver in grago di visualizzare 4 pagine due delle quali permettono di cambiare dei parametri (nel mio caso l'ora di accensione e spegnimento delle luci dell'acquario). Il programma è appena all'inizio proprio perchè ogniuno lo può adattare alla propria applicazione (si basa sulla libreria che si trova sul sito del venditore).

Spero di avere fatto cosa gradita
Scusate per la banalità del programma ma non conosco dove trovare la lista delle funzioni disponibili (per esempio esiste un comando per formattere del testo? lo userei per scrivere 01 al posto di 1 nelle ore e nei minuti)


l'elenco delle funzioni disponibli su arduino è il reference http://arduino.cc/en/Reference/HomePage, anche se le normali librerie C o C++ possono essere incluse (stdlib, stdio, math, ...)


@flameman: TL:DR (too long, didn't read), però non puoi dire che un'embedded come fonera è superiore: certo, magari supporta il PHP & simila (ma ci sta in memoria), ma poi come fai a comunicare con sensori e attuatori? son 2 cose diverse.
il wiznet al massimo supporta 5 connessioni simultanee (questo chip non so), ma se uno vuole farsi la casa domotica, o controllare qualche attuatore o sensore a distanza sono più che sufficenti. Poi se si vuole presentare il risultato ad un più ampio pubblico, beh allora neanche le fonera & similia ce la fanno a reggere il carico.

Quote
cose che hanno davvero ragione e senso di girare su un webserver arduino
e fammi un esempio, corredato di dettagli.
una stazioncina metereologia, come mi pare la stia facendo leo o menniti... varie persone controllano l'accensione di caldaie & boiler nelle seconde case con web server arduino (cerca nel forum)

Quote
ma siccome lo scatolino non puo' supportare alcun linguaggio web, ne strumento
mi sono dovuto rifare su una sorta di "ascii-art"
non puoi sfruttare tecnologia lato server, ma lato client... nulla ti vieta, per esempio, di servire un contenuto flash, o una applet java, che si interfaccia all'arduino via socket e rappresenti i dati iun forma più carina
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per favore non perdete tempo con flameman,
addirittura questa volta ha postato delle immagini, e' allergico a condividere, mai una linea di codice e' uscita dalla sua mano.
Iscriviti su un forum con la mela morsicata, saresti piu' a tuo agio.

A carletto, grazie invece a te per il lavoro fatto e la condivisione, appena finito il mio attuale progetto iniziero' a lavorare sulla tua stessa shield di rete.

ti faro' sapere cosa ne viene fuori
ciao
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Pages: [1] 2   Go Up
Jump to: