Jump to content

Integração com dispositivos de controle de acesso e Python


Postagens Recomendadas

Meu mais recente cliente apresentou uma necessidade. Ele está usando um agente de controle de acesso desenvolvido em Java, que fica executando como um serviço do Windows em um servidor, com um equipamento de controle de acesso obsoleto (cpu orange pi, raspberry modificadas - algo jurássico); um software legado desenvolvido em Delphi para gerenciamento de dados (para mim isso é século XV), Em fim, ele me procurou com um desafio de modernizar suas aplicações. O que eu ofereci? Python.

Então estou desenvolvendo integração em Python com dispositivos de controle de acesso (fabricantes Hikvision e ControlID). 80% do projeto funcionando. Dispositivos: Leitor de biometria (Facial e Digital), leitor de cartão e chaveiro, antena leitora de tag veicular.

Toda a comunicação do projeto está sendo feita pelas APIs dos dispositivos.

Vou colocando por aqui mais informações do projeto para o acompanhamento dos colegas em breve.

Ah, também vou colocar algum trecho dos códigos para alguém que queira conhecer um pouco da programação.

Por enquanto, um abraço a todos.

Editado por Kleverson Cuzzuol Lopes
  • Curtir 1
  • Amei 1
Link to comment
Compartilhe em outros sites

  • 2 weeks later...
Postado (editado)

Primeiro ponto a ser tomado é construir um micro-serviço que receba os eventos disparados pelos dispositivos, sendo que vou usar API dos dispositivos, opto por usar um micro-serviço para receber requisições via http.

Para isso usei o flask. 

O Flask é como se fosse uma "caixa de ferramentas" para criar sites e aplicações web usando a linguagem de programação Python.

O Flask é um "microframework", bem leve e simples de usar. Não vem com muitas funcionalidades prontas, mas pode-se adicionar o que precisar conforme o projeto cresce. Isso dá flexibilidade e torna o Flask ótimo para projetos pequenos e médios.

Com o Flask, pode-se começar a criar uma aplicação web com poucas linhas de código. Ótimo para quem está começando e quer ver resultados rapidamente😁.

* Se você já conhece um pouco de Python, começar com Flask vai ser bem tranquilo.

Um exemplo de como  criar uma aplicação web bem básica com Flask:
 

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    print('Bem vindo à casa!')
    return {}, 200

if __name__ == '__main__':
    app.run(debug=True)

* Eu não vou me prender a explicar decorator, rotas e coisas assim, não é o intuito no momento.

No meu caso, para começar a integrar um dispositivo da ControlID com a minha aplicação servidora, ficaria assim:

from flask import Flask, request
import json

# Inicialize o Flask
app = Flask(__name__)

# decorator da rota que vai receber o evento
@app.route('/device_is_alive.fcgi', methods=['POST'])
def device_is_alive():
    # o dispositivo envia uma solicitação em intervalos de tempo para saber se a aplicação está conectada no sistema
    # obrigatoriamente a aplicação deve retornar um response vazio só para avisar que está ativa
    # caso o dispositivo não receba respostas em um intervalo de tempo ele entrará em modo standalone para trabalhar independente
    return {}, 200
...

def Main():
  # meu código vem aqui
  pass
...

if __name__ == '__main__':
   Main()
...

para executar a aplicação, digamos que o nome do programa em Python seja Agente.py:

 python Agente.py
ou
python -m Agente

Isso já fará o agente executar e aguardar solicitações do dispositivo. Lógico que o dispositivo deve estar configurado para enviar as requisições para o endereço correto (o que eu não vou explicar como se faz pois não faz parte do que eu quero apresentar aqui).

Exemplo de endereço da aplicação servidora: http://192.168.15.100:5000 - Endereço IP + porta

Editado por Kleverson Cuzzuol Lopes
  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...