Étape 4: Boîtier pour identifier les temps de détection de la balise
Comme je l’avais acheté deux différents lecteurs RFID je voulais pouvoir identifier lorsque chacun d’eux avait trouvé une étiquette d’IRF individuellement.
Le premier objectif était de trouver un moyen d’identifier quand une balise avait été trouvée sur la carte de circuits de lecteurs RFID, après avoir un peu testé a trouvé une tige non soudée, qui a émis un 1 lorsqu’une balise a été identifiée, je suppose que cela a été utilisé lors de la vérification du Conseil d’administration. La première image ci-dessus montre le circuit imprimé pour mes lecteurs RFID, que la goupille dans le cercle rouge était mon ergot de RFID.
Ayant ce i pourrait maintenant concevoir un circuit qui utiliserait un Arduino pour surveiller chaque déclencheur des lecteurs RFID, si on est allé en haut il actualiserait le temps d’écran LCD pour indiquer quel lecteur avait été déclenché ainsi que la recherche du module d’horloge (RTC) en temps réel pour imprimer l’heure de l’événement. La configuration finale du Circuit peut être vu dans la deuxième image.
Le logiciel étant couru sur l’Arduino peut être décrite dans la troisième image de l’organigramme du système
Le code Final Arduino se trouvent ci-dessous
#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(" ");} }
Une fois le code et le circuit avaient été entièrement testés, j’ai conçu un PCB pour aider à éclaircir le désordre breadboard horrible que j’utilisais. Image 4 ci-dessus montre la conception de la maquette finale (oui il aurait pu être plus petits, mais la taille n’était pas un vrai problème avec le coffret que j’avais choisi)