Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *********************************************************************************************************
- ESTE CODIGO TEM A INTENÇÃO DE MOSTRAR UMA APLICAÇÃO USANDO UM ESP8266-12,
- E UM SHIELD RFID-RC522, NA PRIMEIRA VEZ APOS CARREGAR O CODIGO, ABRA O MONITOR SERIAL,
- CONFIGURE O MESMO PARA A VELOCIDADE DE 9600 BAUD RATE,E PRESSIONE O BOTÃO RESET DA SUA PLACA,
- NO MONITOR SERIAL VOCÊ IRA OBSERVAR A MENSAGEM: APROXIME SEU CARTAO (TAG).
- AO APROXIMAR SEU CARTAO,COMO ELE AINDA NAO ESTA CADASTRADO ELE NÃO ACIONARA O GPIO,
- MAS IMPRIMIRA A TAG DO MESMO, DESTA FORMA VOCE AGORA PODE COLOCAR NO CODIGO A TAG
- QUE FOI IMPRESSA NO MONITOR SERIAL DO SEU CARTÃO, OU CHAVEIRO, INSIRA A TAG NA LINHA:
- if (conteudo.substring(1) == "AQUI SUA TAG" || "AQUI OUTRA SE QUISER") //UID 1 - 2....
- E CARREGUE O CODIGO COM SUA TAG, OU COM AS TAGS SE FOR MAIS UMA,
- AGORA DEPOIS DE CARREGAR E PRESSIONAR O BOTÃO RESET, APROXIME O CARTÃO, E O LED
- ACENDERA POR 3 SEGUNDOS, VOCÊ PODE DEFINIR ESSE TEMPO COMO QUISER, NESTA SAIDA
- PODE USAR UM RELE PARA ABRIR UM SOLENOIDE DE UMA FECHADURA POR EXEMPLO.
- ESTE CODIGO FONTE É LIVRE E SEGUE OS PRINCIPIOS GNU, PODE SER ADAPTADO, NODIFICADO
- PARCIAL OU INTEIRAMENTE SEM PERVIO AVISO POR QUALQUER PESSOA.
- COMIGO FUNCIONOU PERFEITAMENTE SEM PROBLEMA ALGUM, MAS NÃO GARANTO SEU FUNCIONAMENTO,
- FICA POR CONTA E RISCO DE QUEM QUISER USAR, DUVIDAS FAVOR ME CONTATAR NO E-MAIL ABAIXO.
- COMIGO FUNCIONOU PERFEITAMENTE SEM PROBLEMA ALGUM, MAS NÃO GARANTO SEU FUNCIONAMENTO,
- FICA POR CIONTA E RISCO DE QUEM QUISER USAR, DUVIDAS FAZER ME CONTATAR NO E-MAIL ABAIXO.
- contato@carloskwiek.com.br
- Carlos kwiek, engenheiro eletronico amante de eletronica e programação.
- www.carloskwiek.com.br
- ************************************************************************************************************
- *************************PINAGEM****************************************************************************
- RFID-RC522 Wemos Nodemcu
- RST/Reset RST D3 [1*] D3 [1*] GPIO-0 [1*]
- SPI SS SDA[3] D8 [2*] D8 [2*] GPIO-15 [2*]
- SPI MOSI MOSI D7 D7 GPIO-13
- SPI MISO MISO D6 D6 GPIO-12
- SPI SCK SCK D5 D5 GPIO-14
- [1*] (1, 2) Configuracao tipica definindo como RST_PIN no sketch / programa.
- [2*] (1, 2) Configuracao, tipica definindo como SS_PIN no sketch / programa.
- [3*] O pino SDA pode ser rotulado como SS em algumas placas de MFRC522 / mais antigas, significam a mesma coisa.
- ******************************************************************************************************************
- */
- #include <SPI.h>
- #include <MFRC522.h>
- #define RST_PIN D3
- #define SS_PIN D8
- #define D1 5 //GPIO5
- MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
- #include <ESP8266WiFi.h>
- #include <ESP8266WebServer.h>
- #include <WiFiUdp.h>
- #include <functional>
- #include "switch.h"
- #include "UpnpBroadcastResponder.h"
- #include "CallbackFunction.h"
- const int LED = D1;
- // prototypes
- boolean connectWifi();
- //on/off funciones
- bool oficina_luz_on();
- bool oficina_luz_off();
- // especificamos la red
- const char* ssid = "SP-LINK_LUCAS E MAY";
- const char* password = "cordeiro2019";
- boolean wifiConnected = false;
- UpnpBroadcastResponder upnpBroadcastResponder;
- //objetos para control de switchs
- Switch *oficina = NULL;
- bool esta_oficina_luz_on = false;
- void setup()
- {
- Serial.begin(115200);
- SPI.begin(); // Inicia SPI bus
- mfrc522.PCD_Init(); // Inicia MFRC522
- Serial.println("Aproxime o seu cartao do leitor...");
- Serial.println();
- pinMode(LED, OUTPUT);
- digitalWrite(LED,HIGH);
- // Initialise wifi connection
- wifiConnected = connectWifi();
- if(wifiConnected){
- upnpBroadcastResponder.beginUdpMulticast();
- // definicmos los switches. MAXIMO 10
- oficina = new Switch("Abrir portão", 80, oficina_luz_on, oficina_luz_off);
- Serial.println("Adicionando los switches a responder");
- upnpBroadcastResponder.addDevice(*oficina);
- }
- }
- void loop()
- {
- if(wifiConnected){
- upnpBroadcastResponder.serverLoop();
- oficina->serverLoop();
- }
- // Procura por cartao RFID
- if ( ! mfrc522.PICC_IsNewCardPresent())
- {
- return;
- }
- // Seleciona o cartao RFID
- if ( ! mfrc522.PICC_ReadCardSerial())
- {
- return;
- }
- //Mostra UID na serial
- Serial.print("UID da tag :");
- String conteudo= "";
- byte letra;
- for (byte i = 0; i < mfrc522.uid.size; i++)
- {
- Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
- Serial.print(mfrc522.uid.uidByte[i], HEX);
- conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
- conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
- }
- Serial.println();
- Serial.print("Mensagem : ");
- conteudo.toUpperCase();
- if (conteudo.substring(1) == "C7 01 0B 66" || "62 B6 18 89"|| "B0 4E CD A4") //UID 1 - Cartao
- {
- Serial.println("Liberado !");
- Serial.println();
- digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
- delay(1000); // DELAY /espera 1,5 segundos
- digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
- }
- }
- bool oficina_luz_on() {
- Serial.println("Oficina, encender Switch 1 ...");
- digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
- delay(1000); // DELAY /espera 1,5 segundos
- digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
- esta_oficina_luz_on = true;
- return esta_oficina_luz_on;
- }
- bool oficina_luz_off() {
- Serial.println("Oficina, apagar Switch 1 ...");
- digitalWrite(LED, LOW); // LIGA LED OU/ ativa rele, abre trava solenoide
- delay(1000); // DELAY /espera 1 segundos
- digitalWrite(LED, HIGH); // DESlIGA LED OU /desativa rele, fecha trava solenoide
- esta_oficina_luz_on = false;
- return esta_oficina_luz_on;
- }
- // connect to wifi – returns true if successful or false if not
- boolean connectWifi(){
- boolean state = true;
- int i = 0;
- WiFi.mode(WIFI_STA);
- WiFi.begin(ssid, password);
- Serial.println("");
- Serial.println("Connecting to WiFi");
- // Wait for connection
- Serial.print("Connecting ...");
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- if (i > 10){
- state = false;
- break;
- }
- i++;
- }
- if (state){
- Serial.println("");
- Serial.print("Connected to ");
- Serial.println(ssid);
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
- }
- else {
- Serial.println("");
- Serial.println("Connection failed.");
- }
- return state;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement