Italiano English
Modifica History Actions

NFCTotem

Come creare un totem NFC

L'obiettivo è creare una macchina in grado di far scrivere agli utenti i propri dati all'interno delle tessere NFC del Fusolab.
L'utente quindi deve compilare un form, fare click su "Submit" ed avvicinare una carta Mifare bianca ad uno scrittore di card.

Requisiti

Hardware

=== Software ===

Le prime sono librerie per NFC (ma va'?) ed utility grezze. NFC-tools sono utility più evolute (tipo fai delle azioni quando ti si avvicina una carta) e sfruttano le libNFC. LibNDEF sono delle librerie per scrivere messaggi NDEF, leggibili ad esempio con i cellulari e tablet.

  • apache2

Il programma

Questo è il CGI che viene chiamato quando si fa il submit

!#/bin/bash
nfc-events con questo file di configurazione

nfc-eventd.conf

# Sample nfc-eventd configuration file
#
nfc-eventd {
        daemon = false;
        debug = true;
        polling_time = 1;
        expire_time = 30;
        
        device my_touchatag {
                driver = "ACR122";
                name = "ACS ACR 38U-CCID 01 00";
        }

        device my_pn532_uart {
                driver = "PN532_UART";
                port = "/dev/ttyS0";
                speed = 115200;
        }

        # which device to use ? note: if this part is commented out, nfc-eventd will try to pick up device automagically...
        #nfc_device = "my_touchatag";

        # list of events and actions
        module nem_execute {
                # Tag inserted
                event tag_insert {
                        # what to do if an action fail?
                        # ignore  : continue to next action
                        # return  : end action sequence
                        # quit    : end program
                        on_error = ignore ;
        
                        # You can enter several, comma-separated action entries
                        # they will be executed in turn
                        action = "(echo -n 'Tag (uid=$TAG_UID), inserted at: ' && date) >> /tmp/nfc-eventd.log";
                }
        
                # Tag has been removed
                event tag_remove { 
                        on_error = ignore;
                        action = "(echo -n 'Tag (uid=$TAG_UID) removed at: ' && date) >> /tmp/nfc-eventd.log";
                }
        
                # Too much time card removed
                event expire_time { 
                        on_error = ignore;
                        action = "exit";
                }
        }

}