Lo sketch usa 41890 byte (16%) dello spazio disponibile per i programmi. Il massimo è 253952 byte. Le variabili globali usano 2600 byte (31%) di memoria dinamica, lasciando altri 5592 byte liberi per le variabili locali. Il massimo è 8192 byte. Timbrature 16/02/2021 P.R. RFID NFC 13,65Mhz ARDUINO ACCESS CONTROL SYSTEM What I needed was an access control system for my office. The whole project is pretty easy to build. This is a big revision of a previsious version which used to log the tag into mysql with just few parameters. --- I had a spare Aduino Mega and a Ethernet shield at home, so, with a few more components I have been able to build an access control system for my office. ENGLISH (italian below) Basically, the Arduino logs a NFC tag into a mysql database and/or in a text file. Bill of material - Arduino Mega2560r3 - w5100 ethernet shield - 2 x rc522 rfid modules - 1 rtc DS1307 clock module - 1 lcd display (16,2) - 1 microSD card - a xamp php server to process the mysql log request - mysql database If the db log is enabled, it will log the record into the database. "timbratura.php" will manage the process and the upload of the data into mysql db. It will check first for the presence of the tag into a "users" table. The table contains infact known users and their relative tags (this check could be disabled). If microSD log is enabled a record will also be added to a text file (The the date and time, the tag, in or out operation. I added also a lcd to make the things easier for the users. It simply displays clock time and the operazions done. When the access is recorded, a green led will flash for few seconds and a buzzer will play a short tone with increasing pitch. The lcd will show a short ok message for few seconds. If some errors occur (as lan not working, or the tag is unknown), a red led will flash instead, and the tone played will have a decreasing pitch. The lcd will show also a short error message for few seconds. Also, to manage the microSD log, I added a couple more of green/red led blinks after the db blinks. Also a twice beep tone will be played after the db notes. Either here it will be increasing tone freq for an ok operation.. otherwise the two small tones will be decreasing in frequencies. Check below for other tech spec infos. // *************************************************************** // Il programma permette la registrazione delle timbrature in entrata e in uscita // Le timbrature possono essere registrate su un database mysql e/o su microsd // in base a due opportuni parametri configurabili. // Per la parte DB viene inviata una richiesta POST ad una pagina timbrature.php // che registra l'entrata e l'uscita. Se abilitato un ulteriore parametro di controllo, // viene controllata l'esistenza dell'utente su una tabella "utenti". // In caso di log su microsd, il programma provvederà a registrare la timbratura, // che resterà disponibile su un file.txt // Viene inoltre incluso un file di config json che se presente nella sd // va ad impostare dei parametri // // Materiale necessario // - Arduino Mega2560r3 // - w5100 ethernet shield // - 2 x rc522 rfid modules // - Rtc DS1307 clock module // - Lcd display (16,2) // - MicroSD card // - Xamp php server to process the mysql log request // - Mysql database // // **************************************************************** // presenze.dat/transaz.dat/timbr.txt - il formato del record memorizzato è: // 00300aabbccdd100001804191322 ==>> // 003 0000002841 1 0000 180419 1322 // 003 = sede // 00aabbccdd = NFC tag Id // 1 =entrata or 0 = uscita // 311219 = data in formato ggmmaa // 1322 orario operazione // Ogni record dovrebbe occupare 30 byte su file di testo. // es: 200entr +200usc timbrature giornaliere *210 gg = 200+200*30*210 = 2.520.000 byte = 2,4MB // // ******* ULTIME MODIFICHE**************************************** // // 04/02/2021 - Aggiunto ping server in fase di setup. // Gestita la timbratura in mancanza di connessione(errore a display). // 12/02/2021 - Aggiunto lettore tag uscita. Programma adattato a due lettori TAG: // uno per l'ingresso e uno per l'uscita. // 16/02/2021 - Aggiunto file di testo e log record su microSD. // 17/02/2021 - Creata ramficazione per orologio RTC. Non registro più la data dalla risposta del sito, // ma dall'orologio, che provvederò ad aggiornare periodicamente via ntp // 19/02/2021 - config.jsn, che aggiorna alcuni parametri nella eeprom di arduino // // **************************************************************** EEPROM MEMORY ADDRESS byte(1) address 0 - db byte(1) address 1 - SD byte(1) address 2 - check user tag into mysql byte(1) address 3 - hex dec tag format reading byte(1) address 4 - access system control ID (you may use to identify the office) Pinout dei componenti RF522_IN tag: SDA D40 - CS?! SCK D52 - in comune MOSI D51 - in comune MISO D50 - in comune IRQ N/A GND GND - in comune RST D41 3.3V 3.3V - in comune Pinout dei componenti RF522_OUT: SDA D38 - CS?!! SCK D52 - in comune MOSI D51 - in comune MISO D50 - in comune IRQ N/A GND GND - in comune RST D39 3.3V 3.3V - in comune pin 4 - il pin deve rimanere vuoto! - cable select SD pin 10 - il pin deve rimanere vuoto! - cable select Eth RTC ds1307 20 SDA 21 SCL 22 lo dichiaro in setup a gnd display 1602 HD44780 pin1:vss n.c. pin2:vdd +5v pin3:v0 gnd oppure a un trimmer per il contrasto pin4:RS D8 pin5:RW gnd pin6:E D9 pin7:D0 n/c pin8:D1 n/c pin9:D2 n/c pin10:=D3 n/c pin11:=D4 D3 pin12:D5 D11 pin13:D6 D12 pin14:D7 D13 pin15:A +5v - funziona anche su Vin pin16:K gnd buzzer + D5 buzzer_gnd - D6 - gnd led verde + D48 led verde - D49 - gnd led rosso + D46 led rosso - D47 - gnd