Este projeto consiste em um sistema para o gerenciamento do acesso às salas de uma empresa.
Para isso será necessário utilizar uma placa arduino para fazer o gerenciamento das trancas físicas,
haverá um menu exibido atravéz do Serial do Arduino, por ele deverá ser inserido dados para o cadastro de um usuário, sendo eles:
- Nome
- Senha
- Se ele será um administrador ou não.
No mesmo menu deverá ser inserido também a listagem dos nomes dos usuários cadastrados, listagem dos eventos (será necessário inserir a senha cadastrada para obter acesso aos eventos) e opção para a liberação da porta 1 e 2.
As informações referentes aos usuários e eventos devem ser armazenadas na memória Flash do microcontrolador.
A interface de cadastro dos usuários deve ser feita através da serial
O acesso aos eventos gerados devem ser limitado somente ao usuário administrador
A liberação de acesso às salas deve ser realizada após solicitação e validação da senha do usuário para que somente usuários autorizados possuam acesso
O fechamento das portas deve ser feito através do pressionamento do botão correspondente à porta a ser fechada ou após um timeout de 5 segundos ser atingido
As informações deverão ser enviadas para o back-end através de rotas específicas e salvas em um banco de dados SQL
- LED Verde -> Porta 1
- LED Vermelho -> Porta 2
- Botão esquerdo -> Botão da porta 1
- Botão direito -> Botão da porta 2
- Os botões apresentam resistor de pull-down de 10kΩ
O circuito físico não apresenta resistores nos LEDs pois a tensão de 3.3V da saída do nodeMCU não é o suficiente para queimá-los.
A memória EEPROM do node foi dividida em 2 partes iguais de 512 bytes para armazenar os usuários cadastrados e os eventos:
Foi desenvolvido um Monitor Serial para este projeto integrado com o banco de dados.
Visualizador de banco de dados:
pip install pyserial # comunicação serial
pip install pyqt6 # interface gráfica
- Primeiro monte o circuito indicado na foto, o projeto foi desenvolvido para nodeMCU devido a falta de um arduino.
- Carregue o programa Arduino/Arduino.ino no nodeMCU, caso haja necessidade de limpar a memória EEPROM, descomente a linha "resetEEPROM();" no void setup(), carregue o codigo, comente novamente a linha "resetEEPROM();" e carregue novamente o código.
- Feche a IDE Arduino e execute o main.py. O arquivo do banco de dados está salvo em back_end/database.db (caso não exista esse arquivo, o programa irá criá-lo automaticamente na primeira execução)
Certifique-se que selecionou a porta serial correta e que o arquivo main.py não está sendo executado.
Certifique-se que a IDE do arduino não está aberta.
No arquivo back_end/arduino_serial.py troque a porta serial para a que o computador reconheceu o nodeMCU dentro do def __init __
Resete o nodeMCU apertando o botão reset dele.
Demonstração: https://youtu.be/zkL8N9sPvYo