Paso 2: Lectura de etiquetas RFID
Ahora tendremos que configurar nuestro Arduino a leer etiquetas RFID. Si no has usado Arduino antes o si tienen problemas en el camino, la Página oficial para empezar es muy útil. Conectar tu Arduino a tu ordenador con un cable USB. Si no lo has hecho ya, debe descargar e instalar el entorno de desarrollo Arduino.También querremos instalar algunas librerías para hacer esta codificación menos tedioso. Si tienes señora AdaFruit tablero, descargar el aquí y si tienes la Junta de Sparkfun, descarga la biblioteca aquí guárdelo en la carpeta de bibliotecas de tu Arduino (en OSX, el directorio predeterminado sería ~/Documents/Arduino/libraries/ y en Windows, se Documents\Arduino\libraries\ mi) (si tienes problemas con esto, echa un vistazo de señora AdaFruit asesoramiento. Si ya tuvieras el entorno de Arduino abrir antes de colocar el código en la carpeta de bibliotecas, reiniciar ahora.
Coloque el protector de RFID sobre Arduino. Ahora podemos obtener el código. Todo el código que necesita se puede encontrar aquí en nuestro repositorio de Github.
Crear un nuevo sketch de Arduino mediante la selección de la aplicación de Arduino y hacer clic en el icono de papel doblada, copie el código desde el enlace arriba a la derecha en y guárdelo en su directorio de proyecto. Ahora todo lo que tienes que hacer es descomentar tres líneas en la parte superior del archivo dependiendo de cual lector RDID tienes.
Si tienes el tablero RFID sm130 Sparkfun, quite el comentario de estos tres bloques:
// #include <SoftwareSerial.h> // #include <sm130.h> // NFCReader rfid(7, 8);
Y si tienes el tablero de Dama Adafruit RFID, quite el comentario de estos tres bloques:
//#include <Wire.h> //#include <Adafruit_NFCShield_I2C.h> //Adafruit_NFCShield_I2C rfid(2, 3);
El resto del bosquejo es el mismo para ambas juntas porque nos escribió la biblioteca sm130 para que coincida con la de la biblioteca señora Adafruit. Ahora, haga clic en la flecha de la derecha en el bosquejo para cargar el código de Arduino y empezar a ejecutarlo. Para ver la salida, abrir el monitor serial yendo a archivo -> Tools -> Serial Monitor y asegúrese de que su velocidad es a 9600 (el menú desplegable en la parte inferior derecha del monitor serial).
Ahora, si toca la tarjeta RFID en el lector, debe imprimir el ID! Impresionante.
Ahora voy a explicar el código línea por línea si usted está interesado, o bien puede omitir la sección de "Enviar el UUID para el servidor Local". Vamos a empezar con el código de importador:
Quite el comentario de estas tres líneas para utilizar el escudo de Sparkfun RFID // Uncomment these three lines to use the Sparkfun RFID shield // #include <SoftwareSerial.h> // #include <sm130.h> // NFCReader rfid(7, 8); // Uncomment these three lines to use the AdaFruit RFID shield //#include <Wire.h> //#include <Adafruit_NFCShield_I2C.h> //Adafruit_NFCShield_I2C rfid(2, 3); // The number of seconds to wait before accepting another tag const uint8_t TIME_DELAY = 2; // Var to keep track of time between tags long lastReadTime = 0; Quite el comentario de estas tres líneas para utilizar el escudo de AdaFruit RFID // Setup method is called once every time Arduino is restarted void setup(void) { // Start communication with our serial monitor Serial.begin(9600); // Start running the RFID shield rfid.begin(); // Print out a message to make sure Serial is working Serial.println("Initialized!"); Serial.println("Requesting Firmware Version to make sure comm is working..."); // Grab the firmware version uint32_t versiondata = rfid.getFirmwareVersion(); // If nothing is returned, it didn't work. Loop forever if (!versiondata) { Serial.print("Didn't find RFID Shield. Check your connection to the Arduino board."); while (1); } // Got ok data, good enough! Serial.println("Found Version Data. Comm is working."); // Let us know RFID shield is waiting for a tag Serial.println("Waiting for an RFID Card ..."); }
En este trozo estamos importando la biblioteca de Sparkfun o la biblioteca señora AdaFruit dependiendo de que usted elimine. Board de Sparkfun utiliza el Software Serial (A.K.A. UART) para la comunicación mientras que la Junta de AdaFruit señora utiliza el cable (también conocido como I2C). Entonces hacemos a variables globales para mantener el tiempo entre etiquetas para más tarde (para asegurarse de que no mantenga informes su etiqueta de una y otra vez como mantenerlo cerca del lector). Ahora veamos el método de instalación:
void loop() { // We will store the results of our tag reading in these vars uint8_t success; uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type) // Wait for an ISO14443A type cards (Mifare, etc.). When one is found // 'uid' will be populated with the UID, and uidLength will indicate the length success = rfid.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); // If we succesfully received a tag and it has been greater than the time delay (in seconds) if (success && (millis() - lastReadTime > (TIME_DELAY * 1000))) { Serial.println("Got a tag!"); // Print out the length Serial.print("Length: "); Serial.print(uidLength, HEX); Serial.print(", ID: "); // Print the ID in hex format rfid.PrintHex(uid, uidLength); Serial.println(""); // Same the last read time lastReadTime = millis(); } }
En este primer trozo de código, agregamos el método de 'setup' que es un método especial que sólo se llama una vez que se reinicia cada vez que el Arduino. En este método, empezaremos a correr la serie que es un protocolo de comunicación. Entonces, comenzaremos ejecutando la propia biblioteca de escudo RFID. A continuación, coge la versión de firmware sólo para asegurarse de que nuestra comunicación con la Junta está trabajando con eficacia - si no, nos sólo para siempre del lazo. Ahora el método de bucle:
#include <WiFlyHQ.h> #include <Lifegraph.h> // Wifi Serial connection SoftwareSerial wifiSerial(9,10); // API we'll use to talk to the internet JSONAPI api; /* Change these to match your WiFi network */ const char mySSID[] = "YOUR_NETWORK_NAME"; const char myPassword[] = "YOUR_NETWORK_PASSWORD"; // The host server that handles our request const char host[] = "musicparty.herokuapp.com"; // Unique ID of this Music Party Streaming Device char deviceId[] = "YOUR_OWN_DEVICE_ID_HERE";
Se llama al método de bucle una y otra vez por Arduino. Tan pronto como finaliza su código, comienza encima. En nuestro método de lazo, creamos el éxito, uid y uidLength variables para almacenar los resultados de una etiqueta descubierta. Entonces tratamos de leer una etiqueta y si lo hacemos, el uid se almacenará en la variable de la uid y la longitud de ese uid será tienda en uidLength. Entonces simplemente lo imprimimos, y nota a qué hora se imprime para asegurarse de que no imprime una y otra vez.