Advertisement
Guest User

Untitled

a guest
Jun 1st, 2019
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. #include <SPI.h>
  2. #include <Wire.h>
  3. #include <SD.h>
  4. #include <MFRC522.h>
  5. #include <Adafruit_GFX.h>
  6. #include <Adafruit_SSD1306.h>
  7. #define OLED_RESET 4
  8.  
  9. Adafruit_SSD1306 display(OLED_RESET);
  10.  
  11. File myFile;
  12. int x = 0;
  13. byte sel = 0;
  14. byte c1 = 0;
  15. byte c2 = 0;
  16. byte c3 = 0;
  17. String status = "";
  18. String cconteudo = "";
  19. String usuario = "";
  20. String nome = "";
  21. char caractere;
  22. char carac;
  23. char st[20];
  24.  
  25. MFRC522 mfrc522(10, 9);
  26.  
  27.  
  28. void setup()
  29. {
  30.  
  31. display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  32. display.clearDisplay();
  33. display.display();
  34.  
  35. Serial.begin(9600); //inicializa a comunicação serial
  36.  
  37. SPI.begin(); //inicializa a comunicação SPI
  38.  
  39. if (SD.begin(4)) { // Faz a contagem do número de usuários cadastrados
  40.  
  41. myFile = SD.open("rfid.txt");
  42.  
  43. if (myFile) {
  44.  
  45. while (myFile.available()) {
  46.  
  47. for (x; myFile.read() == 13; x++) {
  48.  
  49. delay(10);
  50.  
  51. }
  52.  
  53. }
  54.  
  55. }
  56.  
  57. else {
  58.  
  59. Serial.println("Falha ao abrir banco de dados");
  60.  
  61. }
  62.  
  63. Serial.print(x);
  64.  
  65. Serial.println(" usuarios cadastrados: ");
  66.  
  67. myFile.close();
  68.  
  69. !SD.begin(4);
  70.  
  71.  
  72. }
  73.  
  74. }
  75.  
  76. void loop()
  77. {
  78. mfrc522.PCD_Init();
  79. display.setTextSize(1);
  80. display.setTextColor(WHITE);
  81. display.setCursor(0,10);
  82. display.println("aprox a tag");
  83. display.display();
  84. while (sel == 0) {
  85.  
  86. Serial.println("Aproxime o seu cartao do leitor...");
  87.  
  88. cconteudo = "";
  89.  
  90. while ( ! mfrc522.PICC_IsNewCardPresent()) {
  91. }
  92.  
  93. if ( ! mfrc522.PICC_ReadCardSerial()) {
  94. return;
  95.  
  96. }
  97.  
  98. for (byte i = 0; i < mfrc522.uid.size; i++) {
  99.  
  100. cconteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  101.  
  102. cconteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
  103.  
  104. }
  105.  
  106. cconteudo.toUpperCase();
  107.  
  108. cconteudo.trim();
  109.  
  110. mfrc522.PICC_HaltA();
  111.  
  112.  
  113.  
  114. myFile = SD.open("rfid.txt");
  115.  
  116. if (myFile) {
  117.  
  118. while (myFile.available() && (c2 == 0)) {
  119.  
  120. caractere = 0;
  121.  
  122. while (myFile.available() && (caractere != ';') && (caractere != 13) && (c1 == 0)) {
  123.  
  124. caractere = myFile.read();
  125.  
  126. if ((caractere != ';') && (caractere != 13)) {
  127.  
  128. usuario.concat(caractere);
  129.  
  130. }
  131.  
  132. }
  133.  
  134. usuario.trim();
  135.  
  136. if ((cconteudo == usuario ) && (c1 == 0) ) {
  137.  
  138. status = "Usuario encontrado";
  139.  
  140. Serial.println(status);
  141.  
  142. c1 = 1;
  143.  
  144. c3 = 1;
  145.  
  146. }
  147.  
  148. else {
  149.  
  150. usuario = "";
  151.  
  152. status = "Usuario nao encontrado ";
  153.  
  154. }
  155.  
  156. if (c3 == 1) {
  157.  
  158. carac = 0;
  159.  
  160. while (myFile.available() && (carac != 13) && (c3 == 1)) {
  161.  
  162. carac = myFile.read();
  163.  
  164. if ((carac != 13) && (carac != ';')) {
  165.  
  166. nome.concat(carac);
  167.  
  168. }
  169.  
  170. delay(10);
  171.  
  172. }
  173.  
  174. nome.trim();
  175.  
  176. if (c3 == 1) {
  177.  
  178. c3 = 0;
  179.  
  180. c2 = 1;
  181. sel = 1;
  182.  
  183. }
  184. }
  185. }
  186. }
  187.  
  188. else {
  189. Serial.println("Falha ao abrir banco de dados");
  190. }
  191.  
  192. if (status != "Usuario encontrado") {
  193. Serial.println(status);
  194. }
  195. }
  196.  
  197. myFile.close();
  198.  
  199. Serial.print("Bem vindo ");
  200.  
  201. Serial.println(nome);
  202.  
  203. display.clearDisplay();
  204. display.display();
  205. display.setTextSize(1);
  206. display.setTextColor(WHITE);
  207. display.setCursor(0,10);
  208. display.println("Liberado");
  209. display.display();
  210. delay(2000);
  211. display.clearDisplay();
  212. display.display();
  213.  
  214. x = 0;
  215. sel = 0;
  216. c1 = 0;
  217. c2 = 0;
  218. c3 = 0;
  219. status = "";
  220. cconteudo = "";
  221. usuario = "";
  222. nome = "";
  223. // display.clearDisplay();
  224.  
  225.  
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement