Boa Noite pessoal
tenho uma duvida com um projeto que achei na net que usa o modulo rfid para controlar um servo motor, usado em controle de acesso, assim vc consegue abrir porta usando cartão ou a tag.
Só que a minha duvida é a seguinte será que eu consigo fazer o servo motor girar para abrir a porta adicionando um modulo bluethooth no projeto para abrir a porta tanto com a tag como pelo celular ?
O codigo é esse :
// Programa : RFID - Controle de acesso / cancela // Autor : Arduino e Cia #include <SPI.h> #include <MFRC522.h> #include <Servo.h> Servo microservo9g; #define SS_PIN 10 #define RST_PIN 9 // Definicoes pino modulo RC522 MFRC522 mfrc522(SS_PIN, RST_PIN); // Leds indicadores acesso liberado ou negado int led_liberado = 5; int led_negado = 6; char st[20]; void setup() { pinMode(led_liberado, OUTPUT); pinMode(led_negado, OUTPUT); // Define que o servo esta ligado a porta digital 3 microservo9g.attach(3); // Move o servo para a posicao inicial (cancela fechada) microservo9g.write(90); // Inicia a serial Serial.begin(9600); // Inicia SPI bus SPI.begin(); // Inicia MFRC522 mfrc522.PCD_Init(); // Mensagens iniciais no serial monitor Serial.println("Aproxime o seu cartao do leitor..."); Serial.println(); } void loop() { // Aguarda a aproximacao do cartao if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Seleciona um dos cartoes 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] span style="color: blue;">0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); conteudo.concat(String(mfrc522.uid.uidByte[i] span style="color: blue;">0x10 ? " 0" : " ")); conteudo.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Mensagem : "); conteudo.toUpperCase(); // Testa se o cartao1 foi lido if (conteudo.substring(1) == "D8 4B 12 22") { // Levanta a cancela e acende o led verde microservo9g.write(-90); digitalWrite(led_liberado, HIGH); Serial.println("Cartao1 - Acesso liberado !"); Serial.println(); delay(3000); microservo9g.write(90); digitalWrite(led_liberado, LOW); } // Testa se o cartao2 foi lido if (conteudo.substring(1) == "87 4B DC 8A") { Serial.println("Cartao2 - Acesso negado !!!"); Serial.println(); // Pisca o led vermelho for (int i= 1; ispan style="color: blue;">5 ; i++) { digitalWrite(led_negado, HIGH); delay(200); digitalWrite(led_negado, LOW); delay(200); } } delay(1000); }
Tags:
Encontrei o Projeto aqui : http://www.arduinoecia.com.br/2014/12/controle-de-acesso-modulo-rfi...
Não entendi nada. kkkkkk
Oi AS, boa noite.
Eu tb não entendi nada.
Rui
queria controlar o servo motor desse codigo :
#include <SPI.h> #include <MFRC522.h> #include <Servo.h> Servomicroservo9g; #define SS_PIN 10 #define RST_PIN 9 // Definicoes pino modulo RC522 MFRC522 mfrc522(SS_PIN, RST_PIN); // Leds indicadores acesso liberado ou negado int led_liberado = 5; int led_negado = 6; char st[20]; void setup() { pinMode(led_liberado, OUTPUT); pinMode(led_negado, OUTPUT); // Define que o servo esta ligado a porta digital 3 microservo9g.attach(3); // Move o servo para a posicao inicial (cancela fechada) microservo9g.write(90); // Inicia a serial Serial.begin(9600); // Inicia SPI bus SPI.begin(); // Inicia MFRC522 mfrc522.PCD_Init(); // Mensagens iniciais no serial monitor Serial.println("Aproxime o seu cartao do leitor..."); Serial.println(); } void loop() { // Aguarda a aproximacao do cartao if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Seleciona um dos cartoes 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] span style="color: blue;">0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); conteudo.concat(String(mfrc522.uid.uidByte[i] span style="color: blue;">0x10 ? " 0" : " ")); conteudo.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Mensagem : "); conteudo.toUpperCase(); // Testa se o cartao1 foi lido if (conteudo.substring(1) == "D8 4B 12 22") { // Levanta a cancela e acende o led verde microservo9g.write(-90); digitalWrite(led_liberado, HIGH); Serial.println("Cartao1 - Acesso liberado !"); Serial.println(); delay(3000); microservo9g.write(90); digitalWrite(led_liberado, LOW); } // Testa se o cartao2 foi lido if (conteudo.substring(1) == "87 4B DC 8A") { Serial.println("Cartao2 - Acesso negado !!!"); Serial.println(); // Pisca o led vermelho for (int i= 1; ispan style="color: blue;">5 ; i++) { digitalWrite(led_negado, HIGH); delay(200); digitalWrite(led_negado, LOW); delay(200); } } delay(1000); }
Usando tambem o modulo bluethooth .
Olha vou exemplificar, encontrei um projeto em um blog que aciona uma cancela usando o modulo rfid. Quando a pessoa encosta o cartão a cancela abre. eu queria acionar essa mesma cancela pelo modulo bluethooth com o celular certo ? então eu acionaria a cancela com o cartão e com o modulo bluethooth. porem não sei como eu faço para adicionar o codigo do modulo bluethooth.
O codigo é esse :
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
Servo microservo9g;
#define SS_PIN 10
#define RST_PIN 9
// Definicoes pino modulo RC522
MFRC522 mfrc522(SS_PIN, RST_PIN);
// Leds indicadores acesso liberado ou negado
int led_liberado = 5;
int led_negado = 6;
char st[20];
void setup()
{
pinMode(led_liberado, OUTPUT);
pinMode(led_negado, OUTPUT);
// Define que o servo esta ligado a porta digital 3
microservo9g.attach(3);
// Move o servo para a posicao inicial (cancela fechada)
microservo9g.write(90);
// Inicia a serial
Serial.begin(9600);
// Inicia SPI bus
SPI.begin();
// Inicia MFRC522
mfrc522.PCD_Init();
// Mensagens iniciais no serial monitor
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
}
void loop()
{
// Aguarda a aproximacao do cartao
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Seleciona um dos cartoes
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();
// Testa se o cartao1 foi lido
if (conteudo.substring(1) == "D8 4B 12 22")
{
// Levanta a cancela e acende o led verde
microservo9g.write(-90);
digitalWrite(led_liberado, HIGH);
Serial.println("Cartao1 - Acesso liberado !");
Serial.println();
delay(3000);
microservo9g.write(90);
digitalWrite(led_liberado, LOW);
}
// Testa se o cartao2 foi lido
if (conteudo.substring(1) == "87 4B DC 8A")
{
Serial.println("Cartao2 - Acesso negado !!!");
Serial.println();
// Pisca o led vermelho
for (int i= 1; i<5 ; i++)
{
digitalWrite(led_negado, HIGH);
delay(200);
digitalWrite(led_negado, LOW);
delay(200);
}
}
delay(1000);
}
Comece por aqui:
http://www.seucurso.com.br/index.php?option=com_content&view=ar...
Ai você vai aprendendo, em todo caso peça uma ajuda ao AA ele é o cara neste assunto.
Abs.
Agora dá para entender o código.
Só que não sei o quanto será prático usar bluetooth para esta finalidade pois teria que parear seu celular com o dispositivo que aciona a cancela.
Além disso, depois que parear, tem que conectar. O RFID seria muito mais rápido.
Se ainda quiser usar o celular para esta finalidade, sugiro pesquisar sobre NFC.
Boa sorte,
'Eiju
Arlei boa noite,
Em primeiro lugar trate de postar seu código adequadamente, use o www.pastebin.com por exemplo, ou se colar aqui faça de uma forma adequada.
A partir de então alguém talvez possa lhe ajudar.
Abs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por