Paso 4: Gabinete para identificar tiempo de detección de etiqueta
Que había comprado dos diferentes lectores RFID y quería ser capaz de identificar cuando cada uno había encontrado una etiqueta RFID individualmente.
El primer objetivo fue encontrar una manera de identificar cuando una etiqueta se había encontrada en la placa de circuito de los lectores RFID, después de probar un poco un encontrado un pin no soldado, que genera un 1 cuando una etiqueta se identificó, supongo que esto fue utilizada durante la verificación de la Junta. La primera imagen de arriba muestra la placa de circuito para mis lectores RFID, que el perno en el círculo rojo era mi pin de activación RFID.
Con este i ahora podría diseñar un circuito que usa un Arduino para controlar cada gatillo de los lectores RFID, si uno fue alto actualizaría el tiempo del LCD para indicar que lector fue disparada así como mirar el módulo de reloj (RTC) de tiempo real para imprimir la hora del evento. En la segunda imagen se aprecia la configuración final del circuito.
El software que funcionó en el Arduino puede ser descrito en la tercera imagen del diagrama de flujo del sistema
El código de Arduino Final puede encontrarse a continuación
#include Time.h#include Wire.h#include DS1307RTC.h #include liquidCrystal.h // Arduino Pin Layout LiquidCrystal lcd(12, 11, 5, 4, 3, 2); const int RFIDRead1 = 8; const int RFIDRead2 = 7; const int ledPin1 = 9; const int RST = 6; // Variable Decleration int tagState1 = 0; int tagState2 = 0; int RESET = 0;void setup() {// Setting up what pins are inputs or output lcd.begin(20, 4); pinMode(ledPin1, OUTPUT); pinMode(RFIDRead1, INPUT); pinMode(RFIDRead2, INPUT); pinMode(RST, INPUT);// Start up values for outputs, setting up LCD Display and LED value digitalWrite(ledPin1, LOW); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" No Detection "); lcd.setCursor(0, 3); lcd.print(" ");Serial.begin(9600); // Testing code to ensure that the RTC module is working setSyncProvider(RTC.get); // the function to get the time from the RTCif(timeStatus()!= timeSet) Serial.println("Unable to sync with the RTC"); else Serial.println("RTC has set the system time"); }void loop() {// Mapping digital read values to ints tagState1 = digitalRead(RFIDRead1); tagState2 = digitalRead(RFIDRead2); RESET = digitalRead(RST);if (tagState1 == HIGH) { // When RFID Read 1 goes high enter this loop digitalWrite(ledPin1, HIGH); lcd.setCursor(0, 0); lcd.print(" Patient 1 "); lcd.setCursor(0, 2); lcd.print(" Tag Detection "); lcd.setCursor(0, 3); lcd.print(" "); digitalClockDisplay();}if (tagState2 == HIGH) { // When RFID Reader 2 goes higher enter this loop digitalWrite(ledPin1, HIGH); lcd.setCursor(0, 1); lcd.print(" Patient 2 "); lcd.setCursor(0, 2); lcd.print(" Tag Detection "); lcd.setCursor(0, 3); lcd.print(" "); digitalClockDisplay();}if (RESET == HIGH) { // When Reset putton pressed clear screen and turn the LED off digitalWrite(ledPin1, LOW); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 2); lcd.print(" No Detection "); lcd.setCursor(0, 3); lcd.print(" ");} }
Una vez que el código y el circuito habían sido completamente probados, diseñé un PCB para ayudar a aclarar el lío de protoboard horrible yo estaba usando. Imagen 4 de arriba muestra el diseño de la placa final (sí se podría haber hecho más pequeño, pero tamaño no era un problema real con el recinto había elegido)