Advertisement
Lucasx2020

Untitled

Apr 22nd, 2020
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.80 KB | None | 0 0
  1. /*
  2. *********************************************************************************************************
  3. ESTE CODIGO TEM A INTENÇÃO DE MOSTRAR UMA APLICAÇÃO USANDO UM ESP8266-12,
  4. E UM SHIELD RFID-RC522, NA PRIMEIRA VEZ APOS CARREGAR O CODIGO, ABRA O MONITOR SERIAL,
  5. CONFIGURE O MESMO PARA A VELOCIDADE DE 9600 BAUD RATE,E PRESSIONE O BOTÃO RESET DA SUA PLACA,
  6. NO MONITOR SERIAL VOCÊ IRA OBSERVAR A MENSAGEM: APROXIME SEU CARTAO (TAG).
  7. AO APROXIMAR SEU CARTAO,COMO ELE AINDA NAO ESTA CADASTRADO ELE NÃO ACIONARA O GPIO,
  8. MAS IMPRIMIRA A TAG DO MESMO, DESTA FORMA VOCE AGORA PODE COLOCAR NO CODIGO A TAG
  9. QUE FOI IMPRESSA NO MONITOR SERIAL DO SEU CARTÃO, OU CHAVEIRO, INSIRA A TAG NA LINHA:
  10. if (conteudo.substring(1) == "AQUI SUA TAG" || "AQUI OUTRA SE QUISER") //UID 1 - 2....
  11. E CARREGUE O CODIGO COM SUA TAG, OU COM AS TAGS SE FOR MAIS UMA,
  12. AGORA DEPOIS DE CARREGAR E PRESSIONAR O BOTÃO RESET, APROXIME O CARTÃO, E O LED
  13. ACENDERA POR 3 SEGUNDOS, VOCÊ PODE DEFINIR ESSE TEMPO COMO QUISER, NESTA SAIDA
  14. PODE USAR UM RELE PARA ABRIR UM SOLENOIDE DE UMA FECHADURA POR EXEMPLO.
  15.  
  16. ESTE CODIGO FONTE É LIVRE E SEGUE OS PRINCIPIOS GNU, PODE SER ADAPTADO, NODIFICADO
  17. PARCIAL OU INTEIRAMENTE SEM PERVIO AVISO POR QUALQUER PESSOA.
  18.  
  19. COMIGO FUNCIONOU PERFEITAMENTE SEM PROBLEMA ALGUM, MAS NÃO GARANTO SEU FUNCIONAMENTO,
  20. FICA POR CONTA E RISCO DE QUEM QUISER USAR, DUVIDAS FAVOR ME CONTATAR NO E-MAIL ABAIXO.
  21.  
  22. COMIGO FUNCIONOU PERFEITAMENTE SEM PROBLEMA ALGUM, MAS NÃO GARANTO SEU FUNCIONAMENTO,
  23. FICA POR CIONTA E RISCO DE QUEM QUISER USAR, DUVIDAS FAZER ME CONTATAR NO E-MAIL ABAIXO.
  24.  
  25. contato@carloskwiek.com.br
  26.  
  27. Carlos kwiek, engenheiro eletronico amante de eletronica e programação.
  28. www.carloskwiek.com.br
  29. ************************************************************************************************************
  30. *************************PINAGEM****************************************************************************
  31.  
  32. RFID-RC522 Wemos Nodemcu
  33. RST/Reset RST D3 [1*] D3 [1*] GPIO-0 [1*]
  34. SPI SS SDA[3] D8 [2*] D8 [2*] GPIO-15 [2*]
  35. SPI MOSI MOSI D7 D7 GPIO-13
  36. SPI MISO MISO D6 D6 GPIO-12
  37. SPI SCK SCK D5 D5 GPIO-14
  38.  
  39. [1*] (1, 2) Configuracao tipica definindo como RST_PIN no sketch / programa.
  40. [2*] (1, 2) Configuracao, tipica definindo como SS_PIN no sketch / programa.
  41. [3*] O pino SDA pode ser rotulado como SS em algumas placas de MFRC522 / mais antigas, significam a mesma coisa.
  42. ******************************************************************************************************************
  43. */
  44. #include <SPI.h>
  45. #include <MFRC522.h>
  46.  
  47. #define RST_PIN D3
  48. #define SS_PIN D8
  49. #define D1 5 //GPIO5
  50.  
  51. MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
  52.  
  53. #include <ESP8266WiFi.h>
  54. #include <ESP8266WebServer.h>
  55. #include <WiFiUdp.h>
  56. #include <functional>
  57. #include "switch.h"
  58. #include "UpnpBroadcastResponder.h"
  59. #include "CallbackFunction.h"
  60.  
  61. const int LED = D1;
  62.  
  63. // prototypes
  64. boolean connectWifi();
  65.  
  66. //on/off funciones
  67. bool oficina_luz_on();
  68. bool oficina_luz_off();
  69.  
  70. // especificamos la red
  71. const char* ssid = "SP-LINK_LUCAS E MAY";
  72. const char* password = "cordeiro2019";
  73.  
  74.  
  75. boolean wifiConnected = false;
  76.  
  77. UpnpBroadcastResponder upnpBroadcastResponder;
  78. //objetos para control de switchs
  79. Switch *oficina = NULL;
  80.  
  81. bool esta_oficina_luz_on = false;
  82.  
  83.  
  84. void setup()
  85. {
  86. Serial.begin(115200);
  87. SPI.begin(); // Inicia SPI bus
  88. mfrc522.PCD_Init(); // Inicia MFRC522
  89. Serial.println("Aproxime o seu cartao do leitor...");
  90. Serial.println();
  91. pinMode(LED, OUTPUT);
  92. digitalWrite(LED,HIGH);
  93.  
  94. // Initialise wifi connection
  95. wifiConnected = connectWifi();
  96.  
  97. if(wifiConnected){
  98. upnpBroadcastResponder.beginUdpMulticast();
  99.  
  100. // definicmos los switches. MAXIMO 10
  101. oficina = new Switch("Abrir portão", 80, oficina_luz_on, oficina_luz_off);
  102.  
  103. Serial.println("Adicionando los switches a responder");
  104. upnpBroadcastResponder.addDevice(*oficina);
  105.  
  106. }
  107. }
  108.  
  109. void loop()
  110. {
  111. if(wifiConnected){
  112. upnpBroadcastResponder.serverLoop();
  113.  
  114. oficina->serverLoop();
  115.  
  116. }
  117. // Procura por cartao RFID
  118. if ( ! mfrc522.PICC_IsNewCardPresent())
  119. {
  120. return;
  121. }
  122. // Seleciona o cartao RFID
  123. if ( ! mfrc522.PICC_ReadCardSerial())
  124. {
  125. return;
  126. }
  127. //Mostra UID na serial
  128. Serial.print("UID da tag :");
  129. String conteudo= "";
  130. byte letra;
  131. for (byte i = 0; i < mfrc522.uid.size; i++)
  132. {
  133. Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
  134. Serial.print(mfrc522.uid.uidByte[i], HEX);
  135. conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  136. conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
  137. }
  138. Serial.println();
  139. Serial.print("Mensagem : ");
  140. conteudo.toUpperCase();
  141.  
  142. if (conteudo.substring(1) == "C7 01 0B 66" || "62 B6 18 89"|| "B0 4E CD A4") //UID 1 - Cartao
  143. {
  144. Serial.println("Liberado !");
  145. Serial.println();
  146. digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
  147. delay(1000); // DELAY /espera 1,5 segundos
  148. digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
  149. }
  150. }
  151.  
  152. bool oficina_luz_on() {
  153. Serial.println("Oficina, encender Switch 1 ...");
  154. digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
  155. delay(1000); // DELAY /espera 1,5 segundos
  156. digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
  157.  
  158. esta_oficina_luz_on = true;
  159. return esta_oficina_luz_on;
  160. }
  161.  
  162. bool oficina_luz_off() {
  163. Serial.println("Oficina, apagar Switch 1 ...");
  164. digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
  165. delay(1000); // DELAY /espera 1 segundos
  166. digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
  167.  
  168. esta_oficina_luz_on = false;
  169. return esta_oficina_luz_on;
  170. }
  171.  
  172.  
  173.  
  174. // connect to wifi – returns true if successful or false if not
  175. boolean connectWifi(){
  176. boolean state = true;
  177. int i = 0;
  178.  
  179. WiFi.mode(WIFI_STA);
  180. WiFi.begin(ssid, password);
  181. Serial.println("");
  182. Serial.println("Connecting to WiFi");
  183.  
  184. // Wait for connection
  185. Serial.print("Connecting ...");
  186. while (WiFi.status() != WL_CONNECTED) {
  187. delay(500);
  188. Serial.print(".");
  189. if (i > 10){
  190. state = false;
  191. break;
  192. }
  193. i++;
  194. }
  195.  
  196. if (state){
  197. Serial.println("");
  198. Serial.print("Connected to ");
  199. Serial.println(ssid);
  200. Serial.print("IP address: ");
  201. Serial.println(WiFi.localIP());
  202. }
  203. else {
  204. Serial.println("");
  205. Serial.println("Connection failed.");
  206. }
  207.  
  208. return state;
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement