Hoje vamos criar um prototipo de um sistema que faz a leitura de uma tag/cartão com rfid e envia o código para uma API para verificar se o mesmo é válido.
Hoje vamos criar um prototipo de um sistema que faz a leitura de uma tag/cartão com rfid e envia o código para uma API para verificar se o mesmo é válido. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bora lá | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para este exemplo iremos usar os ambientes de desenvolvimento: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E de hardware: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primeiro passo vamos desenvolver nossa API, neste caso será bem simples, iremos criar somente um endpoint Post que irá receber a tag do cartão e validar se é uma tag valida ou não. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Abra o seu Visual Studio Code e o seu terminal "ctrl + `" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primeiro passo vamos ver se o .Net 6 esta instalado, caso não tenha em sua máquina baixe o mesmo pelo link | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Com o .Net 6 instalado vamos constuir nossa API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No terminal digite dotnet new webapi --name esp32rfid | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Projeto criado. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para abrir seu projeto no Visual Studio Code acesse o diretório do projeto e digite "code ." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vai ser aberto o Visual Studio Code com seu projeto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apague a classe WeatherForecast e WeatherForecastController | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora crie uma pasta DTO, clique no menu do projeto em new folder como a imagem abaixo e de o nome de DTO. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Clique com o botão direito na pasta DTO e crie uma classe com o nome TagDto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nossa classe TagDto será bem simples, irá conter uma propriedade referente ao código da tag e uma propriedade para pegar o código da placa esp32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora crie uma Classe na pasta Controllers, clique com o botão direito na pasta e new class com o nome TagController | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
O Código da nossa API esta abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
De forma simples ele irá receber os dados enviados pelo Esp32 e irá tratar os mesmos podendo validar a tag em um banco de dados, no exemplo iremos fazer de forma simples fixando o mesmo no código como abaixo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Em nosso exemplo ao receber o código da Tag ele verifica se é " a1 07 66 1b", caso seja ele retorna Ok e válido como true, caso contrário ele retorna uma BadRequest com o válido igual a false, simples assim. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Antes de rodar sua API altere o endereço de localhost para o ip da sua máquina pois caso contrário o esp32 não irá encontrar sua API, para saber o ip da sua máquina acesse o cmd e digite ipconfig e veja o ip, no caso o IPv4 Address. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Após sabe o seu ip vá na pasta properties e no arquivo launchSettings.json mude onde esta local host para o ip da sua maquina. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Execute a sua API e faça um teste com o swagger para ver se esta tudo ok. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ao enviar os dados com o código informado anteriormente como abaixo recebemos uma resposta OK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Caso enviarmos no body uma Tag diferente recebemos um BadRequest e valido como false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nossa API esta pronta para ser usada pelo nosso Esp32, vamos lá. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primeiro é preciso montar o seu circuito na protoboard como a figura abaixo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instale o driver da placa esp32 em seu computador e o mesmo deve ser configurado, pode seguir o tutorial caso tenha alguma dúvida ou me manda mensagem. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Baixe a IDE do Arduino e vamos configurar para utilizar o Esp32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vai em file -> preferences | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Na tela que ira abrir informe no campo Aditional Boards Manager Urls a url https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json, somente isto e clique em ok | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora no menu Sketch -> Include Library -> Manage Libraries para baixar as bibliotecas que iremos utilizar, no caso a Biblioteca Wifi e MFRC522 e Easy MFRC522 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E por último mas não menos importante vamos selecionar a board que iremos trabalhar. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No caso estamos usando a ESP32-WROOM-DA Module | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Feito isto bora codar nosso esp32 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Faça o upload para a sua placa e teste. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No serial Monitor conseguido ver todos os passos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Espero que tenha gostado | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Código fonte do Projeto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para receber mais conteúdo inscreva-se no canal e siga nas redes sociais | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos que vamos |