AccessControl By Pier Alessandro Aisa

Foto del Prototipo con shield

Prototipo.Front

Prototipo.Lato

Prototipo.Bottom

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

  1. 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

    SD_Card_format

    Figura 5: Monitor seriale sul programma InitSDAccessControl.ino

  2. 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"
  3. 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
  4. 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.
  5. Inserire una pila CR 1220 da +£v, per permettere a fishino di memorizzare data e ora in caso di mancata alimentazione.
  6. Collegare la sirena o una indicazione luminosa nel morsetto bianco a 2 vie come indicato nello schema elettrico.
  7. 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è.
  8. 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));
  9. 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).
    Homepage_errore_165

    Figura 6: Esempio di errore di comunicazione I2C

     

    Monitor.seriale

    Figura 7: Monitor seriale

  10. 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

    Homepage_H

    Figura 8: Schermata della pagina web di avvenuta modifica oraria

  11. 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

  1. Alle 11:00 del 20 Luglio questo progetto aveva 33 voti, alle 11:00 del 21 Luglio ne ha 68, o l'autore ha trovato uno stock di 35 amici o ha trovato una falla nel sistema di voto. Nella seconda ipotesi, quanto tempo passerà prima che la trovino gli altri utenti e trasformino il contest in una barzelletta? Considerando che la redazione ha cambiato in corsa il regolamento per (cito testualmente) "rendere più trasparente e partecipativa la valutazione" che figura ci farebbe? Chiederei di verificare
    • Gentile Gaspare, non c'è alcuna falla nel sistema di votazione. I voti provengono tutti da utenti con registrazioni diverse. Il controllo viene fatto sull'indirizzo di posta elettronica e ciascun indirizzo di posta elettronica può votare solo una volta. È vero che in queste situazioni vale il passaparola tra amici, come è altrettanto vero che la stessa persona può registrarsi con tante email diverse e partecipare alla votazione più volte. Fare un controllo sull'IP non è possibile perché la maggior parte delle connessioni adsl private dispongono di IP dinamico e anche in caso di IP statico sarebbe facilmente aggirabile con un proxy o con un browser come Thor. Cordiali saluti
    • Sono completamente d'accordo con te Gaspare, e la Redazione ce l'ha confermato. Qui basta che ciascuno di noi si crei tutti gli account email che vuole, e si fa i voti che vuole. Perchè scomodare amici o parenti quando puoi fare tutto da solo ed in casa? Quando ho partecipato credevo che ci sarebbe stata una giuria composta dallo staff della rivista che avrebbe deciso, e non lasciare il voto a chi possiede più emails. Avessi saputo prima che finiva così non avrei nemmeno partecipato, e sicuramente questa sarà l'ultima volta che lo farò.
      • Buongiorno a tutti. Come spiegato in questo post http://blog.elettronicain.it/2016/05/14/fishino-contest-via-alle-votazioni/ abbiamo voluto cambiare il metodo della votazione per evitare che qualcuno possa lamentarsi della scelta. Tempo fa facemmo un contest sui progetti realizzati con una stampante 3D, in quel caso scegliemmo noi il vincitore e le polemiche non mancarono. Pertanto abbiamo pensato che sarebbe stato più bello e più democratico far partecipare tutti alla votazione. I voti sono tutti tracciabili e verranno verificati attentamente (per quanto possibile) prima di stabilire quale sarà il vincitore. In ogni caso facciamo affidamento al buon senso e soprattutto all'onestà di tutti.
        • Capisco benissimo le vostre difficoltà (o peggio la vostra impotenza) nel controllare i voti (ip, validità delle email ect...) e per le polemiche nel caso in cui siate voi a decidere, ma sono d'accordo con FAITHO sul fatto che se avessi saputo che cambiavate il regolamento a concorso scaduto e che non eravate voi a decidere ma quello che fa il furbo, non avrei partecipato, perché non mi va di essere preso per il c... da un'altro utente che non solo si vota da solo ma per questo si da anche del "fottuto genio" in barba agli altri fessi onesti che hanno una persona reale dietro ogni loro voto.
          • E comunque se la maggioranza dei concorrenti è d'accordo propongo di ritornare al regolamento originale, preferisco perdere perché la redazione, che dopo pubblicherà gli articoli vincenti, non giudica il mio articolo meritevole che perdere contro un progetto che ha lo schematico disegnato con carta e penna (capite di che stiamo parlando) perché l'autore fa il furbo votandosi e commentandosi da solo
          • Va bene allora. Manderemo a breve una comunicazione a TUTTI i partecipanti. Se la maggioranza risponderà positivamente, la scelta del VINCITORE verrà effettuata esclusivamente e insidacabilmente dalla nostra Redazione. Un saluto a tutti.
          • Posso già anticipare che sia io che Riccardo Berra (gli autori del progetto radarino) siamo disposti ad accettare di buon grado anche l'ultimo posto se sarà la redazione a decretarlo. Capisco che l'apertura ad una votazione più democratica sembrasse inizialmente una buona idea, ma purtroppo per via dei recenti sviluppi siamo caduti dalla padella alla brace. :)
          • Gaspare, Faitho sono Pier Aisa e ritengo molto offensivo, quanto avete iscritto dicendo che i voti sono auto generati da casa. Chi ha scritto "fottuto genio" è un mio collega... Pensate a volte quanto l'invidia possa fare scrivere cose brutte ... Vi informo che ho un canale youtube sul quale ho caricato il video del progetto ed ho condiviso la pagina su facebook e quindi molti voti vengono proprio da li. Solo questo mese ho oltre 800 minuti di visualizzazione sul video youtube e ovviamente ho incitato a votare il mio progetto. Commento anche chi si è lamentato dello schema elettrico a matita. Se guardate il mio canale vedrete che è la mia tecnica. Il progetto non è fatto con un CAD 3D, ma per questo non vuol dire che l'idea sia buona e furba. Saluti P A Aisa
          • Gaspare, le cose non stanno come lei dice. Ritengo molto offensivo quanto ha scritto. Possiamo discutere sulla modalità di voto che si basa anche sulla popolarità e lasciato alla rete. Io ho messo il mio progetto su youtube facendone vedere il funzionamento on-line, ed i voti sono tutti autentici. E' facile verificarlo.
          • Pier io invece ritengo che a far il furbo si offenda l'intelligenza degli altri. Il tuo progetto alle 11:00 del 20 Luglio aveva 33 voti mentre alle 11:00 del 21 Luglio ne aveva 68, ha raddoppiato i suoi voti in 24h, capisco che youtube sia frequentato, capisco che facebook richiami l'attenzione ma il dubbio mi resta e spero che il mio dubbio non offenda nessuno. Ad ogni modo visto e considerato che il tuo progetto è geniale, è sublime, è il progetto più bello degli ultimi 100 anni, non credo che avrà problemi a vincere anche se la classifica la stili la redazione, giusto? Quindi propongo di tagliare la polemica facendo decidere alla redazione, ripristinando il regolamento iniziale. Sei d'accordo? Dimostraci la tua buona fede. Infine voglio essere chiaro su una cosa, non si tratta di invidia perché non ho motivo di invidiare i commenti di "zorzino", "bilbo1972", "Fabius" (ne ho preso qualcuno a caso) ect... che sicuramente saranno i migliori esperti in questo campo, ma semplicemente la presa in giro mi irrita.
  2. Ottimo! Sublime! Immagino che tutti questi fantastici commenti si riferiscano alla "ottima" capacità di imbrogliare, dai.. Se la redazione accetta questo tipo di comportamento impossibile da non notare (50 voti in 1 giorni tutti da 5 stelle) benissmo, però non si lamenti che la credibilità coli a picco. Con questo tipo di votazione era chiaro che qualcuno cercasse di fare in modo di imbrogliare, anche perchè il premio è piuttosto consistente.. Detto questo mi auguro che la redazione sia sicura di quel che faccia e che vinca il progetto più bello. Saluti
    • Buongiorno a tutti. Come spiegato in questo post http://blog.elettronicain.it/2016/05/14/fishino-contest-via-alle-votazioni/ abbiamo voluto cambiare il metodo della votazione per evitare che qualcuno possa lamentarsi della scelta. Tempo fa facemmo un contest sui progetti realizzati con una stampante 3D, in quel caso scegliemmo noi il vincitore e le polemiche non mancarono. Pertanto abbiamo pensato che sarebbe stato più bello e più democratico far partecipare tutti alla votazione. I voti sono tutti tracciabili e verranno verificati attentamente (per quanto possibile) prima di stabilire quale sarà il vincitore. In ogni caso facciamo affidamento al buon senso e soprattutto all'onestà di tutti.
  3. Ormai il 100° potevi dartelo, te ne sei dato 60 in 2 gg?!? Per il commento ti aiuto io: "Questo è il progetto più bello degli ultimi 150 anni".
  4. oooooOOOOOOLLLLLLLEEEEEEEEEE'. Alla fine sei riuscito a darti anche il 100esimo voto, dai che adesso aspettiamo anche l'ennesimo commento autocelebrativo e poi via si continua con i voti. Dai che ce la fai, contiamo tutti su di te. Sei il migliore.
  5. Buongiorno a tutti, come promesso ho mandato ai partecipanti una mail. In ogni caso invito tutti a mantenere i toni ad un livello consono. Ben vengano commenti e critiche tecniche, ma evitate frasi offensive o sarcastiche fuori luogo. Boris
  6. Questo è il mio commento conclusivo, perché sono deluso e stanco di questa sterile polemica che ha lo scopo di screditarmi e di mettere in cattiva luce il mio progetto. Io non devo dimostrare niente a nessuno: la valutazione dei progetti è affidata alla rete, come stabilito dal regolamento. L’arrivo concentrato di voti in così breve tempo potrebbe essere ricondotto al fatto che, negli ultimi giorni, ho chiesto a diversi conoscenti e colleghi di sponsorizzarmi, come immagino avranno fatto anche gli altri concorrenti. Lavoro da oltre 20 anni come progettista elettronico e mi rattrista molto vedere che, invece di interessanti spunti tecnici di discussione, appaiano insinuazioni e commenti offensivi. E’ compito della redazione, e non dei concorrenti, decidere come finalizzare il concorso nel rispetto del regolamento, che prevede un giudizio basato sulla popolarità e più democratico, anche per fare conoscere e diffondere il nome della rivista e le iniziative proposte. Il metodo usato in un precedente concorso, che lasciava interamente il giudizio finale alla redazione, ha ricevuto molte polemiche per mancanza di trasparenza, come spiegato dalla redazione stessa. Concludo sottolineando che non mi permetterei mai di screditare un progetto altrui o di mettere in discussione l’onestà di persone che amano questo lavoro e che si applicano con passione, come ho fatto io negli ultimi mesi per questo progetto.
    • Credo che la polemica non sia affatto sterile, come già detto personalmente ho partecipato al concorso perché sapevo da regolamento doveva essere la redazione a decidere altrimenti non avrei partecipato, perché partecipo ai concorsi da anni e so benissimo cosa accade quando si fa scegliere ad altre persone. Credo che come me tu prima di decidere se partecipare o meno abbia letto il regolamento, quindi mentre preparavi il progetto sapevi che avrebbe scelto la redazione e partecipando hai accettato questa condizione. Se vogliamo discutere di cose tecniche, allora dobbiamo far decidere a chi ha le competenze tecniche non alla mamma, alla nonna o la vicina di casa, io leggo Elettronica In da 10 anni e non ho mai visto pubblicato uno schematico fatto a matita e dispiace sentirmi dire "faccio il progettista elettronico da 20" perché io questo mestiere lo faccio da 10 di anni e so benissimo che se presento uno schema a matita il resto del mondo (ovviamente tecnici, non la mamma) poi mi prende in giro, ma forse parliamo di due elettroniche diverse. Non voglio e non volevo screditare il progetto di nessuno ma soltanto l'ondata, a mio parere, anomala di voti, che guardacaso oggi si è fermata (forse youtube è offline), l'unica cosa tecnica che ho commentato (la questione dello schematico appunto) l'ho tirata fuori proprio perché da regolamento il progetto vincitore dovrebbe venir pubblicato sulla rivista ed a quel punto immagino a cosa possa pensare il generico lettore mentre scopre che qualcuno ha vinto un concorso con uno schematico fatto a matita. Infine non metto in dubbio l'impegno con il quale ti sei applicato al progetto, ma ti faccio notare che gli altri non l'hanno trovato per strada, ma come te, ci hanno lavorato e vedersi annullati mesi di lavoro perché è cambiato il regolamento (in modo da far votare anche le nonne) ed un altro utente hai dei voti, a mio personalissimo parere, sospetti, non crea delusione ma ben altro. La delusione la crea il fatto che non accetti il fatto di metterti in gioco facendo scegliere la redazione. Ad ogni modo in bocca al lupo
  7. Ho votato per Fishino Joypad (essendo un'amica di Mattia) e anch'io ho chiesto ai miei contatti di votare il suo progetto. Ho seguito con entusiasmo le votazioni e poi vengo a scoprire che in meno di 24 h si passa da 33 voti a più di 60. Ma che bella figura di legno ho fatto con tutti i miei contatti ai quali ho chiesto di votare. P.S. I voti di accesscontrol si sono fermati nel momento in cui avete fatto notare il picco improvviso dei voti. Il canale youtube si è rotto?!?
  8. Sono un collega e un amico di Pier Aisa e ne conosco la assoluta corretteza. L'incremento repentino dei voti a favore di Pier è dovuto unicamente al fatto che Pier è conosciuto e stimato da un gran numero di persone e ovviamente il passa-parola ha funzionato bene. Probabilmente chi non riesce a ottenere così tanti consensi, non ha altrettanti conoscenti, amici, addirittura parenti, ma soprattutto estimatori. E preferisce rosicare che farsi un po' di propaganda.
    • O forse preferisce lasciar decidere a chi ha esperienza e competenza, come da regolamento, piuttosto che farsi propaganda con la zia o la nonna (ogni scarrafone è bell'a mamma soja). Non ritorno sulle anomalie dei voti perché ora che la maggioranza dei votanti ha deciso di lasciar decidere alla redazione, credo che sia annullata definitivamente ogni polemica sui voti e sulla correttezza dei concorrenti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu