Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Check-in eletrônico

Componentes e suprimentos

Arduino Mega 2560
× 1
Módulo RF da antena de leitura do cartão Mifare RC522
× 1
LED (genérico)
× 2
Interruptor tátil
× 2
Resistor (genérico)
× 4

Sobre este projeto


Um problema que temos com frequência no Hackerspace de Taipei é que as pessoas não sabem quando estamos abertos. Nossa regra básica é simples:sempre que um membro keyholder está no Hackerspace, qualquer pessoa / todos podem entrar. Na prática, embora as pessoas nunca saibam realmente se alguém está lá.

Eles poderiam ligar para o espaço, ou até mesmo enviar um e-mail para a lista de mala direta, enquanto as pessoas que eu conheço geralmente acabam me perguntando diretamente - ei, alguém está no espaço no momento? Como nem sempre sei a resposta, a busca continuou por uma solução melhor - talvez mais tecnológica ou hackeada:vamos construir um sistema de check-in / out eletrônico que mostre o status atual no nosso site.

A ideia principal é que em Taipei quase todo mundo tem um EasyCard, um cartão RFID de 13,56 MHz que é usado para todos os transportes públicos da cidade e muito mais. O módulo de placa-antena RC522 parece ser capaz de ler a placa muito bem, e tudo que eu preciso para descobrir é o número de ID, que é bastante simples (depois de cavar os fóruns do Arduino para o código-fonte).


O projeto em poucas palavras é:
  • Use o Arduino Mega com uma placa RC522 para obter o número de identificação de um determinado EasyCard
  • Use bruxas para saber se a pessoa está fazendo check-in ou check-out
  • Use LEDs para fornecer algum feedback e interface de usuário básica para o hardware
  • Servidor Node.js para se comunicar com o Arduino, fazer interface com o banco de dados de check-in / out e fornecer API e acesso em tempo real aos dados
  • Crie uma interface no site para exibir o status de check-in

Agora, deixe-me mergulhar nas diferentes partes em detalhes.

RFID


O módulo RC522 tem 8 pinos e o Arduino pode usar a biblioteca SPI para se comunicar com ele. Usei o Arduino Mega ADK, porque os pinos SPI são convenientemente acessíveis, ao contrário de, por exemplo, o Leonardo, para o qual eu teria que fazer alguns novos cabos ou cabeçalhos. As conexões RC522 (número do pino) -> Mega (número do pino) são feitas de modo que:
  • SA (1) → SS (53)
  • SCK (2) → SCK (52)
  • MOSI (3) → MOSI (51)
  • MISO (4) → MISO (50)
  • (5) não conectado
  • GND (6) → GND
  • RST (8) → (qualquer pino digital)
  • + 3,3 V (8) → + 3,3 V
RFID-RC522, com cartão em branco e pinos
O código-fonte para falar com o cartão é de um blog e, originalmente, de uma loja de tecnologia na China, eu acho (com base na grande quantidade de comentários em chinês simplificado).

Interruptores e feedback visual


Eu queria fazer a interface mais simples possível para o leitor de cartão. Adicionado este par de interruptores e LEDs (o D1 sendo verde e D2 sendo vermelho). Depois que o Arduino recebeu um ID de cartão do leitor, os LEDs piscam para solicitar que as pessoas pressionem os botões Check In ou Check Out. Se eles pressionarem qualquer um deles, o LED correspondente piscará fortemente por um momento, e o ID do cartão e o evento de check-in / out serão enviados ao computador conectado via conexão serial

O circuito (muito básico) para os botões de check-in / out e LEDs de feedback visual. "Pinos" referem-se aos pinos do Arduino usados ​​na versão atual




Se nenhum botão for pressionado em 10 segundos ou mais, a leitura será descartada e o leitor de cartão voltará ao modo de escuta.

Servidor da Web


O Node.js é muito útil para fazer serviços web rápidos e seu suporte a biblioteca não é tão ruim, embora nem tudo seja fácil:sua documentação costuma ser, na melhor das hipóteses, escassa. No entanto, foi o mais rápido para colocar as coisas em funcionamento, já que usei antes quase todos os componentes necessários.

O servidor se comunica com o Arduino por meio da biblioteca serialport. Estou mais acostumado com o pyserial do Python, embora neste caso seja muito útil que o serialport possa emitir eventos de leitura, portanto, o servidor pode apenas esperar até que haja algo para ler e executar algumas funções nos dados de entrada. Na minha experiência, o serialport não seria bom para todos os gabinetes que encontrei em um terreno serial, mas nesta configuração funciona perfeitamente.

Escolhi SQLite3 para armazenar os dados, usando a biblioteca sqlite3. Há um monte de outros, teve que procurar qual deles ainda está sendo desenvolvido. Esta biblioteca em particular não é tão ruim, embora eu tenha lutado bastante contra a falta de documentação e a assincronicidade. O código resultante é muito feio, tenho certeza, em alguns lugares ineficiente porque não sabia como chegar ao resultado que queria de uma forma menos indireta, ainda parece funcionar e isso é o que importa para um protótipo.

Primeiro, fiz uma API REST simples para consultar as pessoas que faziam check-in no momento e, posteriormente, adicionei atualizações push (em tempo real) via socket.io, para torná-lo mais agradável. É brilhante que, sem qualquer votação, todos os clientes possam ser atualizados assim que alguém fizer login ou sair.

Como este código está sendo executado em um computador diferente do nosso servidor web principal, tivemos que brincar com o cabeçalho Access-Control-Allow-Origin e ajustar as configurações do nosso roteador para torná-lo acessível para a web corretamente.

Tentei adicionar um script bastante autocontido que o front-end pode carregar, e ele lida com tudo, só precisa de um HTML span apropriado ou elemento div para exibir as informações.
Configuração de hardware para check in / out:Arduino Mega, circuito RFID-RC522 e alguns interruptores e LEDs.
O resultado é muito bom, desde que o leitor de cartão não trave. Originalmente, os resultados eram exibidos em uma tabela, mas queria torná-la mais humana, então aqui está o formato que terminei:
Captura de tela da página inicial com uma situação de check-in específica
Também pode haver pessoas sem nome, elas apenas aparecem algo como "No momento, há três pessoas verificado no Hackerspace:Greg e duas outras pessoas. "

SpaceAPI


Há também um projeto chamado API de espaço para uma especificação unificada para expor informações sobre o próprio espaço (

Este gadget de check-in é integrado ao endpoint da API do Taipei Hackerspace para, mostrando nosso status de abertura, portanto, pode ser usado com, por exemplo, o aplicativo My Hackerspaces para Android ou com os outros aplicativos listados no site da API Space.

Ele vive!


Aqui está um rápido vídeo de demonstração de como funciona:
https://www.youtube.com/embed/L3ccO_AuhQ8?feature=oembed
Portanto, você pode verificar nosso site em https://taipeihack.org/#open para ver os resultados ao vivo e aparecer se estiver na vizinhança se houver alguém por perto.

Todo o código-fonte é compartilhado em um repositório Github:o esboço do Arduino, o script do servidor e quaisquer arquivos adicionais. Tenho certeza de que há muitas coisas que poderiam ser melhoradas sobre isso ...

Redação original:Check-in eletrônico no Hackerspace de Taipei

Código

Github
https://github.com/taipeihackerspace/thcheckinhttps://github.com/taipeihackerspace/thcheckin

Esquemas


Processo de manufatura

  1. Tinta eletrônica
  2. Bloqueio Arduino RFID com RC522 - Protocolo MIFARE 13,56 MHz
  3. Arduino Spybot
  4. FlickMote
  5. TV B-Gone caseiro
  6. Relógio mestre
  7. Encontre-me
  8. Arduino Power
  9. Camaleão eletrônico
  10. Tech-TicTacToe