Salve a tutti, oggi condivido con voi la mia esperienza con arduino in questo ultimo periodo.
Premessa: Voglio capire se è possibile rendere il mio sketch più "fluido", utilizzo arduino mega per la gestione di tutta l'abitazione, un wemos d1 r2 per il collegamento wifi (esp8266).
Caricando il codice attuale però ho già raggiunto il 56% di memoria, so che già ora potrebbe fare brutti scherzi il mega, devo ancora aggiungere delle parti di codice abbastanza "pesanti" (tutta la parte dell'anti furto, la parte della temperatura e dell'irrigazione) e non so se possibile.
Ringrazio SukkoPera per la sua pazienza e per il suo aiuto, lo sketch è basato sulla libreria Webbino.
Ho tirato su un plastico in scala 1:20 di un'abitazione domotizzata, cioè gestione di..
-Illuminazione di ogni singolo ambiente sia tramite pulsante fisico posto all'interno dell'abitazione che tramite smartphone/pc in remoto. [testato e funzionante]
-Cancello automatico gestito sia da un pulsante che in remoto da un qualsiasi smartphone/pc. (il cancello comprende fotocellule interne/esterne e lampeggiante per segnalare qualsiasi movimento) [testato e funzionante]
-Antifurto con sensore PIR e chiave RFID per l'attivazione/disattivazione dell'allarme, un lcd per il controllo dello stato di funzionamento. [devo ancora includere questa parte di codice]
-Temperatura attraverso un lm35, una ventola posizionata in modo da abbassare la temperatura se richiesto, quindi un set della temperatura gestito tramite web e visualizzazione della temperatura su un lcd. [devo ancora includere questa parte di codice]
-Irrigazione del prato gestita da smartphone/pc con set del timer della durata dell'irrigazione. [devo ancora includere questa parte di codice]
La pianta dell'abitazione
Il progetto realizzato
Come si può notare c'è il sensore pir alla fine del corridoio, il sensore di temperatura in cucina con la presa d'aria (e sotto lo scatolato la ventola)
Il cancello per comodità è stato realizzato a doppia anta scorrevole.
Lo sketch (pastebin)
Domotica last edit: 14/06/2017 21:40
Altre schede (pastebin)
Cancello
Crepuscolare
Illuminazione last edit: 14/06/2017 21:40
html.h last edit: 14/06/2017 21:40
In Webbino_config.h:
#define ON F("<td bgcolor=\"#00FF00\"><font color=\"#000000\">accesa</font></td><td><form method=\"get\">")
#define OFF F("<td bgcolor=\"#FF0000\"><font color=\"#FFFFFF\">spenta</font></td><td><form method=\"get\">")
#define LUCE_CUCINA_ON F("<input type=\"submit\" name=\"s1\" value=\"SPEGNI\" /></form></td>")
#define LUCE_CUCINA_OFF F("<input type=\"submit\" name=\"s1\" value=\"ACCENDI\" /></form></td>")
#define LUCE_STANZA_ON F("<input type=\"submit\" name=\"s2\" value=\"SPEGNI\" /></form></td>")
#define LUCE_STANZA_OFF F("<input type=\"submit\" name=\"s2\" value=\"ACCENDI\" /></form></td>")
#define LUCE_STANZETTA_ON F("<input type=\"submit\" name=\"s3\" value=\"SPEGNI\" /></form></td>")
#define LUCE_STANZETTA_OFF F("<input type=\"submit\" name=\"s3\" value=\"ACCENDI\" /></form></td>")
#define LUCE_BAGNO_ON F("<input type=\"submit\" name=\"s4\" value=\"SPEGNI\" /></form></td>")
#define LUCE_BAGNO_OFF F("<input type=\"submit\" name=\"s4\" value=\"ACCENDI\" /></form></td>")
#define LUCE_SALOTTO_ON F("<input type=\"submit\" name=\"s5\" value=\"SPEGNI\" /></form></td>")
#define LUCE_SALOTTO_OFF F("<input type=\"submit\" name=\"s5\" value=\"ACCENDI\" /></form></td>")
#define LUCE_CORRIDOIO_ON F("<input type=\"submit\" name=\"s6\" value=\"SPEGNI\" /></form></td>")
#define LUCE_CORRIDOIO_OFF F("<input type=\"submit\" name=\"s6\" value=\"ACCENDI\" /></form></td>")
#define LUCE_INGRESSO_ON F("<input type=\"submit\" name=\"s7\" value=\"SPEGNI\" /></form></td>")
#define LUCE_INGRESSO_OFF F("<input type=\"submit\" name=\"s7\" value=\"ACCENDI\" /></form></td>")
#define LUCE_GARAGE_ON F("<input type=\"submit\" name=\"s8\" value=\"SPEGNI\" /></form></td>")
#define LUCE_GARAGE_OFF F("<input type=\"submit\" name=\"s8\" value=\"ACCENDI\" /></form></td>")
Pubblico pure tutto l'archivio dei codici sopra elencati (download mega)
MEGA last edit: 14/06/2017 21:40
Bug conosciuti:
-Quando il cancello è in apertura/chiusura e si va ad accendere/spegnere qualsiasi luce tramite la pagina web, il cancello si ferma per qualche istante per poi continuare la sua corsa.
Condivido pure un piccolo video, vi mostro i brutti scherzi che fa! (il puntatore durante la registrazione non capisco perchè non è calibrato bene, però si capiscono le operazioni)
Magari con passi più lenti fa meno volte il brutto scherzo, però devo cercare di eliminare questo problema.
YouTube Video
Lo sketch usa 33282 byte (13%) dello spazio disponibile per i programmi. Il massimo è 253952 byte.
Le variabili globali usano 4987 byte (60%) di memoria dinamica, lasciando altri 3205 byte liberi per le variabili locali. Il massimo è 8192 byte.
Per qualsiasi domanda sono a disposizione per dare eventuali altre informazioni.
Spero di attirare l'attenzione e d'essere aiutato per rendere il codice più "fluido". Grazie a tutti voi utenti del forum!