volevo presentare a tutti il mio primo progetto. Si tratta essenzialmente della solita "ciabatta" di prese elettriche controllabili da interfaccia web, con l'aggiunta della possibilità di accenderle/spegnerle in dipendenza dalla temperatura. L'altra caratteristica che la rende diversa dalle altre è che dovrebbe supportare sia lo shield Ethernet ufficiale che quelli basati su ENC28J60.
Dovrebbe tornare utile agli appassionati di acquari e a chi fa birra in casa, come me :). In ogni caso, non mi ritengo responsabile di qualunque cosa succeda se la usate .
Mi piacerebbe se qualcuno volesse collaborare, come beta tester o come programmatore, o in qualunque modo gli passi per la testa! . Dategli almeno un'occhiata, grazie!
ISTRUZIONI PER L'INSTALLAZIONE:
Aprite la vostra cartella degli sketch, dove ci sono le cartelle con tutti i vostri programmi. Createci dento, se ancora non esiste, una nuova cartella, chiamandola "libraries".
Installazione della libreria Sukkino:
Andate qua: GitHub - SukkoPera/Webbino: A universal webserver for Arduino, capable of delivering dynamic contents
Cliccate su ZIP e dovreste scaricare un file tipo Sukkino-master.zip.
Aprite il file scaricato, dovreste trovarci una cartella con dentro 3 ulteriori cartelle: EEPROMAnything, Panic e Webbino. Copiate queste ultime dentro alla cartella "libraries" creata precedentemente.
Installazione della libreria Ethercard - NECESSARIO SOLO SE USATE UNO SHIELD CON CHIPSET ENC28J60 (ovvero non quello ufficiale, che usa il chip WIZ5100, in tal caso saltate direttamente al punto successivo)
Andate qua: GitHub - njh/EtherCard: EtherCard is an IPv4 driver for the ENC28J60 chip, compatible with Arduino IDE
Cliccate su ZIP e dovreste scaricare un file tipo ethercard-master.zip.
Aprite il file scaricato, dovreste trovarci una cartella: ethercard-master. Copiatela dentro alla cartella "libraries" creata precedentemente e rinominatela in "Ethercard".
CHECKPOINT - Se avete fatto tutto correttamente, a questo punto dentro alla cartella libraries dovreste avere 4 sottocartelle: EEPROMAnything, Ethercard, Panic e Webbino (3 se usate WIZ5100, mancherà Ethercard).
Abilitazione del supporto WIZ5100 - NECESSARIO SOLO SE USATE LO SHIELD ETHERNET UFFICIALE O COMUNQUE UNO BASATO SUL CHIPSET WIZ5100 (in caso contrario saltate direttamente al punto successivo)
Aprite col vostro editor preferito il file \libraries\Webbino\webbino_common.h, all'inizio troverete:
si, credo di si. ma la sezione :
EEPROMAnything.write (EEPROM_MAC_B1_ADDR, DEFAULT_MAC_ADDRESS_B1);
EEPROMAnything.write (EEPROM_MAC_B2_ADDR, DEFAULT_MAC_ADDRESS_B2);
EEPROMAnything.write (EEPROM_MAC_B3_ADDR, DEFAULT_MAC_ADDRESS_B3);
EEPROMAnything.write (EEPROM_MAC_B4_ADDR, DEFAULT_MAC_ADDRESS_B4);
EEPROMAnything.write (EEPROM_MAC_B5_ADDR, DEFAULT_MAC_ADDRESS_B5);
EEPROMAnything.write (EEPROM_MAC_B6_ADDR, DEFAULT_MAC_ADDRESS_B6);
EEPROMAnything.write (EEPROM_NETMODE_ADDR, DEFAULT_NET_MODE);
EEPROMAnything.write (EEPROM_IP_B1_ADDR, DEFAULT_IP_ADDRESS_B1);
EEPROMAnything.write (EEPROM_IP_B2_ADDR, DEFAULT_IP_ADDRESS_B2);
EEPROMAnything.write (EEPROM_IP_B3_ADDR, DEFAULT_IP_ADDRESS_B3);
EEPROMAnything.write (EEPROM_IP_B4_ADDR, DEFAULT_IP_ADDRESS_B4);
EEPROMAnything.write (EEPROM_NETMASK_B1_ADDR, DEFAULT_NETMASK_B1);
EEPROMAnything.write (EEPROM_NETMASK_B2_ADDR, DEFAULT_NETMASK_B2);
EEPROMAnything.write (EEPROM_NETMASK_B3_ADDR, DEFAULT_NETMASK_B3);
EEPROMAnything.write (EEPROM_NETMASK_B4_ADDR, DEFAULT_NETMASK_B4);
EEPROMAnything.write (EEPROM_GATEWAY_B1_ADDR, DEFAULT_GATEWAY_ADDRESS_B1);
EEPROMAnything.write (EEPROM_GATEWAY_B2_ADDR, DEFAULT_GATEWAY_ADDRESS_B2);
EEPROMAnything.write (EEPROM_GATEWAY_B3_ADDR, DEFAULT_GATEWAY_ADDRESS_B3);
EEPROMAnything.write (EEPROM_GATEWAY_B4_ADDR, DEFAULT_GATEWAY_ADDRESS_B4);
non capisco se è da programmare con i miei valori?
il compilatore si ferma a questa riga di codice:
param = request.get_get_parameter (F("mac"));
e la lista degli errori in cui quasi tutti sono uguali a questo:
SmartStrip2.ino: In function 'void netconfig_func(HTTPRequestParser&)':
SmartStrip2:186: error: invalid conversion from 'const __FlashStringHelper*' to '__FlashStringHelper*'
SmartStrip2:186: error: initializing argument 1 of 'char* HTTPRequestParser::get_get_parameter(__FlashStringHelper*)'
Dovrebbe funzionare anche sulla Uno con shield wiz5100, è una delle mie piattaforme di test, anche se ho dei cloni di entrambi.
In teoria i tuoi valori li puoi modificare dall'interfaccia web dopo una connessione iniziale, ma per fare prima li puoi cambiare in common.h (Quelli sotto, non quelli che terminano in _ADDR, che vanno lasciati come sono).
Quell'errore di compilazione con quale versione dell'IDE lo ottieni?
PS: Dovrei continuare a lavorare su questo progetto. Purtroppo sono venuti gli imbianchini e mi hanno stravolto la casa, ho dovuto chiudere tutta la mia roba elettronica in una scatola in fretta e furia e non ho mai il tempo di riprenderla in mano :(.
ciao, me lo fa con le ultime tre versioni 1, mica devo usare la 0023?
purtroppo la mia esperienza e' veramente poco e forse non ti so neanche descrivere bene forse il problema.
e' anomale che se provo a programmare un file oltre i 29k mi dia errore?
bacconi:
ciao, me lo fa con le ultime tre versioni 1, mica devo usare la 0023?
No, figurati, io uso la 1.0.1 di solito! Faccio qualche test e ti dico.
PS: Perdonami, dimenticavo che se usi la WIZ5100 lo sketch diventa troppo grosso per stare su una Uno, e ti ci vuole una Mega. Ho già qualche idea per ridurre la dimensione del binario, ma ci vorrà un po' per metterla in pratica. La verità è che non mi spiego il motivo per cui la libreria Ethernet occupi così tanto spazio (più di 5 Kb, ma vado a memoria)! Si dice ovunque che il Wiz è meglio dell'ENC28J60 perché implementa molte funzioni in hardware, ma di fatto la libreria Ethercard che uso per quest'ultimo chip alla fine occupa meno spazio e funziona altrettanto bene (sebbene va detto che consumi più RAM; in effetti la mia Webbino è parecchio inefficiente in questo senso quando si usa il Wiz, essendo nata per l'ENC e non avendo ancora avuto voglia/tempo di modificare certe cose).
OK, avevo dimenticato di pushare gli ultimi commit su Sukkino, aggiornalo e riprova.
Comunque il binario per la Uno con supporto Wiz e l'IDE 1.0.1 viene di 35320 byte, troppi. Col supporto all'ENC diventa di 28912. Come dicevo, c'è qualche ottimizzazione possibile nel mio codice, ma la differenza mi sembra eccessiva. Si direbbe che anche la libreria Ethernet ufficiale possa essere pesantemente ottimizzata in termini di spazio...
Si l'ho preso ora e installato, gli errori sono ancora più di prima almeno 3 pagine di "not declared".
Secondo me dovresti perdere 2 minuti a spiegarne l'installazione, scrivi che hai aggiornato il link, ma non ripeti il link, devo andare al primo post e cliccare il link sul forum, sul forum internazionale poi cliccare su quel link e tornare indietro, un po' scocciante :).... qualche spiegazione in inglese sull'instal c'è, ma sei sul forum ita quindi scrivilo in ita magari sul primo post facendo un aggiunta.
Scrivi come va installato nel dettaglio poichè un inesperto potrebbe creare seri danni al suo IDE sovrascrivendo file nei posti sbagliati incasinandogli tutto.
Questo chiaramente se sei interessato che gli utenti lo provino e ti diano dei pareri.
Se non ero interessato, manco aprivo sto thread, no? Farò come dici, appena possibile.
Mi posteresti intanto gli errori che ottieni?
EDIT: Credo di aver capito, a tutti voi manca html.h, che andrebbe generato dinamicamente, ma che se siete su Windows non è proprio immediato. Vedo di aggiungerlo al repository!
Ho messo lo sketch nella cartella con le librerie, magari devo rivedere l'installazione di tutte quelle lib se sono al posto giusto. però a parte tutto quello che mi interessa del tuo progetto è solo questo
No, è il supporto per una sorta di "contenuti dinamici" nelle pagine web. Prova il secondo esempio della libreria Webbino e dovresti capire.
L'uso di PROGMEM in questo frangente è solo per risparmiare più RAM possibile.
Ho aggiunto le istruzioni dettagliate per l'installazione al primo post. A questo punto sei moralmente obbligato a seguirle e dirmi se va tutto bene :). Ho anche aggiunto il file html.h al repository, riscaricalo.
Ciao, mi sembra di averle scaricate tutte e messe in una cartelle di nome "nome libreria" senza .h nella cartella libraries dell arduino.
è il percorso giusto?
ti ho postato una foto dell errore, se riesci a capire.