Go Down

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

SukkoPera

Nov 06, 2016, 04:09 pm Last Edit: Nov 07, 2016, 03:00 pm by SukkoPera
È finalmente giunto il momento di annunciare all'intero pianeta la disponibilità di Webbino. Si tratta di un server web per Arduino, che avevo scritto originariamente per il mio progetto SmartStrip, e che ho successivamente separato e reso indipendente, visto che può avere un utilizzo molto più generico.

Le sue funzionaità principali sono le seguenti:
  • Compatibile con molte interfacce di rete:
    • WizNet W5100: Ethernet Shield
    • WizNet W5500: Ethernet Shield 2
    • ENC28J60: KMTronic DINo (first version)
    • WINC1500 (Wi-Fi): WiFi Shield 101, MKR1000
    • ESP8266 (Wi-Fi): Sia in aggiunta ad Arduino (tipo Shield MLT), sia standalone tipo NodeMCU, WeMos D1/D1 Mini...
  • Possibilità di salvare le pagine HTML nella flash interna o su una SD.
  • Permette di sostituire facilmente tag tipo #TEMPERATURA# nelle pagine HTML con dati dinamici generati al momento della richiesta della pagina.
  • Possibilità di richiamare una funzione alla richiesta di una pagina, con disponibilità dei parametri passati in GET.

La libreria è corredata da una serie di brevi esempi che mostrano come utilizzare le sue funzionalità. Ad esempio, LedControl mostra la facilità con cui è possibile comandare un led (o un relé) da web.

La libreria è attualmente in fase di beta, e sarà presto rilasciata come stabile. Nel frattempo eventuali test, suggerimenti e richieste sono i benvenuti :). Anche le critiche sono benvenute, purché costruttive. Per tutto ciò, e per qualsiasi domanda potete usare questo thread.

Di seguito qualche progetto che già usa Webbino:
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

Grande sukko! Serviva sto topic :D Comunque sui link che hai messo ti consiglio di mettere QUESTO che almeno è il progetto completo che lo utilizza ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

SukkoPera

Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

Rispolvero questo topic perché forse pablos e altri non l'hanno visto. Dovevano porre tanti bei quesiti, di cui onestamente sono curioso. :)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

pablos71

L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

SukkoPera

Ed ecco la gradita sorpresa di oggi:



Ora provare Webbino è ancora più semplice, non avete più scuse :).
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

SukkoPera

Grazie @As_Needed! Ne approfitto per raccomandarti, appena puoi, di portare il tuo sketch alla versione 0.9.0 di Webbino. L'API ora dovrebbe rimanere stabile e alcune cose dovrebbero risultare più semplici. Inoltre i futuri sviluppi (file binari? ;)) saranno aggiunti a questa.

A breve cancellerò i branch.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

Hai ragione Sukko e ora di aggiornare anche il mio sketch ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

As_Needed

#9
Nov 10, 2016, 01:59 pm Last Edit: Nov 10, 2016, 02:01 pm by As_Needed
Cosa? Non pensavo era diventato così semplice :D

Code: [Select]
EasyReplacementTag (tagMacAddr, NET_MAC, evaluate_mac_addr);
EasyReplacementTag (tagIPAddress, NET_IP, evaluate_ip);
EasyReplacementTag (tagNetmask, NET_MASK, evaluate_netmask);
EasyReplacementTag (tagGateway, NET_GW, evaluate_gw);
EasyReplacementTag (tagNetConfSrc, NET_CONF_SRC, evaluate_ip_src);
EasyReplacementTag (tagWebbinoVer, WEBBINO_VER, evaluate_webbino_version);
EasyReplacementTag (tagUptime, UPTIME, evaluate_uptime);
EasyReplacementTag (tagFreeRAM, FREERAM, evaluate_free_ram);


Un bel lavoro :) Praticamente guardando quello che è tra le parentesi, in mezzo ci va il nome del TAG sulla pagina della SD, poi alla terza posizione il nome della PString e all'inizio quello che prima era

static const var_substitution

Giusto? ;)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

SukkoPera

Direi di sì, occhio solo che la stringa del tag va senza virgolette.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

#11
Nov 10, 2016, 02:32 pm Last Edit: Nov 10, 2016, 02:36 pm by As_Needed
occhio solo che la stringa del tag va senza virgolette.
Sì. Poi per i file binari questo significa che potrò mettere la mia favicon :)
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

As_Needed

#12
Nov 10, 2016, 05:40 pm Last Edit: Nov 10, 2016, 05:41 pm by As_Needed
Non so se vale la pena postare qui, però ho un problema. Praticamente ho aggiornato tutto il mio codice con la nuova libreria, ovviamente con IDE 1.6.12 compilato e tutto e nessun errore ovviamente. Poi dopo quando cerco di accedere all'IP impostato da me non visualizzo niente, come mai?

Queste le definizioni

Code: [Select]
//SD ED ETHETNET SHIELD///////////////
#define SD_SS 4
WebServer webserver;
#include <WebbinoInterfaces/WIZ5x00.h>
NetworkInterfaceWIZ5x00 netint;
//EthernetServer server(80);

// Configurazione Network
#define IP_ADDRESS 192,168,1,51 //l'ip usato dalla scheda ethernet
//#define DNS_ADDRESS 208,67,222,222
#define GW_ADDRESS 192,168,1,1 //l'ip del vostro modem
#define NETMASK  255,255,255,0 //la netmask della vostra rete


E nel setup

Code: [Select]
Serial.println (F("Using Webbino " WEBBINO_VERSION));

  IPAddress ip (IP_ADDRESS);
  //IPAddress dns (DNS_ADDRESS);
  IPAddress gw (GW_ADDRESS);
  IPAddress mask (NETMASK);

    Serial.println (F("Configuring static IP address"));
  byte mac[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55};
  bool ok = netint.begin (mac, ip, dns, gw, mask);


  if (!ok) {
    Serial.println (F("Failed to configure static IP address"));
    while (42)
      ;
  } else {
    Serial.println (F("Static IP configuration done:"));
    Serial.print (F("- IP: "));
    Serial.println (netint.getIP ());
    Serial.print (F("- Netmask: "));
    Serial.println (netint.getNetmask ());
    Serial.print (F("- Default Gateway: "));
    Serial.println (netint.getGateway ());

    Serial.print (F("Initializing SD card..."));
    if (!webserver.begin (netint, NULL, tags, SD_SS)) {
      Serial.println (F(" failed"));
      while (42)
        ;
    }
    Serial.println (F(" done"));
  }


Sicuramente sbaglio qualcosa nel setup. Poi con la seriale mi scrive che tutto è stato configurato, sia ip che scheda SD, insomma tutto "done".
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

SukkoPera

Beh, questo thread serve proprio per queste cose, hai fatto benissimo a postare qui. Cosa ti scrive nel monitor seriale? Hai provato ad abilitare il debug?
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

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

As_Needed

#14
Nov 10, 2016, 05:52 pm Last Edit: Nov 10, 2016, 05:52 pm by As_Needed
Capito ;) Comunque no ancora non ho provato, comunque esce esattamente questo sulla seriale:

Code: [Select]
Using Webbino 0.9.0
Configuring static IP address
Static IP configuration done:
- IP: 192.168.1.51
- Netmask: 255.255.255.0
- Default Gateway: 192.168.1.1
Initializing SD card... done
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

Go Up