Non ci sono prodotti a carrello.
Foto del Prototipo con shield
Descrizione del Software AccessControl 1.0
Il software è stato ottimizzato per rientrare perfettamente nei 32KB disponibili. La limitazione di memoria flash a 32KB, mi ha obbligato a rendere minimale l’interfaccia web e le funzionalità automatiche. Lo stesso software lo ho implementato su ArduinoMEGA2560, che avendo più memoria mi ha permesso di inserire altre funzioni avanzate quali : aggiornamento automatico all’ora legale, generazione di files in formato annuale e di riepilogo, contatori di media di accesso, accesso diretto ai files tramite interfaccia web, pilotaggio di più uscite e monitoraggio di più ingressi, interfaccia web html graficamente più completa e accattivante, auto caricamento della pagina web, calcolo della dimensione dei files.
Vedi video sul mio canale youtube https://www.youtube.com/watch?v=edqDTe9CdbQ
Il codice sorgente è organizzato con la funzione setup e loop in test e tutte le funzioni ausiliarie a seguire. Di seguito una breve descrizione delle funzioni:
- void setup() Inizializza l’ahrdware e le variabili di ambiente. Apre la connessione seriale e Wifi
- void loop() Ciclo infinito dove si risponde alle richieste web e si gestiscono e venti e letture\scritture su SD. I comandi impartiti dal browser vengono gestiti tramite particolari macrocomandi: ad esempio la lettera D permetter di accedere alle sottocartelle della SD Card
- void HtmlHeader() costruisce la pagine web in linguaggio HTML da fornire come risposta alle richieste dei client
- void ListFiles(uint8_t flags, SdFile current) Elenca il contenuto della SD card restituendo una pagina HTML con link alle cartelle e i nomi dei files
- void gestionevento(boolean sim) Gestisce gli eventi esterni collegati alla porta sull’input A0
- void finegiornata() Gestisce la scrittura su card SD del file di tipo M con i totali degli eventi organizzati per fascia oraria a fine giornata si attiva alle 23:59:00 e dura almeno un minuto
- void writefile(char * filename1, char * dir) funzione primitiva per scrittura su SD Card
- void openfile(char * filename1, char * dir ) funzione primitiva per lettura su SD Card
- void wc_p(const char p) Funzione a risparmio memoria per scrittura su Wifi utilizzata dal web server
- void fp_p(const char p) Funzione a risparmio memoria per scrittura files
- String getdate(boolean point) Funzione che restituisce la data corrente nel formato usato da AccessControl
- String gettime() Funzione che restituisce l’orario corrente nel formato usato da AccessControl
- String getday(){ Funzione che restituisce il giorno corrente nel formato usato da AccessControl
- String getmonth() Funzione che restituisce il mese corrente nel formato usato da AccessControl
- String getDigits(int num, int digits Funzione che restituisce il numero nel formato voluto
- String getname(dir_t p) Funzione che restituisce il nome file usato da AccessControl
- void setTime(uint16_t ye,uint16_t mo,uint16_t da,uint16_t ho,uint16_t mi,uint16_t se) Funzione che setta l’orario su RTC Dallas
Istruzioni di utilizzo del Software AccessControl 1.0
- Come prima cosa è necessario formattare la SD CARD in FAT32 con la struttura di cartelle M e G descritta di sopra. Inserire una SD Card da 4GB nello slot microSD e dall’IDE di Arduino aprire il file sorgente “ino”, compilarlo e mandarlo in esecuzione su Fishino. Aprire un terminale a 115200 bytes/sec e digitare i seguenti caratteri nel campo in alto Y e poi F. La schermata risulta come quella riportata di seguito
- E’ poi necessario impostare il nome della rete Wifi a cui collegare Fishino: aprire il file sorgente “AccessControl.ino ”sostituire il nome della rete “NikolaTesla” con quello della rete in uso alla riga e ricompilare:
#define MY_SSID “NikolaTesla"
- A seconda dello schema di collegamento elettrico della porta è necessario selezionare il valore da utilizzare come soglia di evento. Ad esempio se si utilizza lo schema proposto nello schema hardware la porta fornisce una alimentazione esterna di 5V e quindi quando la porta è chiusa l’ingresso in0 viene letto come 512 (metà di 5V in quanto c’è un partitore) All’interno della funzione gestionevento() mettere il commento nella condizione che non viene usata in uso alla riga e ricompilare:
if (in0 > 50 || sim) { //usare se quando la porta si apre A0 è¨ alto >50 //if (in0 < 50|| sim) { //usare se quando la porta si apre A0 è¨ basso <50
- Collegare i fili della porta da controllare sui morsetti 1 e 2 del connettore a 4 posizioni nero (si trovano verso il lato sinistro di Fishino quello della SD card; i morsetti 3 e 4 al momento non sono utilizzati) come indicato nello schema elettrico.
- Inserire una pila CR 1220 da +£v, per permettere a fishino di memorizzare data e ora in caso di mancata alimentazione.
- Collegare la sirena o una indicazione luminosa nel morsetto bianco a 2 vie come indicato nello schema elettrico.
- Collegare una +12VDC alla scheda Fishino sul jack di input. Va bene un alimnetatore a trasformatore che abbia una potenza di almeno 5W per pilotare correttamente il relè.
- Collegare la porta USB di Fishino al PC ed aprire un monitor seriale a 115200baud. Con riferimento alla Figura 7. Sul monitor viene stampato l’indirizzo IP assegnato dalla rete. Se ad esempio l’indirizzo visualizzato è 10.115.2.194. Se si vuole assegnare un IP fisso utilizzare la funzione Fishino nel file sorgente “AccessControl.ino ”.
Ad esempio:byte ip[] = { 10, 115, 0, 125 }; Fishino.config(IPAddress(IP));
- Aprire un browser e scrivere http://10.115.2.194/. Fishino risponde con una pagina web che indica l’ora corrente (che per ora non è settata “SAB 01/01/2000 00:00:00” e le 2 cartelle Giorno e Mese, rappresentate con le iniziali G,M dove sono memorizzati i files sulla SD card, contenenti gli eventi catturati (vedi Figura 1) . Sul monitor seriale con periodicità di circa 4 secondi viene indicato un numero sequenziale seguito dal valore dell’ingresso in. In Figura 4 è riportato ad esempio un evento di apertura porta con valore 511 (2.5 V dati dal partitore di ingresso dello shield). Se viene ritornato il valore 165,165,165 come in schermata significa che ci sono problemi di comunicazione I2C come indicato in Figura 6.. Verificare le alimentazioni, che siano del valore corretto +12V e +5V e la loro stabilità e verificare i collegamenti di fishino allo shield. A volte puo’ succedere se si alimenta fishino da una porta USB del PC che risulta essere ad alimentazioni scarse (inferiori a +5VDC).
- Per settare l’ora scrivere sulla barra indirizzi del browser http://10.115.2.194/H20160330142410, ad esempio per impostare 3 Marzo 2016 ore 16:33 (sostituire l’indirizzo IP e l’ora desiderata). Il comando H infatti viene riconosciuto da Fishino come un cambio ora. Cliccare poi sul link HOME. A questo punto l’orario è settato, come mostrato in Figura 8
- A questo punto se viene aperta una porta, viene memorizzato l’evento nel file del giorno corrente. Nel file del mese corrente e viene attivata l’uscita a relè. Il software a questo punto è operativo e pronto a registrare gli eventi
44 Commenti