Stap 4: Behuizing voor het identificeren van de tijd van Tag detectie
Zoals ik had gekocht twee verschillende RFID-lezers die ik wilde kunnen identificeren bij elkaar had gevonden een RFID-tag individueel.
De eerste doelstelling was het vinden van een manier om te identificeren wanneer een tag had gevonden op de printplaat RFID lezers, na een beetje testen een gevonden een un-gesoldeerd pin, die een 1 output wanneer een tag werd geïdentificeerd, ik neem aan dat dit werd gebruikt tijdens de verificatie van de Raad van bestuur. De eerste afbeelding hierboven toont de printplaat voor mijn lezers RFID, dat de pin in de rode cirkel was mijn RFID trigger pin.
Met deze i kon nu ontwerpen een circuit dat een Arduino gebruiken zou om te controleren van elke trigger van de RFID-lezers, als een hoge ging het de LCD tijd om aan te geven welke lezer had teweeggebracht en kijken naar de real-time clock (RTC)-module om af te drukken op het tijdstip van de gebeurtenis zou updaten. De laatste Circuit-configuratie kan worden gezien in het tweede beeld.
De worden liep op de Arduino software kan worden beschreven in het derde beeld van het systeem flow diagram
De definitieve Arduino-code vindt u balg
#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(" ");} }
Zodra de code en circuit volledig getest was, ontwierp ik een PCB om te helpen opruimen van de rotzooi van de verschrikkelijke breadboard mij watertje using. Afbeelding 4 hierboven toont het ontwerp van de definitieve breadboard (ja het kan hebben zijn kleiner gemaakt, maar de grootte was niet een reëel probleem met de behuizing die ik had gekozen)