Go Down

Topic: Webbino - Server web "dinamico" per Arduino (Read 71251 times) previous topic - next topic

SukkoPera

#465
Jan 17, 2021, 10:51 am Last Edit: Jan 17, 2021, 10:55 am by SukkoPera
Tutti i form devono usare il metodo get e avere un pulsante di submit ciascuno. Quando lo premi, solo gli input di quel form vengono inviati. Questo è HTML, non Webbino.

Come stai usando il tag poi, non ha alcun senso.

La variabile bool che vuoi ottenere è già ledState nell'esempio.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

nero773

#466
Jan 17, 2021, 01:05 pm Last Edit: Jan 17, 2021, 01:28 pm by nero773
Ciao SukkoPera,
so di avere molte lacune, mi sono affacciato a questo mondo partendo da 0 e proveniendo da tutt'altro ambito, ma sono testardo e continuerò a provare finché non riuscirò.
Dalla tua spiegazione mi sembra di capire che non é possibile ottenere un segnale impulsivo. Creo un form get che riceve lo stato di ledState che uso per far cambiare il colore del tasto. Col submit posso inviare delle selezioni già fatte sugli input del form, nel caso dell'esempio il flag su on o su off, non mi é possibile inviare un impulso alla pressione di submit in assenza dei campi di input. Corretto?

gpb01

Si, tu puoi solo inviare un "cambio di stato" o il valore di un campo, ma non sei su un telefonino o su un computer o direttamente su Arduino dove puoi leggere un "pulsante", tu sei su una pagina web e ... quindi è tutto diverso :)

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

Non sono sicuro di capire cosa intendi. Ogni volta che la pagina viene caricata, viene chiamata la Page function. La page function può tranquillamente mandare un impulso di lunghezza fissa a ogni esecuzione.

Secondo me devi fermarti un attimo e metterti con calma a studiare BENE l'html e le feature di Webbino e capire come sfruttare tutto ciò per i tuoi scopi, perché fin qua mi sembra che tu abbia fatto solo cose a caso senza comprensione di alcun meccanismo.
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

nero773

>SukkoPera , sicuramente é la strada migliore e la metterò in pratica, ma per ora ho scaricato un libro sulle nozioni base di Arduino che sto leggendo nei ritagli di tempo (veramente poco) a disposizione. Per l'html vedrò in futuro, per ora non vi tedierò più per l'html.

FolleFerrarista

Buonasera a tutti.
Sto provando a realizzare un web server con una scheda ESP8266 Node MCU 1.0, con il fine di raccogliere dati da più sensori di temperatura e compilare una pagina web con tali dati.
In realtà questo è il primo step di un progetto più complesso, che sfrutterà a pieno le potenzialità di questo fantastico progetto realizzato da SukkoPera ( ancora complimenti a te per quanto fatto  :)).


La scheda di sviluppo è quasi totalmente definita, ed il codice che gestisce gli aspetti "offline" del device è ad un buon punto, con un pannello OLED, moduli RTC ,sensori di campo e data logger che fanno il loro lavoro egregiamente.
L'integrazione con il webbino, permetterà la condivisione dei dati raccolti e processati su una rete LAN interna.


Purtroppo mi sono "bloccato" nella fase di configurazione della libreria del webbino, specificatamente nella sotto-componente che dovrebbe gestire la pagina web caricata precedentemente su una scheda microSD da 4GB.


Se la pagina viene caricata nella main root della scheda, non si ottiene alcuna risposta dal server.
Ovvero la pagina non viene letta dal browser (Edge, Chrome o Opera che sia). 


Mentre se si tiene la pagina nella memoria flash del NodeMCU ( rispettando quando spiegato da Sukko nel suo tutorial per l'utilizzo dello script in Phyton) tutto funziona correttamente. Anche la procedura del TAG replacement.


Per entrambe le prove ho utilizzato i file .htm o html incluse negli esempi, prima ancora di provare quella che sto programmando io stesso per il mio scopo. Diciamo che in questa prima fase primordiale mi interessa "solo" settare il tutto affinché funzioni, il programma sia della pagina che del controllore vero e proprio devono ancora essere ultimati.


HW utilizzato:
-NodeMCU ESP8266 V1.0
-DHT22 + OLED 0.96 + RTC + SD card reader


Librerie utilizzate dal compilatore [debug_webbino_lib]
-In allegato vi ho inserito un file di testo, con l'out dell'IDE per quanto concerne le librerie usate nel progetto, giusto per completezza, visto che mi era venuto un dubbio anche su quelle;

Output Serial monitor [debug_webbino_sd]
-In allegato vi ho inserito anche un secondo file di testo, con la risposta che il server dovrebbe inviare al client, una volta elaborata la richiesta in HTTP. Ho diviso il file in due parti, una NOK (SD mode) e l'altra OK (Flash LITTLEFS).
Si nota chiaramente come nel primo caso, vengano inviati al clienti centinaia di byte, che popolano poi il codice html sul PC. Mentre nel secondo caso, i byte "flushati" sono solo e SEMPRE 44. Come se non leggesse la pagina sorgente da cui compilare il client.write(). 
@Sukko, per comodità e per tirare fuori i dati, mi sono permetto di attivare  qualche riga di DPRINT nella funzione flushBuffer().

Memoria utilizzata [debug_webbino_mem]
-Terzo ed ultimo file di testo in allegato, contiene i dati relativi alla MEM utilizzata in entrambi i casi, non ci vedo nulla di strano a mio avviso, ma preferisco per completezza condividere con voi che siete più esperti di me, anche questi dati. :) 

Ultime due info, credo utili. Ho provato a cambiare SD, a scollegare tutte le periferiche i2c e spi con conseguente "pulitura" del codice sull'IDE, cambiare browser e formato della scheda SD, ma non cambia nulla. :( 
Inoltre, a volte, mentre aggiorno la pagina dal browser, mi và in crash il NodeMCU e si resetta da solo.....Tale fenomeno accade sia con il metodo Flash, che con il metodo SD.  :smiley-confuse:

Chiedo scusa anticipatamente, per la lunghezza del post. Ma volevo darvi tutti i dati in mio possesso per aiutarmi a risolvere il problema.
Grazie ancora e buon lavoro.


Francesco

gpb01

Hai modificato il file di configurazione "webbino_config.h" per abilitare l'uso della SD ?  Hai provato qualche esempio con SD che è a corredo della libreria (SDOnly o SDWithFlashFallback) ?

Guglielmo
Search is Your friend ... or I am Your enemy !

FolleFerrarista

Ciao Gugliemo, grazie per la risposta ed il supporto.
Si ho attivato l'utilizzo della scheda SD mediante de.commento nel file di configurazione, cosi come ben spiegato nel tutorial dell'autore.
Inoltre tutte le mie prove su citate, le ho effettuate con i due sketch d'esempio seguenti:
SDOnly e SimpleServer (per quanto concerne la prova con il flash nell'eeprom).
:smiley-confuse:


Francesco.

Go Up