Webbino - Server web "dinamico" per Arduino

devi dare tutti i percorsi completi ... dove si trova html2h.py, dove si trova webroot, dove vuoi che venga creato html.h, altrimenti lui cerca tutto e salva nella cartella dove ti trovi ::)

Guglielmo

La cosa più semplice è che copi la webroot nella cartella di python, lo lanci da lì e poi sposti l'html.h nella cartella dello sketch.

In alternativa, qua c'è un interprete python contenuto in un singolo eseguibile, che puoi copiare insieme all'html2h.py (a questo punto usa py al posto di python nel comando).

Grazie, lo so, sono duro, ma stavolta ci sono arrivato :D Ho capito come funziona, purtroppo è una vita che non si usa la riga di comando, almeno io :) e certe cose si dimenticano. Grazie a tutti :)

Ciao Ragazzi,

Vorrei creare un webserver con arduino mega e ESP82666 che si collega al mio router di casa (non come NODE MCU). Su consiglio di Guglielmo ho optato per Webbino. Mi sono letto tutte queste 27 pagine e ho provato a modificare i file di configurazione.h

Ho provato a cercare degli esempi sul web ma sembra che il 99% usino la ETH shield.

Ho provato a compilare gli esempi che sono allegati alla libreria , sopratutto simple server ma ottengo sempre molti errori come

too many initializers for 'const Page'

oppure

'page01' was not declared in this scope

Purtroppo ho utilizzato molto arduino ma solo per progetti di elettronica con "poco" software.

La mia intenzione era quella di partire da un esempio semplice che creasse una pagina anche vuota a cui poter accedere e poi studiarmi tutto il resto per implementare i contenuti, pulsanti, indicatori ecc

Qualcuno ha per caso un esempio compilabile?

Ho provato a muovere i file nella cartella dello sketch ma non ho visto differenze. Non ho ben compreso se i file di configurazione e html devono rimanere nella directory della libreria o no.

grazie a chi avrà la pazienza di spiegarmi qualcosa in più

un saluto

Michele

>miche91: l'autore della libreria, SukkoPera qui sul forum, è stato informato di questo tuo problema e, nei limiti del possibile, vedrà di verificare la cosa e farti sapere ... :)

Ci vorrà un po' di pazienza ...

Guglielmo

Grazie mille ad entrambi intanto

A presto

Michele

Ciao Team,

Qualcuno ha qualche novità per l’utilizzo di webbino in Wi-Fi e non con il cavo Ethernet ? Qualcuno é riuscito a farlo funzionare ?

Grazie in anticipo Grazie a tutti

Il primo post dice che funziona con lo shield ufficiale WiFi e con l'ESP8266 sia collegato ad una UNO che da solo.

zoomx: Il primo post dice che funziona con lo shield ufficiale WiFi e con l'ESP8266 sia collegato ad una UNO che da solo.

Infatti anche io ricordavo la stessa cosa e credo, a suo tempo, di averlo anche usato con lo shield ufficiale. :)

Guglielmo

miche91: Qualcuno ha qualche novità per l’utilizzo di webbino in Wi-Fi e non con il cavo Ethernet ?

Un po' vago non ti pare?

Con che scheda Arduino stai provando, con che shield e che problemi riscontri ?

Guglielmo

gpb01: Un po' vago non ti pare?

Con che scheda Arduino stai provando, con che shield e che problemi riscontri ?

Guglielmo

Ciao Guglielmo, mi scuso ma non volevo ripetere la storia per non spannare ma nel posto precedente al mio ultimo ho illustrato qual è il problema che sto avendo con l'ESP8266

Grazie

Scusate il ritardo...

miche91: Ho provato a cercare degli esempi sul web ma sembra che il 99% usino la ETH shield.

Non importa, in teoria basta modificare il config e tutto dovrebbe funzionare allo stesso modo in ogni configurazione.

miche91: Ho provato a compilare gli esempi che sono allegati alla libreria , sopratutto simple server ma ottengo sempre molti errori come

too many initializers for 'const Page'

Colpa mia. Ora ho risolto il problema nell'esempio SimpleServer. Appena riesco do una passata anche agli altri. Comunque per vedere come usare la libreria è sufficiente.

miche91: La mia intenzione era quella di partire da un esempio semplice che creasse una pagina anche vuota a cui poter accedere e poi studiarmi tutto il resto per implementare i contenuti, pulsanti, indicatori ecc

SimpleServer ha appunto questo scopo.

miche91: Ho provato a muovere i file nella cartella dello sketch ma non ho visto differenze. Non ho ben compreso se i file di configurazione e html devono rimanere nella directory della libreria o no.

Il file di configurazione deve rimanere nella directory della libreria. Mi piacerebbe poterlo spostare all'interno dello sketch, ma l'ultima volta che ho provato alcune limitazioni di Arduino non lo permettevano (in particolare il fatto che la libreria è compilata prima e da sola).

I file html no, una volta "convertiti" nel relativo .h, è necessario solo quest'ultimo.

GRAZIE MILLE SukkoPera

Ho fatto tutto e modificato il file di configurazione per utilizzare arduino collegato alla esp8266 e sono riuscito a compilare su arduino lo sketch

ultima domanda.... Sul serial monitor sembra che arduino non riesca a vedere la esp8266

ricevo sempre :

[WWebbino 0.10.0git Trying to get an IP address through DHCP [WiFiEsp] Initializing ESP module [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] >>> TIMEOUT >>>

La scheda funziona perchè collegandola direttamente a tx e rx riesco a dialogarci con i suoi comandi AT ecc però onestamente non ho ben capito dove arduino si aspetta di "vedere" la ESP. Secondo la mia logica se la porta seriale è utilizzata per scrivere sul serial monitor non può essere utilizzata per la comunicazione tra arduino e la board, giusto?

Io sto utilizzando un arduino mega, ho provato a utilizzare TX1 ed RX1 ma non funziona

potresti chiarirmi anche questa dinamica?

grazie ancora Michele

La seriale la specifichi tu in fase di inizializzazione, nella fattispecie alla riga 100 dell’esempio. Il default è una software serial sui pin 6 e 7. Nulla ti vieta di metterci Serial1 o quel che preferisci.

Scusami il ritardo SukkoPera, ma volevo ringraziarti per la pazienza, funziona tutto alla grande.

L'unica cosa che non ho capito è quali sono i limiti di avere pagina/e sulla sd card rispetto ad averle sulla flash.

Io vorrei fare una pagina che visualizzi delle variabili di arduino e che contenga anche qualche semplice tasto per attivare/disattivare dei pins.

Mi consigli di farlo sulla sd o sulla flash ? Per quanto riguarda le dimensioni della pagina potrei per adesso farla nel modo piu semplice possibile quindi dovrei riuscire a farla stare sulla flash del mega, però dovrei compilarla in .h con python ecc.

Se non ci fossero controindicazioni io farei tutto su sd ma da quello che ho capito non è cosi purtroppo, potresti chiarirmi anche questo punto ?

grazie

È più semplice di quello che credi: la soluzione in flash ha il pro di non richiedere una SD con relativo shield. D'altro canto ha una capacità molto limitata e la "scomodità" di dover riconvertire in .h gli html ogni volta che si modificano.

Viceversa per la soluzione SD :).

Grazie per la risposta.

Il mio problema è che con la pagina sulla SD card riesco tranquillamente a vedere i vari Tags ma non riesco a attivare un pin digitale da remoto.

ho provato a modificare

FlashFileFuncAssoc (indexAss, index_html_name, ledToggle);

in

FileFuncAssoc (indexAss, "\index.html", ledToggle);

ma non riesco comunque, quando provo a cambiare stato dell'uscita non succede niente.

Se invece metto la pagina sulla flash convertendola in .h tutto funziona alla grandissima.

Hai un moto per far funzionare tutto anche sulla SD? per me questo è l'ultimo scoglio dopo di che si tratta solo di lavorare per inserire tutti i tags ecc

grazie ancora

Hai provato con la slash / invece che ? Quella giusta è la prima.

GRAZIE MILLE, ADESSO FUNZIONA!

Sto cercando di trasmettere dei valori da arduino alla pagina web e allo stesso tempo attivare delle uscite dalla pagina web sulla scheda di arduino.

funziona tutto alla grande finche non provo a collegare il sensore di pressione bmp180, sto diventando pazzo, ho provato mille soluzioni.

quando inserisco la lettura della pressione del sensore nel void loop dello sketch non funzionano più gli interruttori sulla pagina web e non riesco a capire il motivo. Allego lo sketch che è molto semplice per adesso in quanto è praticamente l’esempio LEDCONTROL un po’ modificato.

quando inserisco nel programma le ultime 3 linee ho il problema.

le linee sono queste

// (event.pressure)
// atmpressure = event.pressure;

void loop () {

  webserver.loop ();

h = dht.readHumidity();
t = dht.readTemperature();

//calculate min max
if (t>tmax){tmax = t;}
if (t<tmin){tmin = t;}
  
  sensors_event_t event;
  bmp.getEvent(&event);
// (event.pressure)
// atmpressure = event.pressure;

la pagina html è ancora più semplice

<html>
<body>
<body style="background-color:lightblue">
<style> 
input[type=submit]  {

  font: 40px arial black, sans-serif;
}

input[type=radio] {
    margin: 1em 1em 1em 0;
    transform: scale(2, 2);
    -moz-transform: scale(2, 2);
    -ms-transform: scale(2, 2);
    -webkit-transform: scale(2, 2);
    -o-transform: scale(2, 2);
}
p {
 font: 30px arial black, sans-serif;
 color: purple;
 margin: 5px 10px 5px 10px;
 font-weight:bold;
 }
 p2 {
 font: 30px arial black, sans-serif;
 color: black;
 margin: 5px 10px 5px 10px;
 font-weight:bold;
 }
 
 h2 {
 font: 40px arial black, sans-serif;
 color: yellow;
 margin: 5px 10px 5px 10px;
 font-weight:bold;
 }
 div {
  width: 500px;
  border: 3px solid green;
  padding: 3px;
  margin: 5px;
}

</style>

 
<h2>MICHELE</h2>


<table width="750" height="150" border="2" bordercolor="grey">
<tr>
       <td><font face=ARIAL BLACK><font size=6><font color=BLACK>TEMPERATURE</font></font>  </td>
       <td><font face=ARIAL BLACK><font size=6><font color=BLACK>#TEMPERATURE#&degC </font></font>  </td>
</tr>
<tr>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>HUMIDITY</font></font></font> </td>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>#HUMIDITY#% </font></font></font> </td>
</tr>
<tr>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>TEMP MAX</font></font></font> </td>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>#MAX#&degC </font></font></font> </td>
</tr>
<tr>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>TEMP MIN</font></font></font> </td>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>#MIN#&degC </font></font></font> </td>
</tr>
<tr>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>ATM PRESSURE</font></font></font> </td>
      <td><font face=ARIAL BLACK><font size=6><font color=BLACK>#PRESSURE#hPa </font></font></font> </td>
</tr>
</table>




<form method="get">
<div>
<p2>LED 1&emsp;&emsp;</p2>
<input type="radio" name="state" value="on" #ST_ON_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">ON</label>&emsp;&emsp;&emsp;
<input type="radio" name="state" value="off" #ST_OFF_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">OFF</label>

</div>
<div>
<p2>LED 2&emsp;&emsp;</p2>
<input type="radio" name="state2" value="on" #ST2_ON_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">ON</label>&emsp;&emsp;&emsp;
<input type="radio" name="state2" value="off" #ST2_OFF_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">OFF</label>

</div>
<div>
<p2>LED 3&emsp;&emsp;</p2>
<input type="radio" name="state3" value="on" #ST3_ON_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">ON</label>&emsp;&emsp;&emsp;
<input type="radio" name="state3" value="off" #ST3_OFF_CHK#/ style="border-style:none;margin-left:10px;font-size:11px;"/><label style="font: 40px arial black; color:blue">OFF</label>

</div>




<input type="submit" value="SUBMIT" />




</form>
</body>
</html>

cosa c’è nel codice di questo sensore che va in conflitto con la pagina html ?

È un BMP180 ma stai usando la libreria del DHT-22?