Índice:
- Etapa 1: Lista de materiais
- Etapa 2: começou a construir uma base de madeira e Perpex
- Etapa 3: O Distribuidor de Token
- Etapa 4: Detectando se um token foi dispensado
- Etapa 5: Eletrônica
- Etapa 6: Placa do sensor LoRaWAN
- Etapa 7: TTN - a rede Things
- Etapa 8: Software
- Etapa 9: inicializar
- Etapa 10: Adicionar / remover uma tag
- Etapa 11: alguns vídeos mostrando a operação do Coin-O-Matic
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Em nosso escritório, temos uma máquina de venda automática que pode receber dinheiro de verdade ou fichas. A gerência decidiu que poderíamos conseguir alguns doces grátis (dentro dos limites) para nos manter felizes e contentes com os baixos salários que ganhamos. O problema era: como você controlaria isso? A máquina de venda automática pertence a uma empresa externa, portanto, modificações na máquina de venda automática estavam fora de questão.
Digite o Frankenstein Coin-O-Matic, uma criação da minha mente doente. Decidindo como fazer isso, pensei que as etiquetas RFID seriam o melhor, dar a cada funcionário uma etiqueta RFID e manter um registro de quantas vezes a etiqueta RFID é passada. Quando a etiqueta é passada, um token é distribuído para uso com a máquina de venda automática (um respiradouro livre). Cada vez que o TAG for passado, registre as informações em um cartão SD. O número TAG também é carregado para a "nuvem" usando LoraWAN. Já estou brincando com LoRaWAN e thethingsnetwork (TTN) com alguns sensores de temperatura e umidade, então temos um Gateway TTN. O Gateway TTN é um Raspberry PI 3 com um concentrador IMST conectado ao TTN.
Etapa 1: Lista de materiais
- Algum Perspex de 3 mm
- Algum Perspex de 1 mm
- Arduino Mega
- Arduino Pro Mini
- RFM95 Lora Radio
- Módulo I2C de relógio em tempo real Tiny RTC DS1307
- Gráfico TFT LCD de 2,2 "em cores 240x320 ILI9341
- Conversores de nível bidirecional de 2 x 4 canais
- Anel NeoPixel 24 - RGB LED WS2812
- RFID Starter Kit 13,56 MHz
- ESP8266 ESP12 Módulo WiFi da placa de teste
- Módulo de cartão SD
- 5 x botões de pressão
- 2 x LED tricolor
- Muitas e muitas abraçadeiras
- Muitos jumpers de breadboard
- 40mm x 40mm de madeira
- Módulo de relé de 2 canais 5V 10 AMP
-
Módulo sensor fotoelétrico de feixe de luz infravermelho 5VDC
Etapa 2: começou a construir uma base de madeira e Perpex
Começou com a construção de uma caixa para abrigar todos os eletrônicos do Perspex 3mm, o Perspex e o logotipo foram cortados em uma máquina CNC. A tampa frontal da caixa abriga a tela, botões e alguns LEDs piscando. Os LEDs são LEDs normais de três cores que alternam entre as cores, consulte BOM
Usei então um bloco de madeira de 40 x 40 mm para construir um lugar para o distribuidor de moedas e uma rampa para a ficha cair. O dispensador de fichas consiste em 3 placas redondas de Perspex, a superior e a inferior são de Perspex de 3 mm e a do meio que contém a ficha é de Perspex de 1 mm. A maneira como funciona é que a placa do meio vira e pega um token da pilha e arrasta para o buraco no prato inferior e o token cai na rampa de token nas mãos sujas de algum funcionário faminto.
O empilhador de tokens é um tubo de sprinkler antigo que eu tinha ao redor e o diâmetro era exatamente o mesmo dos tokens. Fiz alguns furos no tubo do sprinkler para que você pudesse ver quantas fichas estão empilhadas para serem recarregadas, se necessário. O tubo do sprinkler foi supercolado na placa de Perspex superior.
Etapa 3: O Distribuidor de Token
O motor para acionar a placa do meio é um motor síncrono de 220 Vca de…. Não tenho ideia, encontrei-o na minha caixa de sobressalentes, desde que seja lento e forte. O eixo foi colado à placa do meio com um pouco de cola epóxi chamada Pratex. O módulo de relé é acionado e o fio energizado é conectado para fazer o motor funcionar. Fiz uns furos na placa de fundo para conter o atrito, se faz diferença, não sei. 2 orifícios foram cortados em ambos os lados da placa do meio para "agarrar" as fichas. O diâmetro dos orifícios é apenas um pouco maior do que o diâmetro dos tokens, de modo que há alguma margem de erro ao agarrar os tokens.
Etapa 4: Detectando se um token foi dispensado
Usei um Módulo Sensor Fotoelétrico para isso, não queremos ostracizar um funcionário, se ele não recebeu um token após escanear uma tag. agora nós faríamos ?. O registro só é gravado no cartão SD, quando a detecção do token é bem-sucedida, se nenhum token for detectado, o display enlouquece, culpando o serviço na empresa e que o serviço é uma merda. Nenhum registro é gravado no o caso em que não há tokens para dispensar. Colei o fototransistor na parte inferior da rampa para que o token quebre o feixe quando passar pelo feixe
Etapa 5: Eletrônica
Arduino Mega - Este é o cérebro do Coin-o-Matic, todos os sensores etc estão conectados ao Mega
Arduino Pro Mini e RFM95 Lora Radio - O Arduino Pro Mini e o Arduino Mega são conectados um ao outro através do barramento serial, quando uma tag é digitalizada, o número da tag é enviado no barramento serial do Mega para o Pro Mini. O Pro Mini está em loop o tempo todo, assim que algo é recebido no barramento serial do Pro Mini, o número da tag é carregado na rede things (TTN) usando LoraWan. Não fiz nenhuma integração sobre isso, mas o plano seria ter uma instância AWS para armazenar e classificar as informações. Consulte a próxima etapa para obter mais informações.
Módulo I2C de relógio em tempo real Tiny RTC DS1307 - Quando o Coin-O-Matic é inicializado, ele se conectará à rede WiFi e obterá a hora de um servidor NTP através do módulo WiFi da placa de teste ESP8266 ESP12 e, em seguida, definirá a hora RTC de acordo
Gráfico TFT LCD de 2,2 240x320 ILI93412 em cores - O display principal, normalmente mostra um relógio e dará algumas palavras para o usuário
Conversores de nível bidirecional de 4 canais - Como os pinos digitais do Mega são 5V, eu precisava que os conversores me comunicassem em um nível seguro com alguns dos módulos
NeoPixel Ring 24 RGB LED WS2812 - Faça um pouco de luz para deslumbrar e confundir o usuário
RFID Starter Kit 13,56 MHz - O leitor RFID
Módulo de cartão SD - Escreva o número da etiqueta, data e hora para cada passagem de etiqueta
Botões de pressão - o administrador que possui a tag mestre carregará novas tags e eu uso um dos botões para pausar a exibição até que eles possam copiar o número da tag e registrar quem tem a tag. Os outros 4 botões estão conectados, mas não estão sendo usados no momento
LED tricolor - Mais luz para deslumbrar e confundir os usuários
Muitas e muitas braçadeiras de cabos - tente obter uma ordem para todos os fios
Muitos jumpers de placa de ensaio - conecte o material
Módulo de relé de 2 canais 5V 10 AMP 5VDC - Um relé é usado para alimentar o motor do dispensador de moedas e o outro para alimentar o módulo ESP8266, o programa do módulo ESP8266 também está em um loop, assim que receber energia, ele irá entre na rede WiFi e faça uma chamada de tempo NTP. Para minimizar as chamadas de tempo NTP, decidi alimentá-lo com o relé, ou seja, ativar o relé, ativar o módulo ESP, o módulo ESP obter o tempo e relé desligar o módulo novamente … E também faz sons de cliques agradáveis
Módulo Sensor Fotoelétrico de Feixe de Luz Infravermelho - Para detectar se um token foi dispensado
Etapa 6: Placa do sensor LoRaWAN
Os arquivos de design da Eagle estão anexados, a placa é minha, mas eu uso uma empresa para produzir a própria placa. Esta placa também pode ser usada como uma placa de sensor LoRAWAN, é extremamente pequena, ~ 37 mm x 54 mm, ela atende a um sensor de temperatura e umidade DHT 22 ou DHT 11 como está.
Etapa 7: TTN - a rede Things
Há muitas informações sobre isso em
www.thethingsnetwork.org/
Basicamente, o Coin-O-Matic fala via LoraWAN (O Arduino Pro Mini com o rádio RFM95) para um gateway (Raspberry Pi com concentrador IMST) que está conectado ao TTN via internet, do TTN você pode fazer várias integrações, IE Swagger, AWS, http etc, a imagem acima mostra alguns swipes de tags no escritório
Etapa 8: Software
O software está dividido em 3 partes
getNTPtime_instructables - O programa ESP8266, você tem que alterar o ssid, senha e ntpServerName antes de fazer o upload. Eu uso um programador básico FTDI, conecto aterramento, TX e RX. Lembre-se de escolher o módulo ESP no IDE do Arduino e separar os pinos no ESP para colocá-lo no modo de programação
Coin-O-Matic_instructables - O programa Coin-O-Matic. Isso é carregado no Arduino Mega, as mudanças necessárias aqui é o número do Tag Master -
byte masterCard [cardSize] = {121, 178, 151, 26};
pro_mini_instructables - O programa LoRaWAN. Isso é carregado no Pro Mini, consulte o esquema para obter mais detalhes sobre como conectar o rádio e quais PINs usar. O endereço do dispositivo, a chave de sessão de rede e a chave de sessão do aplicativo devem ser alterados após o registro do dispositivo ser feito no TTN, se você for usar ABP
Const estática PROGMEM u1_t NWKSKEY [16] = {}; s]
const estático u1_t PROGMEM APPSKEY [16] = {};
const estático u4_t DEVADDR = 0x; // <- Altere este endereço para cada nó!
Etapa 9: inicializar
O vídeo mostra o relé sendo ativado (relé 1), o módulo ESP8266 se conecta à rede WiFi, envia um sinal de horário getNTP e obtém o horário do servidor NTP, após o horário ser atualizado com sucesso, o relé desativa e remove a energia do ESP8266. Se algo der errado e não houver uma atualização de horário bem-sucedida, o Arduino Mega será reinicializado e tentará novamente. O módulo ESP8266 e o Arduino Mega são conectados um ao outro por meio das portas seriais (Serial2 no Mega), o Arduino Mega escuta uma resposta do ESP8266, a mensagem é semelhante a "UNX [e o carimbo de data e hora]", Estou no GMT + 2, portanto, no código do Arduino Mega, adiciono GMT + 2 da seguinte forma
time_t gmtTimeVar = newTimeVar + 7200;
rtc.adjust (DateTime (gmtTimeVar));
Etapa 10: Adicionar / remover uma tag
A tag mestre é digitalizada e o display indica que esta é a tag mestre. A nova tag é digitalizada e o número da tag é exibido na tela e dá ao usuário tempo para anotar o número e registrar quem tem a nova tag. O número da tag será gravado no banco de dados assim que o usuário pressionar o botão esquerdo. O mesmo procedimento é seguido para remover uma tag do banco de dados
Etapa 11: alguns vídeos mostrando a operação do Coin-O-Matic
Usei node-red para integração com Telegram, node-red tem um módulo de integração para TTN, então o que acontece quando você faz a varredura de uma tag?
- Tag é escaneada
- O arquivo txt no cartão SD é lido para ver se é uma etiqueta válida
- Se a tag for válida, um carimbo de hora com o número da tag é gravado em um arquivo txt no cartão SD
- O número da etiqueta é enviado via LoRaWAN e Raspberry PI Gateway para a rede TTN
- Node-red assina as mensagens MQTT na rede TTN
- Node-Red envia o HEX decodificado para o número da tag DEC para um arquivo de script bash rodando em um servidor localmente
- O script bash verifica um arquivo txt com NÚMEROS DE TAG e NOMES
- O arquivo de script bash carrega a mensagem para um BOT do Telegram com curl contendo o NÚMERO DA TAG e o nome da pessoa
Agradável e complexo, adoro como uma tarefa tão simples se torna tããão complexa
Deixe-me saber o que você acha nos comentários abaixo